An implementation of OMeta that runs on .net.
From the paper that introduced OMeta, it is ".. a new object-oriented language for pattern matching. OMeta is based on a variant of Parsing Expression Grammars (PEGs) —a recognition based foundation for describing syntax— [that has been] extended to handle arbitrary kinds of data.... OMeta’s general-purpose pattern matching provides a natural and convenient way for programmers to implement tokenizers, parsers, visitors, and tree transformers, all of which can be extended in interesting ways using familiar object-oriented mechanisms. This makes OMeta particularly well-suited as a medium for experimenting with new designs for programming languages and extensions to existing languages."
More information about the OMeta language can be found at Alessandro Warth's page
. In addition, you might be interested in watching the video presentation of Alessandro's OMeta keynote at Smalltalk Solutions 2008
. Alessandro jokingly referred to OMeta# in the keynote as feeling sorry for me since I'm using such a statically typed language like C# to implement it. :-)
For more information specifically about OMeta#, see my blog
- OMeta#: Who? What? When? Where? Why?
- Building an Object-Oriented Parasitic Metalanguage
- Getting started with OMeta# by James Gregory