First project overview

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

Popular posts from this blog

Fifth post

Twelfth post (end post)

Fourth Post