[Mono-list] Master's project built on Mono

Chris Seaton chris at chrisseaton.com
Mon Jun 11 15:50:17 EDT 2007


I just completed my master's project and as I used Mono I wanted to
thank everyone who has contributed to development of the framework.
I've found Mono very stable, fast and easy to use.

My project, Katahdin is a programming language interpreter written in
C#. Unlike most interpreters, the language that Katahdin interprets
can be modifed by the running program. You can add new language
constructs such as expressions and statements as easily as defining
new functions and types. If your langauge doesn't have a for-each
statement you can define one in just a few lines.

Katahdin can be compared to CLI languages such as Boo and Nemerle that
have macro systems but it's much more powerful. An entire language can
be defined in Katahdin, turning the interpreter into an interpreter
for that language that can run off the shelf programs. Two languages
can be composed to use them both at the same time. For example, in my
demos I use write a program in one file that has both Python and
FORTRAN code running together, sharing code and data.

You might be interested in looking at Katahdin because:

* It is a medium sized application built entirely in Mono
* It very heavily uses DynamicMethod and ClassBuilder
* It allows for interesting new language development in Mono
* Optimisations could be tested on it

You may also be interested in the theory of Katahdin, and how they are
implemented in Mono:

* Parsing expression grammars
* Packrat parsing

You can find Katahdin, my thesis and other literature at
http://www.chrisseaton.com/katahdin/. The code is in the public


Chris Seaton

More information about the Mono-list mailing list