Abstract
The “little languages” approach to systems programming is flawed: inefficient, fragile, error-prone, inexpressive, and difficult to compose. A better solution is to embed task-specific sublanguages within a powerful, syntactically extensible, universal language, such as Scheme. I demonstrate two such embeddings that have been implemented in scsh, a Scheme programming environment for Unix systems programming. The first embedded language is a highlevel process-control notation; the second provides for Awk-like processing. Embedding systems in this way is a powerful technique: for example, although the embedded Awk system was implemented with 7% of the code required for the standard C-based Awk, it is significantly more expressive than its C counterpart.
Preview
Unable to display preview. Download preview PDF.
References
Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger. Awk—a pattern scanning and processing language. Software—Practice and Experience, IX(4):267–279, April, 1979.
Dylan: An Object-Oriented Dynamic Language. Apple Computer, 1992.
Stuart I. Feldman. Make—A program for maintaining computer programs. Software—Practice and Experience, IX(4):255–265, April, 1979.
Don Libes. expect: Curing those uncontrollable fits of interaction. In Proceedings of the Summer 1990 USENIX conference, Anaheim, Ca., June 1990.
Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. The MIT Press, Cambridge, Mass., 1990.
J. Rees and W. Clinger (editors). The revised4 report on the algorithmic language Scheme. Lisp Pointers IV(3):1–55, July–September 1991.
Olin Shivers. A Scheme shell. To appear in the Journal of Lisp and Symbolic Computation.
Olin Shivers. The scsh manual. November 1995, scsh release 0.4. MIT Laboratory for Computer Science. (Also available at URL http://swissnet.ai.mit.edu/scsh/.)
Guy L. Steele Jr. Common Lisp: The Language. Digital Press, Maynard, Mass., second edition 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shivers, O. (1996). A universal scripting framework or Lambda: The ultimate “little language”. In: Jaffar, J., Yap, R.H.C. (eds) Concurrency and Parallelism, Programming, Networking, and Security. ASIAN 1996. Lecture Notes in Computer Science, vol 1179. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0027798
Download citation
DOI: https://doi.org/10.1007/BFb0027798
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-62031-0
Online ISBN: 978-3-540-49626-7
eBook Packages: Springer Book Archive