Abstract
A trend in current research is towards component-based systems, where applications are built by combining re-usable fragments or components. In this paper we argue the case for building programming languages from components. We describe Vanilla, a component-based architecture for language tools. The core of Vanilla is a set of components, each implementing the type checking and behaviour of a single language feature, which are integrated within a well-structured frame-work to provide a programming language interpreter. Features may be extensively re-used across a variety of languages, allowing rapid prototyping and simplifying the exploration of new constructs. We describe the design and implementation of the system, and draw some general conclusions from the experience of building with components.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Elegant. http://www.research.philips.com/generalinfo/special/elegant/elegant.html.
MartÃn Abadi and Luca Cardelli. A theory of objects. Springer Verlag, 1996.
Don Batory, Bernie Lofaso, and Yannis Smaragdakis. JTS: tools for implementing domain-specific languages. In Proceedings of the 5th International Conference on Software Reuse, 1998.
Tim Budd. Multiparadigm programming in Leda. Addison-Wesley, 1995.
Luca Cardelli. Typeful programming. Technical Report Research report 45, Digital SRC, 1994.
Simon Dobson. Modular parsers. Technical Report TCD-CS-1998-19, Department of Computer Science, Trinity College Dublin, 1998.
David Gelernter and Suresh Jagannathan. Programming linguistics. MIT Press, 1990.
Robert Gray, Vincent Heuring, Steven Levi, Anthony Sloane, and William Waite. Eli: a complete, flexible compiler construction system. Communications of the ACM, 35(2):121–131, 1992.
Samuel Kamin. Programming languages: an interpreter-based approach. Addison Wesley, 1990.
Sheng Liang, Paul Hudak, and Mark Jones. Monad transformers and modular interpreters. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 333–343, 1995.
Robin Milner, Mads Tofte, and Robert Harper. The definition of Standard ML. MIT Press, 1990.
Charles Simonyi. Interviewed in The Edge, 1998.
Guy Steele. Building interpreters by composing monads. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 472–492, 1994.
Michiaki Tatsubori. An extension mechanism for the Java language. Master’s thesis, Tsukuba University, 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dobson, S., Nixon, P., Wade, V., Terzis, S., Fuller, J. (2000). Vanilla: an open language framework. In: Czarnecki, K., Eisenecker, U.W. (eds) Generative and Component-Based Software Engineering. GCSE 1999. Lecture Notes in Computer Science, vol 1799. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-40048-6_8
Download citation
DOI: https://doi.org/10.1007/3-540-40048-6_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41172-7
Online ISBN: 978-3-540-40048-6
eBook Packages: Springer Book Archive