Programming Language Theory: Difference between revisions
No edit summary |
|||
| Line 90: | Line 90: | ||
* Currying: <tt>(λx, y. x + y)</tt> rather than <tt>(λx. (λy. x + y))</tt> | * Currying: <tt>(λx, y. x + y)</tt> rather than <tt>(λx. (λy. x + y))</tt> | ||
* Numeric literals rather than Church encoding | * Numeric literals rather than Church encoding | ||
==Programming Language Design== | |||
===Syntax=== | |||
Pierce describes three means for describing language syntax, using ''terms'' to refer to language definitions involving at least one terminal: | |||
* Induction on successive terms (of which EBNF is a compact notation) | |||
* Inference from axioms (terminals) and successive inference terms | |||
* Concrete definition (generative grammar) placing successive sets of alternate terms in bijection with the ordinals | |||
===Semantics=== | |||
==Sources== | ==Sources== | ||