mirror of
https://github.com/CatalaLang/catala.git
synced 2024-11-09 22:16:10 +03:00
27 lines
1017 B
Plaintext
27 lines
1017 B
Plaintext
{0 Default calculus}
|
|
|
|
This representation is the fourth in the compilation chain
|
|
(see {{: index.html#architecture} Architecture}). Its main difference
|
|
with the previous {{: desugared.html} desugared representation} is that scopes
|
|
have been lowered into regular functions, and enums and structs have been
|
|
lowered to sum and product types. The default calculus can be later compiled
|
|
to a {{: lcalc.html} lambda calculus}.
|
|
|
|
The module describing the abstract syntax tree is {!module: Dcalc.Ast}.
|
|
This intermediate representation corresponds to the default calculus
|
|
presented in the {{: https://arxiv.org/abs/2103.03198} Catala formalization}.
|
|
|
|
Related modules:
|
|
|
|
{!modules: Dcalc.Ast}
|
|
|
|
{1 Invariants }
|
|
|
|
While Dcalc is a superset of a fully-fledged simply typed lambda calculus,
|
|
the Dcalc code actually generated from the previous intermediate representation
|
|
obeys some strict structural invariants. Those are formalized and empirically
|
|
tested in {!module:Dcalc.Invariants}.
|
|
|
|
Related modules:
|
|
|
|
{!modules: Dcalc.Invariants} |