Vanilla: An open language framework

Simon Dobson, Paddy Nixon, Vincent Wade, Sotirios Terzis, John Fuller

Research output: A Conference proceeding or a Chapter in BookConference contributionpeer-review

1 Citation (Scopus)

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 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.
Original languageEnglish
Title of host publicationGenerative and component-based software engineering
Subtitle of host publicationProceedings of the First International Symposium on Generative and Component-Based Software Engineering, GCSE’99 Erfurt, Germany, September 28–30, 1999
EditorsKrzysztof Czarnecki, Ulrich W. Eisenecker
Place of PublicationBerlin
PublisherSpringer
Pages91-104
Number of pages14
ISBN (Electronic)9783540400486
ISBN (Print)9783540411727
DOIs
Publication statusPublished - 1999
Externally publishedYes
Event1st International Symposium on Generative and Component-Based Software Engineering: GCSE’99 - Erfurt, Erfurt, Germany
Duration: 28 Sept 199930 Sept 1999

Conference

Conference1st International Symposium on Generative and Component-Based Software Engineering
Abbreviated titleGCSE’99
Country/TerritoryGermany
CityErfurt
Period28/09/9930/09/99

Fingerprint

Dive into the research topics of 'Vanilla: An open language framework'. Together they form a unique fingerprint.

Cite this