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 framework 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.
History
Publication title
In :Generative and component-based software engineering
Volume
Lecture notes in computer science, 1799
Editors
Krzysztof Czarnecki and Ulrich W. Eisenecker
Pagination
91−104
ISBN
3-540-41172-0
Publisher
Springer-Verlag
Place of publication
Berlin
Extent
16
Rights statement
The final publication is available at www.springerlink.com
Repository Status
Restricted
Socio-economic Objectives
Information systems, technologies and services not elsewhere classified