Growing a Language: The GLooPerspective

Growing a Language: The GLooPerspective
复制标题

发展一门语言:GLoPerspective

DOI:
10.1007/978-3-540-78789-1_1
复制
发表时间:
2008
期刊:
Parallel Process. Lett.
影响因子:
--
通讯作者:
M. Lumpe
M. Lumpe
中科院分区:
--
文献类型:
--
作者:
M. Lumpe

文献摘要

被引文献

相似文献

编程语言的设计通常是面向功能的积累而不是组合。然而,通过增加越来越多的内置抽象,任何编程语言最终都有达到临界质量的风险,设计人员可能越来越难以维护,开发人员也越来越难以适当地使用不断发展的语言。为了解决这个语言设计的悖论,我们已经开发了GLOO,一个小的开放式的动态语言,其设计理念的目的是在一个统一的方法,程序和语言的演变结果直接从定义的可扩展域子语言。令人惊讶的是,这些可扩展的领域子语言不仅提供了一个框架,以捕捉领域的专业知识,但也产生了一个强大的组合模型的语言扩展。为了证明这种方法的有效性,我们在本文中开发了空间和特征的语言。我们定义这个可扩展域子语言作为各种形式的面向对象语言支持的聚合。使用语言的空间和特征为例,我们表明,GLOO的扩展模型在实现灵活的组合方法的设计,随时可用和可扩展的编程抽象中起着至关重要的作用。
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.