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