Abstract
AbstractUsing 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 an API suited to that language. This paper presents Lua-ML, a new API that is suited to languages that provide higher-order functions and types. The API exploits higher-order functions and types to reduce the amount ofglue codeneeded to use an embedded interpreter. Where embedding in C requires a special-purpose “glue function” for every function to be embedded, embedding in Lua-ML requires only a description of each function's type. Lua-ML also makes it easy to define a Lua function whose behavior depends on the number and types of its arguments.
Publisher
Cambridge University Press (CUP)
Reference33 articles.
1. A single intermediate language that supports multiple implementations of exceptions;Ramsey;Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation,2000
2. Ramsey N. (September 2005) ML module mania: A type-safe, separately compiled, extensible interpreter. In Proceedings of the ACM SIGPLAN Workshop on ML, pp. 172–202.
3. Lua—An Extensible Extension Language
4. Olinsky R. , Lindig C. & Ramsey N. (January 2006) Staged allocation: A compositional technique for specifying and implementing procedure calling conventions. In Proceedings of the 33rd ACM Symposium on the Principles of Programming Languages, pp. 409–421.
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Typed–Untyped Interactions: A Comparative Analysis;ACM Transactions on Programming Languages and Systems;2023-03-05
2. A spectrum of type soundness and performance;Proceedings of the ACM on Programming Languages;2018-07-30
3. Correctness of compiling polymorphism to dynamic typing;Journal of Functional Programming;2016-12-12
4. Fully abstract compilation via universal embedding;ACM SIGPLAN Notices;2016-12-05
5. Fully abstract compilation via universal embedding;Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming;2016-09-04