This research project aims to create tools that make it easy to design and implement programming languages and to use these tools to create new programming languages.
The tools currently available allow one to specify the syntax of a programming language in EBNF format with annotations that specify how a source program is to be parsed into an Abstract Syntax Tree (AST). One can then use the programming language Slim to specify the semantics of the language. This is done by viewing the AST as a Slim program, and specifying the semantics as a set of Object-Oriented Class definitions. For more information on this approach, follow this link.
Current work focuses on the design and implementation of a successor to the Slim programming language. The tools will then be rewritten in the new language. The new language implementation will offer an optimizing compiler based on a partial evaluator.