3 ms·
Can't believe OMeta hasn't been mentioned yet: http://tinlizzie.org/ometa/ http://tinlizzie.org/ometa/. It's definitely the wrong choice for performance, but i
by tsally 17y ago
Can't believe OMeta hasn't been mentioned yet: http://tinlizzie.org/ometa/ http://tinlizzie.org/ometa/. It's definitely the wrong choice for performance, but if you are experimenting with language implementation I don't think you can do much better.
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.
Here's a document detailing an OMeta program that translates textual representations of abstract syntax trees into assembly for the Intel 386: http://www.vpri.org/pdf/m2009011_chns_mng.pdf http://www.vpri.org/pdf/m2009011_chns_mng.pdf. In plain language, you've got is a mini Lisp like language that you can extend in an object orientated way.