Explorations in Functional Language Design
and Implementation through Objects
a.k.a. Better Scheme


Goals:

I want to develop a functional language in the style of Scheme that improves on Scheme by unifying the concepts of Scheme and removing inconsistencies in the implementation. The language should include a concept of lazy evaluation allowing the writing of functions like cond, and, or as they now work in scheme but allowing them to be passed and applied. Also it will attempt to unify the various data types in Scheme and provide a more consistent way of extending the type system. Finally I would like to reconsider the type hierarchy, do chars, numbers, lists and vector all truly represent subtypes of SExpression?

Final Products Time Scale:
Week 1: Get interpreter to work on basic list and math expressions.
Week 2: Introduce functions and laziness into the interpreter.
Week 3: Extend language by writing bulk of standard library. Fix any bugs or things which I realize I designed badly.
Week 4: Review web site to insure accuracy and that it is up to date. Add any extensions I have time for.

Reasons for Project:

The reasons I want to work on Better Scheme include: To gain a better understanding of the workings and concepts behind functional programming languages. To understand regular Scheme better. To demonstrate myself to be someone who does research in programming languages and produces languages with a high degree of logical consistency.



jwalker@cs.oberlin.edu