The idea is to create PCC framework for MiniML - subset of OCaml Light language.
Implementing MiniML compiler to ZINC bytecode
- Defunctionalization of MiniML evaluator
- Defunctionalization of Enriched Lambda Calculus evaluator
- Description of MiniML
- Description of Enriched Lambda Calculus
- 26 XI 2012
- [Languages]
- Correct definition of Values for MiniML
- Rewrote typing for MiniML
- Rewrote evaluation for MiniML
- Parsing funtion applications without @ operator in MiniML
- Parsing funtion applications without @ operator in EnrichedLambda Calculus
- [Utils]
- Slightly modified Language class (program can have not Type & no Value)
- Interpreter can now show defined bindings
- Added help text to the interpreter
- [Languages]
- 23 XI 2012
- [Languages]
- Finished work on Enriched Lambda Calculus
- [Bug Fixes]
- Fixed bug in Enriched Lambda Calculus function parser
- Correct typing in case clauses in Enriched Lambda Calculus
- Correct typing of constructors in Enriched Lambda Calculus
- Unification in proper places to have polymorphism
- [Utils]
- Added functional dependencies and new language name parameter to Language
- Added free variables counter parameter to typing functions in language class
- Very basic version of generic interpreter
- [Languages]
- 14 XI 2012
- [Languages]
- Parser for Enriched Lambda Calculus
- Laguage class instance declaration for Enriched Lambda Calculus
- [Languages]
- 13 XI 2012
- [Languages]
- Values as memory cells in Enriched Lambda Calculus
- Evaluator for Enriched Lambda Calculus
- Returned to simple definition form im Enriched Lambda Calculus
- [Utils]
- Cleaning and restructuring typeclasses
- Distinguishing evaluation environment from typing environment
- [Languages]
- 5 XI 2012
- [Languages]
- Added Value type to Enriched Lambda Calculus
- Typing of enriched Enriched Lambda Calculus
- [Languages]
- 4 XI 2012
- [Languages]
- Added (internal) guards on patterns in MiniML
- Made case statements internal in MiniML
- LetRec in MiniML are now less restrictive and are allowing expressions on right hand side (previously only functions were allowed)
- Added rescue expression to EnrichedLambda (it behaves like FatBar in MiniML)
- [Compiler]
- Translating patterns with constants to guarded patterns
- Transforming let and letrec definitions to declarations (with only variable patterns allowed)
- Pattern Matchings translated to FatBars and PatternMatching labdas according to [PJ87]
- Compilation of pattern matching finished
- Translation to enriched lambda calculus finished
- [Languages]
- 29 X 2012
- [Languages]
- Moved prety printing utility functions to PrettyPrint modules from Syntax
- [Languages]
- 22 X 2012
- [Languages]
- Removed old Enriched Lambda Calculus Code
- [Compiler]
- Removing redundant if stateents introduced by pattern matching simplification
- Added translation to Enriched Lambda Calculus
- [Languages]
- 21 X 2012
- [Languages]
- Added head, tail, empty?, fst and snd primitives to MiniML
- [Compiler]
- Initial version of pattern matching translations
- [Languages]
- 10 IX 2012
- [Compiler]
- Changed compiler structure
- Added folding tuples
- Added wildcard pattern removing
- [Compiler]
- 9 IX 2012
- [Languages]
- Deleted Enriched Lambda Calculus With Low Level Types
- Rewrote Enriched Lambda Calculus syntax to be similar to Core language described in Implementing Functional Languages: a tutorial
- [Languages]
- 18 VIII 2012
- [Languages]
- MiniML interpreter reimplemented using monads
- Mutually recursive letrec in Enriched Lambda Calculus With Low Level Types
- Added definitions to Enriched Lambda Calculus With Low Level Types
- [Compiler]
- Finished transaltion from Enriched Lambda Calculus to Enriched Lambda Calculus With Low Level Types
- [Others]
- Enriched Lambda Calculus interpreter now uses record as sate
- [Languages]
- 15 VIII 2012
- [Compiler]
- Finished transaltion from MiniML to Enriched Lambda Calculus
- [Compiler]
- 11 VIII 2012
- [Languages]
- Mutually recursive letrec in Enriched Lambda Calculus
- [Compiler]
- Enforcing unique variable naming
- [Languages]
- 7 VIII 2012
- [Languages]
- Added definitions to Enriched Lambda Calculus
- [Languages]
- 6 VIII 2012
- [Others]
- Cleanup, introducing git flow, readme creation
- [Others]
- 10 VI 2012
- [Languages]
- Working version of Enriched Lambda Calculus With Low Level Types Interpreter
- [Languages]
- 7 VI 2012
- [Compiler] *Translation from Enriched Lambda Calculus to Enriched Lambda Calculus With Low Level Types
- 27 V 2012
- [Compiler]
- Translation from MiniML to Enriched Lambda Calculus
- [Compiler]
- 4 V 2012
- [Languages]
- Working version of Enriched Lambda Calculus interpreter
- [Languages]
- 14 IV 2012
- [Languages]
- Working version of MiniML interpreter
- [Languages]
- 5 III 2012
- [Others]
- The project begins
- [Others]