catala/compiler/dcalc/dcalc.mld
Denis Merigoux 91ee1122f6 Last typo
2023-06-03 15:32:38 +02:00

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}