On 10/24/2011 11:10 AM, Diego Olivier Fernandez Pons wrote: > I have to write an interpreter for a datatype rich purely applicative > language. I have already written a naive interpreter (like in programming > languages class) and was wondering what where the options for writing > something that would perform better while keeping it maintainable by a single > person < 5% dedicated and preferably only in core-ML (no C code or fancy ML > extensions).
Gabriel and Gerd gave very good advice already, but here are my two cents: - Beware of premature optimizations. It could very well be that your naive interpreter is already fast enough for your applications. Test and profile to find hot spots. - Pay special attention to your data structures, e.g. environments should be maps, not A-lists. A good trick is to hash-cons identifiers into unique integers: not only comparisons are much faster, but you can use Patricia trees for your environments. - Compiling to bytecode is probably overkill. Hope this helps. - Xavier Leroy -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
