Skip to main content

Vanilla: an open language framework

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1799))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Elegant. http://www.research.philips.com/generalinfo/special/elegant/elegant.html.

  2. Martín Abadi and Luca Cardelli. A theory of objects. Springer Verlag, 1996.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. Tim Budd. Multiparadigm programming in Leda. Addison-Wesley, 1995.

    Google Scholar 

  5. Luca Cardelli. Typeful programming. Technical Report Research report 45, Digital SRC, 1994.

    Google Scholar 

  6. Simon Dobson. Modular parsers. Technical Report TCD-CS-1998-19, Department of Computer Science, Trinity College Dublin, 1998.

    Google Scholar 

  7. David Gelernter and Suresh Jagannathan. Programming linguistics. MIT Press, 1990.

    Google Scholar 

  8. 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.

    Article  Google Scholar 

  9. Samuel Kamin. Programming languages: an interpreter-based approach. Addison Wesley, 1990.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. Robin Milner, Mads Tofte, and Robert Harper. The definition of Standard ML. MIT Press, 1990.

    Google Scholar 

  12. Charles Simonyi. Interviewed in The Edge, 1998.

    Google Scholar 

  13. Guy Steele. Building interpreters by composing monads. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 472–492, 1994.

    Google Scholar 

  14. Michiaki Tatsubori. An extension mechanism for the Java language. Master’s thesis, Tsukuba University, 1999.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics