Skip to content

Commit 0f0c093

Browse files
committed
Revert [Symmetric -> Principled] meta programming
It's not so easy to see what is symmetric about it. "Principled" is bolder, but why not, since we do introduce a new principle?
1 parent 2b27618 commit 0f0c093

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

docs/docs/reference/simple-smp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ title: "The Meta-theory of Symmetric Meta-programming"
88
23.12.2017
99

1010
This note presents a simplified variant of
11-
[symmetric meta-programming](./symmetric-meta-programming.md)
11+
[principled meta-programming](./principled-meta-programming.md)
1212
and sketches its soundness proof. The variant treats only dialogues
1313
between two stages. A program can have quotes which can contain
1414
splices (which can contain quotes, which can contain splices, and so

docs/docs/reference/symmetric-meta-programming.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
layout: doc-page
3-
title: "Symmetric Meta Programming"
3+
title: "Principled Meta Programming"
44
---
55

6-
# Symmetric Meta Programming
6+
# Principled Meta Programming
77

8-
Symmetric meta programming is a new framework for staging and for some
8+
Principled meta programming is a new framework for staging and for some
99
forms of macros. It is expressed as strongly and statically typed
1010
code using two fundamental operations: quotations and splicing. A
1111
novel aspect of the approach is that these two operations are
@@ -16,7 +16,7 @@ splices in exactly the same way.
1616

1717
### Quotes and Splices
1818

19-
Symmetric meta programming is built on two well-known fundamental
19+
Principled meta programming is built on two well-known fundamental
2020
operations: quotation and splicing. Quotation is expressed as
2121
`'(...)` or `'{...}` for expressions (both forms are equivalent) and
2222
as `'[...]` for types. Splicing is expressed as a prefix `~` operator.
@@ -113,13 +113,13 @@ create nor remove quotes or splices individually. So the PCP ensures
113113
that program elaboration will lead to neither of the two unwanted
114114
situations described above.
115115

116-
In what concerns the range of features it covers, symmetric meta programming is
116+
In what concerns the range of features it covers, principled meta programming is
117117
quite close to the MetaML family of languages. One difference is that MetaML does
118118
not have an equivalent of the PCP - quoted code in MetaML _can_ access
119119
variables in its immediately enclosing environment, with some
120120
restrictions and caveats since such accesses involve serialization.
121121
However, this does not constitute a fundamental gain in
122-
expressiveness. Symmetric meta programming allows to define a `Liftable`
122+
expressiveness. Principled meta programming allows to define a `Liftable`
123123
type-class which can implement such accesses within the confines of the
124124
PCP. This is explained further in a later section.
125125

@@ -307,7 +307,7 @@ Here’s an application of `map` and how it rewrites to optimized code:
307307

308308
### Relationship with Inline and Macros
309309

310-
Seen by itself, symmetric meta-programming looks more like a
310+
Seen by itself, principled meta-programming looks more like a
311311
framework for staging than one for compile-time meta programming with
312312
macros. But combined with Dotty’s `inline` it can be turned into a
313313
compile-time system. The idea is that macro elaboration can be

docs/sidebar.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ sidebar:
4747
url: docs/reference/trait-parameters.html
4848
- title: Inline
4949
url: docs/reference/inline.html
50-
- title: Symmetric Meta Programming
51-
url: docs/reference/symmetric-meta-programming.html
50+
- title: Meta Programming
51+
url: docs/reference/principled-meta-programming.html
5252
- title: By-Name Implicits
5353
url: docs/reference/implicit-by-name-parameters.html
5454
- title: Auto Parameter Tupling

0 commit comments

Comments
 (0)