OMeta: an Object-Oriented Language for Pattern Matching

OMeta is a new object-oriented language for pattern matching. It is based on a variant of Parsing Expression Grammars (PEGs) which we have extended to handle arbitrary data types. OMeta's general-purpose pattern matching facilities provide 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.

Documentation

Currently, the best piece of documentation for OMeta is our Dynamic Languages Symposium 2007 paper. You may also want to look at the slides from that talk.

I recently gave a keynote at Smalltalk Solutions 2008. Here are the abstract and slides for that talk. Audio and video will be available shortly on the conference website.

There is also an OMeta mailing list. You may want to browse through its archives.

Downloads

Platform Web Page Files Comments
JavaScript (new version) click here svn co http://jarrett.cs.ucla.edu/svn/ometa-js/ Works on Firefox, Safari (I haven't tested it on IE yet)
JavaScript (old version) click here Works on Firefox, Safari, and IE
Squeak n/a OMeta.sar Works on the 3.8, 3.9, Croquet, and OLPC images
Javascript.sar A JavaScript implementation written in OMeta/Squeak

There is also a Python-based implementation of OMeta by Allen Short, called PyMeta. It is available at http://washort.twistedmatrix.com/.

Questions?

Please e-mail me if you have questions, comments, or suggestions.


Click here to return to my home page.