Hi,

I recently completed my undergraduate master's project, Katahdin. It's
a programming language where the syntax and semantics are mutable at
runtime and applies PEGs and packrat parsing. It may be of interest to
some of you.

Projects such as Rats! and Jeannie are looking at composition of
languages and making it easy to define new language constructs.
However, they are both  targeted at developing a new language
implementation that runs the modified or composed language. Rats! is a
parser-generator for use by language implementers and Jeannie is a
single new implementation. They don't make it possible for programmers
using the language to easily extend or compose.

In Katahdin, the language can be modified as the program runs. A
programmer can define a new language construct as easily as defining a
new function. Libraries of new language constructs can be created and
passed around between programmers. Importing the constructs into the
language is a runtime operation, so the language is not bloated by
unused constructs, and the implementation does not have to be
recompiled just to add a new construct.

Katahdin can also compose grammars at runtime, with the same result as
Jeannie. However, unlike Jeannie Katahdin can run programs written in
any two or more languages that you have definitions for and will
compose the relevant grammars as needed.

Katahdin can be viewed as a generic language implementation, with
proof-of-concept language definitions for Python, FORTRAN and SQL. My
project includes examples of composing these languages and defining
relevant new constructs.

If you're interested, my source code, thesis and an unpublished paper
are available at http://www.chrisseaton.com/katahdin/.

Chris Seaton

_______________________________________________
PEG mailing list
PEG@lists.csail.mit.edu
https://lists.csail.mit.edu/mailman/listinfo/peg

Reply via email to