AST ADT chicken egg problem: Difference between revisions
Jump to navigation
Jump to search
basic page but still missing the essence |
mNo edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 25: | Line 25: | ||
* [[Edit time immutability]] | * [[Edit time immutability]] | ||
* [[Lambda calculus encodings of algebraic data types]] | |||
== External links == | == External links == | ||
| Line 30: | Line 31: | ||
* https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form | * https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form | ||
* https://mathoverflow.net/questions/151240/why-is-there-no-product-type-in-simply-typed-lambda-calculus | * https://mathoverflow.net/questions/151240/why-is-there-no-product-type-in-simply-typed-lambda-calculus | ||
[[Category:Programming]] | |||
Latest revision as of 20:21, 27 December 2024
- AST algebraic syntax tree
- ADT algebraic data type
ADT modeling AST
Lambda calculus, it's variants, and
in general formal systems (core of many programming languages)
are usually specified in Bakus Naur form.
This is basically a specific algebraic data type (ADT) with both sum types and product types.
– sum type for the various options a term can take
– product types for the components a term must have
AST modeling ADT
Better programming languages need algebraic datatypes.
Even in basic untyped lambda calculus there are simple embeddings for sum types and product types.
The chicken egg problem
(wiki-TODO: Main point of the topic is still missing here)