ABSTRACT
Using an embedded, interpreted language to control a complicated application can have significant software-engineering benefits. But existing interpreters are designed for embedding into C code. To embed an interpreter into a different language requires a suitable API. Lua-ML is a new API that uses higher-order functions and types to simplify the use of an embedded interpreter. A typical application-program function can be added to a Lua-ML interpreter simply by describing the function's type.
- Beazley, David M. 1996. SWIG: An easy to use tool for integrating scripting languages with C and C++. In USENIX, editor, Proceedings of the fourth annual Tcl/Tk Workshop, pages 129--139, Berkeley, CA.]] Google ScholarDigital Library
- Benson, Brent W. 1994 (October). Libscheme: Scheme as a C library. In Proceedings of the USENIX Symposium on Very High Level Languages, pages 7--19.]] Google ScholarDigital Library
- Benton, Nick. 2003. Embedded interpreters. See http://research.microsoft.com/~nick.]]Google Scholar
- Celes, Waldemar. 2003 (March). toLua---accessing C/C++ code from Lua. See http://www.tecgraf.puc-rio.br/~celes/tolua.]]Google Scholar
- Danvy, Olivier. 1996. Type-directed partial evaluation. In Conference Record of the 23rd Annual ACM Symposium on Principles of Programming Languages, pages 242--257. ACM Press.]] Google ScholarDigital Library
- ---. 1998. A simple solution to type specialization. In Proceedings of the 25th International Colloquium on Automata, Languages, and Programming (ICALP), number 1443 in Lecture Notes in Computer Science, pages 908--917. Springer-Verlag.]] Google ScholarDigital Library
- Ierusalimschy, Roberto, Luiz H. de Figueiredo, and Waldemar Celes. 1996a (June). Lua --- an extensible extension language. Software---Practice & Experience, 26(6):635--652.]] Google ScholarDigital Library
- ---. 1996b (November). Reference Manual of the Programming Language Lua 2.5. TeCGraf, PUC-Rio. Available from the author.]]Google Scholar
- ---. 2001 (May). The evolution of an extension language: A history of Lua. In V Brazilian Symposium on Programming Languages, pages B14--B28. (Invited paper).]]Google Scholar
- Jenness, Tim and Simon Cozens. 2002 (July). Extending and Embedding Perl. Manning Publications Company.]] Google ScholarDigital Library
- Laumann, Oliver and Carsten Bormann. 1994 (Fall). Elk: The Extension Language Kit. Computing Systems, 7(4):419--449.]] Google ScholarDigital Library
- Leroy, Xavier, Damien Doligez, Jacques Garrigue, Didier Rémy, and Jérôme Vouillon. 2001. The Objective Caml system release 3.04: Documentation and user's manual. INRIA. Available at http://pauillac.inria.fr/ocaml/htmlman.]]Google Scholar
- Ousterhout, John K. 1990 (January). Tcl: An embeddable command language. In Proceedings of the Winter USENIX Conference, pages 133--146.]]Google Scholar
- ---. 1994. Tcl and the Tk Toolkit. Professional Computing Series. Reading, MA: Addison-Wesley.]] Google ScholarDigital Library
- Ramsey, Norman. 2003 (March). ML module mania: A typesafe, separately compiled, extensible interpreter. Available from http://www.eecs.harvard.edu/~nr/pubs/mania-abstract.html.]]Google Scholar
- van Rossum, Guido. 2002. Extending and Embedding the Python Interpreter. Release 2.2.2.]]Google Scholar
- Embedding an interpreted language using higher-order functions and types
Recommendations
Embedding an interpreted language using higher-order functions and types
Using an embedded, interpreted language to control a complicated application can have significant software-engineering benefits. But existing interpreters are designed for embedding into C code. To embed an interpreter into a different language requires ...
Language embedding and optimization in mython
DLS '09: Proceedings of the 5th symposium on Dynamic languagesMython is an extensible variant of the Python programming language. Mython achieves extensibility by adding a quotation mechanism that accepts an additional parameter as well as the code being quoted. The additional quotation parameter takes the form of ...
Pilsner: a compositionally verified compiler for a higher-order imperative language
ICFP '15Compiler verification is essential for the construction of fully verified software, but most prior work (such as CompCert) has focused on verifying whole-program compilers. To support separate compilation and to enable linking of results from different ...
Comments