The project I am going for is a total functional programming language. The thing that makes it unique is a way of implementing the integration between primitive and non-primitive functions.
the idea is summarized below:
In most total functional programming languages, the relationship to non-total functions within that language is often poorly made and poorly thought out. This project attempts to rectify this with a better system for implementing composition on primitive and non-primitive (or the equivalent in a different system) recursive functions. This is achieved through branching computation and making use of the bottom type for hypothetical non-halting functions.
For future reference the base of this language is built around the mu-recursive functions / Peano arithmetic, this ends up being similar to the ml family. The full specification of this language will be written later on.
The initial timetable is below:
Deliverable | Duration | Completion Date | Dependencies |
Further research into Walther recursion | 1 Day | Monday week 3 | None |
Formal language specification | 2-3 Days | Friday week 3 | Further research into Walther recursion |
Lexer | 1 afternoon | Saturday week 3 | None (maybe formal language specification) |
Parser | 2-3 Days | Wednesday week 4 | Lexer (for testing), Formal language specification |
Base execution engine | 1-2 Week/s | week 7 | Parser, Formal language specification |
Primitive recursion semantics checker | 2 days - 2 weeks | week 7 | Parser, Formal language specification |
Primitive - non primitive integration | 1-2 week/s | week 7 | Primitive recursion semantics checker, Formal language specification, Base execution Engine (note: it might be helpful to write this at the same time as the base execution engine) |
Extension with ml like algebraic data types and prolog esque argument unification | 2-5 weeks | Week 14 | Primitive recursion semantics checker, Formal language specification, base Execution Engine, Primitive - non Primitive integration |
Comments
Post a Comment