The SML/NJ Extensible Front-end Design


Jon Riehl


In this talk, I will describe the rationale behind and design of the SML/NJ Extensible Front-End (EFE). We begin by reviewing the utility of a fully programmable front-end. Our approach does not suffer from the problems of such technologies as the current SML/NJ quotation system, the venerable C pre-processor, or C++ template metaprograms. I will then describe the overall design and plans for implementing an extensible front-end for the SML/NJ compiler. Our design includes an extensible parsing framework based on packrat parsers, and leverages my dissertation work on compile-time metaprogramming in the presence of a visible compiler. Since the EFE is still in the proposal and prototyping phase, your questions and comments will have maximal impact on the resulting system.