git @ Cat's Eye Technologies The-Glosscubator / d0a27c9
Rate a paper and add several commentary. Chris Pressey 9 months ago
5 changed file(s) with 79 addition(s) and 5 deletion(s). Raw diff Collapse all Expand all
2121 Of these, [**109** have the highest rating](by-rating/Top-rated.md),
2222 [**28** are considered classics](by-rating/Classic.md),
2323 [**51** are considered very interesting](by-rating/Very%20Interesting.md),
24 while [**71** are yet to be rated](by-rating/Unrated.md).
24 while [**70** are yet to be rated](by-rating/Unrated.md).
2525
2626 <!-- /TOTALS -->
2727
154154
155155 ### Name Binding
156156
157 * Foundational Aspects of Syntax ([web.archive.org](https://web.archive.org/web/20240304215325/https://www.lix.polytechnique.fr/Labo/Dale.Miller/papers/lambda-trees.pdf))
158157 * Abstract Syntax for Variable Binders ([web.archive.org](https://web.archive.org/web/20240415115853/http://www.lix.polytechnique.fr/~dale/papers/cl2000.pdf))
159158 * [I am not a Number, I am a Free Variable](http://www.e-pig.org/downloads/notanum.pdf)
160159 * [A Type and Scope Safe Universe of Syntaxes with Binding](https://pure.strath.ac.uk/ws/portalfiles/portal/114903157/Allais_etal_ICFP2018_A_type_and_scope_safe_universe_of_syntaxes_with_binding.pdf)
4646
4747 * rating: 1
4848
49 .
49 CFG is in P but is not P-complete.
50
51 But CFG is not quite enough it seems.
52
53 CSG is PSPACE-complete. That's way too big.
54
55 It makes sense that evolutionarily there would be a tension between
56 maximizing expressivity and minimizing complexity.
57
58 Thus, the mildly context-sensitive languages.
59
60 RCG is P-complete.
5061
5162 ### ACL Anthology - ACL Anthology
5263
1414
1515 ### Foundational Aspects of Syntax
1616
17 * rating: TODO
17 * rating: 1
1818
19 .
19 The first two pages are an excellent description of the problem.
20
21 In a nutshell, the solution is to add lambda-abstractions to the AST:
22
23 > In this way, the category _variable_ is no longer necessary (being
24 > subsumed by the corresponding notion in the λ-calculus)
25
26 The weakness, IMO, with this solution is that it just "kicks the can to
27 the meta-level". Yes, you have removed the need to worry about binding
28 in your object language. But you still need to reason about binding in
29 your meta-language (here, the lambda calculus.)
30
31 From some older notes I made a while back:
32
33 > "Determining the structure of λ-trees" starts to
34 > get a little murky: when you try to match the pattern
35 >
36 > (∀ (λu. ⊃ (P u) (Q u)))
37 >
38 > against the term
39 >
40 > (∀ (λx. ⊃ (p x x) (q a a)))
41 >
42 > we get a match "by instantiating P with λx.p x x and Q with λx.q a a
43 > and then using α and β-conversion."
44 >
45 > P = λx.p x x
46 > Q = λx.q a a
47 >
48 > What actually is happening here?
49
50 The short answer, I think, is "higher-order unification".
51
52 In the 2nd example, middle of page 3, the object language is the
53 lambda calculus, so it almost seems absurd: it's unclear what the
54 solution is actually aiming to provide to simplify the problem here.
55
56 The next section makes it clearer that the solution is to grapple with
57 the lambda abstractions at the meta-level. Use higher-order unification
58 to work with them. Use a weaker form of beta-reduction in it, to simplify
59 this problem. It's still unclear why, if you are prepared to do this
60 anyway, you want to move the name-binding abstraction to the meta-level.
61 In most cases I imagine you could do the very same thing with binding
62 abstractions in the object language. Perhaps lifting them to the
63 meta-level makes the transformations tidier in some way.
64
65 How to recurse into these lambda abstractions? Define some inference
66 rules at the meta-level, then
67
68 > The hypothetical judgment (the meta-level implication) implicitly
69 > handles the typing context, and the generic judgment (the universal
70 > quantifier) implicitly handles the bound variable names by via the
71 > use of meta-level eigenvariables.
72
73 So if you like to have, or already have, the right mechanisms in your
74 meta-language for handling these things, you can lean on it and re-use
75 it for your object language. If you *don't*, this doesn't help you.
2076
2177 ### Abstract Syntax for Variable Binders
2278
1818
1919 I have a dead tree version of this. While it's not on archive.org, there are .ps
2020 files on the author's website.
21
22 Not sure if I'm a fan of parts of this calculus. It's interesting to know about,
23 for sure. The author wrote a paper previous to this (I believe its the one about
24 violating the law of the excluded miracle), where this calculus is introduced.
25 One of the highlighted features of it is that it is a unified formalism, it contains
26 both the specification relation and the program. It's all one. The book
27 emphasizes this too. Is that a good thing though? Maybe. I mean it is, but it
28 feels like sometimes it makes the formalism more awkward than it needs to be.
2129
2230 ### a Practical Theory of Programming
2331