Skip to main content

Growing a Language: The GLoo Perspective

  • Conference paper
Software Composition (SC 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4954))

Included in the following conference series:

Abstract

The design of programming languages is, in general, geared towards accumulation rather than composition of features. However, by adding an ever-increasing number of built-in abstractions, any programming language is eventually at risk to reach a critical mass at which it may become increasingly difficult for designers to maintain and for developers to use an evolving language appropriately. To tackle this language design paradox, we have developed GLoo, a small open-ended dynamic language, whose design philosophy aims at a unified approach in which program and language evolution result directly from the definition of extensible domain sub-languages. Surprisingly, these extensible domain sub-languages not only provide a framework to capture domain expertise, but also give rise to a powerful compositional model for language extension. To demonstrate the effectiveness of this approach, we develop the Language of Namespaces and Traits in this paper. We define this extensible domain sub-language as an aggregate of various forms of object-oriented language support. Using the Language of Namespaces and Traits as example, we show that GLoo’s extension model plays a crucial role in achieving a flexible compositional approach for the design of readily-available and extensible programming abstractions.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)

    MATH  Google Scholar 

  2. Achermann, F.: Forms, Agents and Channels: Defining Composition Abstraction with Style. PhD thesis, University of Bern, Institute of Computer Science and Applied Mathematics (January 2002)

    Google Scholar 

  3. Arnold, K., Gosling, J.: The Java Programming Language. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  4. Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Classboxes: Controlling Visibility of Class Extensions. Journal of Computer Languages, Systems & Structures 31(3-4), 107–126 (2005)

    Article  MATH  Google Scholar 

  5. Bird, R.: Introduction to Functional Programming using Haskell, 2nd edn. Prentice Hall, Englewood Cliffs (1998)

    Google Scholar 

  6. Dami, L.: A Lambda-Calculus for Dynamic Binding. Theoretical Computer Science 192, 201–231 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  7. de Rauglaudre, D.: Camlp5 - Reference Manual. Institut National de Recherche en Informatique et Automatique, Rocquencourt (January 2008)

    Google Scholar 

  8. Flatt, M., Findler, R.B., Felleisen, M.: Scheme with Classes, Mixins, and Traits. In: Kobayashi, N. (ed.) APLAS 2006. LNCS, vol. 4279, pp. 270–289. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  9. Ford, B.: Parsing Expression Grammars: A Recognition-Based Syntactic Foundation. In: Proceedings of POPL 2004, pp. 111–122. ACM Press, New York (2004)

    Chapter  Google Scholar 

  10. Goldberg, A., Robson, D.: Smalltalk-80: The Language. Addison-Wesley, Reading (1989)

    MATH  Google Scholar 

  11. Hughes, J.: Why Functional Programming Matters. Computer Journal 32(2), 98–107 (1989)

    Article  Google Scholar 

  12. Kelsey, R., Clinger, W., Rees, J. (eds.): Revised5 Report on the Algorithmic Language Scheme. ACM SIGPLAN Notices, 33(9) (September 1998)

    Google Scholar 

  13. Leijen, D., Meijer, E.: Parsec: Direct Style Monadic Parser Combinators for the Real World. Technical Report UU-CS-2001-27, Department of Computer Science, Universiteit Utrecht (2001)

    Google Scholar 

  14. Lumpe, M.: A Lambda Calculus With Forms. In: Gschwind, T., Aßmann, U., Nierstrasz, O. (eds.) SC 2005. LNCS, vol. 3628, pp. 73–88. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  15. Lumpe, M.: GLoo: A Framework for Modeling and Reasoning About Component-Oriented Language Abstractions. In: Gorton, I., Heineman, G.T., Crnković, I., Schmidt, H.W., Stafford, J.A., Szyperski, C.A., Wallnau, K. (eds.) CBSE 2006. LNCS, vol. 4063, pp. 17–32. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  16. Lumpe, M.: Application = Components + GLoo. Electronic Notes in Theoretical Computer Science 182, 123–138 (2007)

    Article  Google Scholar 

  17. Lutz, M.: Programming Python, 3rd edn. O’Reilly (2006)

    Google Scholar 

  18. Microsoft Corporation. C# Version 3.0 Specification. Microsoft Corporation, Redmond, WA (May 2006)

    Google Scholar 

  19. Mitchell, J.C.: Concepts in Programming Languages. Cambridge University Press, Cambridge (2003)

    Google Scholar 

  20. Nystrom, N., Clarkson, M.R., Myers, A.C.: Polyglot: An Extensible Compiler Framework for Java. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 138–152. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  21. Ossher, H., Harrison, W., Budinsky, F., Simmonds, I.: Subject-Oriented Programming: Supporting Decentralized Development of Objects. In: Proceedings of the 7th IBM Conference on Object-Oriented Technology (July 1994)

    Google Scholar 

  22. Ousterhout, J.K.: Tcl and the Tk Toolkit. Addison-Wesley, Reading (1994)

    MATH  Google Scholar 

  23. PLT Scheme (2006), http://www.plt-scheme.org

  24. Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.: Traits: Composable Units of Behavior. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 248–274. Springer, Heidelberg (2003)

    Google Scholar 

  25. Steele, G.L.: Growing a Language. Higher-Order and Symbolic Computation 12, 221–236 (1999)

    Article  Google Scholar 

  26. Ungar, D., Smith, R.B.: SELF: The Power of Simplicity. In: Proceedings OOPSLA 1987. ACM SIGPLAN Notices, vol. 22, pp. 227–242 (December 1987)

    Google Scholar 

  27. Wadler, P.: Monads and composable continuations. List and Symbolic Computation 7, 39–56 (1993)

    Article  Google Scholar 

  28. Wall, L., Christiansen, T., Orwant, J.: Programming Perl, 3rd edn. O’Reilly & Associates (July 2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Cesare Pautasso Éric Tanter

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lumpe, M. (2008). Growing a Language: The GLoo Perspective. In: Pautasso, C., Tanter, É. (eds) Software Composition. SC 2008. Lecture Notes in Computer Science, vol 4954. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78789-1_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-78789-1_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-78788-4

  • Online ISBN: 978-3-540-78789-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics