package catala
Compiler and library for the literate programming language for tax code specification
Install
Dune Dependency
Authors
Maintainers
Sources
0.6.0.tar.gz
md5=b22e238d5d5c8452067109e9c7c0f427
sha512=ccc8c557c67c2f9d1bed4b957b2367f0f6afc0ef9b8b83237cf2a2912b3e8829b7e8af78ea7fe00b20ecf28b436ad04b591e5fff4f82fd08725d40a18c9924d0
doc/lcalc.html
Lambda calculus
This representation is the fifth in the compilation chain (see Architecture). Its main difference with the previous default calculus is the absence of the default term, which has been eliminated through diverse compilation schemes.
The module describing the abstract syntax tree is:
Lcalc.Ast
Abstract syntax tree for the lambda calculusLcalc.Print
This intermediate representation corresponds to the lambda calculus presented in the Catala formalization.
Compilation from default calculus
Lcalc.Compile_with_exceptions
compiles the default term of the default calculus using catchable exceptions. This compilation scheme has been certified.
Related modules:
Lcalc.Compile_with_exceptions
Translation from the default calculus to the lambda calculus. This translation uses exceptions handle empty default terms.
Backends
The OCaml backend of the lambda calculus is merely a syntactic formatting, since the core of the OCaml value language is effectively a lambda calculus.
Related modules:
Lcalc.To_ocaml
Formats a lambda calculus program into a valid OCaml programScalc.To_python
Formats a lambda calculus program into a valid Python programLcalc.Backends
Helper functions common to all Catala compiler backends
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page