A Primitive Compiler from
$ lamc [EXAMPLE_ID] [(-c|--direct-c) (-o|--output OUTPUT_FILE) | [--am]]
For details of each option, please check lamc --help
.
optparse-applicative
.
To use that, users can check their documentation about autocompletion.
Currently, this repository implements a primitive compiler from Call-By-Value
- Frontend Parser for
$\lambda$ -calculus - Simple bidirectional type-checker for
$\lambda$ -calculus - Constraint-based bidirectional type checker for
$\lambda$ -calculus - Call-By-Value
$\lambda$ -calculus-To-CBPV pass - Call-By-Name
$\lambda$ -calculus-To-CBPV pass - Call-By-Need
$\lambda$ -calculus-To-CBPV pass - Simple bidirectional type-checker for CBPV
- Constraint-based bidirectional type checker for CBPV
- Simple CBPV optimization pass
- Tail call optimization pass (or lowering pass)
- CBPV-to-C pass without GC
- CBPV-to-AM pass without GC
- AM interpreter
- AM-to-C pass without GC
- GC runtime function
- GC instruction in CBPV-to-C
- GC instruction in CBPV-to-AM
- PrintInt effect
- PrintDouble effect
- PrintString effect
- Read effect
- Exception-handling effects
- General I/O effect