Growing a language: the GLoo perspective

  • Authors:
  • Markus Lumpe

  • Affiliations:
  • Faculty of Information & Communication Technologies, Swinburne University of Technology, Hawthorn, VIC, Australia

  • Venue:
  • SC'08 Proceedings of the 7th international conference on Software composition
  • Year:
  • 2008
  • Preparing for C++0x

    Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications

Quantified Score

Hi-index 0.00

Visualization

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.