Programming languages: an interpreter-based approach
Programming languages: an interpreter-based approach
Programming linguistics
Eli: a complete, flexible compiler construction system
Communications of the ACM
Building interpreters by composing monads
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Multiparadigm Programming in Leda
Multiparadigm Programming in Leda
A Theory of Objects
The Definition of Standard ML
JTS: Tools for Implementing Domain-Specific Languages
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
A systems architecture for sensor networks based on hardware/software co-design
WAC'04 Proceedings of the First international IFIP conference on Autonomic Communication
Hi-index | 0.00 |
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.