سند علمی

Modular Domain-Specific Language Extensions

چکیده

Software development is a time-consuming, and error-prone process. A significant part of the problem is caused by the large semantic gap between the programmer’s high-level understanding of the problem and the relatively low-level language in which the problem solutions are encoded. General purpose language features such as generics in object-oriented programming or higher-order functions are helpful in specifying abstractions for a specific problem or domain, but these are limited in that they only provide the functionality of the desired abstractions. Domain-specific languages [6] can provide this same functionality but they also provide language constructs (notations) for the (domain-specific) abstractions and thus help reduce this semantic gap by raising the level of abstraction of the language to that of a specific domain. These languages also provide domain-specific analyses and optimizations that are difficult, if not impossible, to specify for programs written in general purpose languages. But the fundamental issue remains since problems often cross multiple domains and no language contains all of the general-purpose and domain-specific features needed to address every aspect of the problem. Thus, programmers cannot “say what they mean” but must encode their ideas as programming idioms at a lower level of abstraction. It is our position that extensible languages provide a promising way to improve the software development process and software quality by reducing the semantic gap. An extensible language can easily be extended with the unique combination of domain-specific language features that raise the level of abstraction to that of a particular problem, even when the problem crosses multiple domains. A framework for language extensibility should have two significant facets. First, it should satisfy the requirement of completeness, that is, it should allow any language extension to fit seamlessly into the host language and be as welldeveloped as the host language constructs. In particular, the feature designer should be able to specify new language constructs together with their domain-specific semantic analyses and techniques for their optimization. Second, the extensibility framework should be modular in that it should allow a programmer to extend a language by choosing from a collection of previously defined features knowing only the functionality they provide. To understand the extensibility we seek, a distinction is made between the activities of implementing a language extension, performed by a domain-expert feature designer, and using language extensions to create an extended language, performed by a programmer.

اسناد مشابه

  • Modular domain specific languages and tools

    سند علمی۱۹۹۸ICSRPaul Hudak

    A domain specific language (DSL) allows one to develop software for a particular application domain quickly and effectively, yielding programs that are easy to understand, reason about, and maintain. On the other hand, there may be a significant overhead in creating the infrastru

  • A Composable Domain Specific Language Extension for Spatio-Temporal Data Mining

    سند علمی۲۰۱۳Matthew Le, Kevin Williams, Eric Van Wyk

    In this paper we describe our work in progress in building modular and composable domain-specific language extensions for C, targeting matrix processing and spatio-temporal data mining. The paper also describes two general purpose language extensions to add tuples and reference-c

  • Copenhagen Ph . D . Dissertation Tom Hvitved Contract Formalisation and Modular Implementation of Domain - Specific Languages

    سند علمی۲۰۱۲Tom Hvitved

    This dissertation encompasses the topics contract formalisation, domainspecific languages implementation, and enterprise resource planning systems. The dissertation is a collection of six independent chapters, two of which are published papers, two of which are extended versions

  • Growing a Domain Specific Language with Split Extensions

    سند علمی۲۰۰۷Éric Badouel, Marcel Tonga

    In this paper we consider simple language extensions given by a pair of transducers. When these transducers are viewed as trees transformers, one of this transducer provides an embedding of the original language into its extension while the other, a left-inverse to the embedding,

  • Towards Python-based Domain-specific Languages for Self-reconfigurable Modular Robotics Research

    سند علمی۲۰۱۳CoRRMikael Moghadam, David Johan Christensen, David Brandt, Ulrik Pagh Schultz

    This paper explores the role of operating system and high-level languages in the development of software and domain-specific languages (DSLs) for self-reconfigurable robotics. We review some of the current trends in selfreconfigurable robotics and describe the development of a so

  • MontiCore: Modular Development of Textual Domain Specific Languages

    سند علمی۲۰۰۸TOOLSHolger Krahn, Bernhard Rumpe, Steven Völkel

    Reuse is a key technique for a more efficient development and ensures the quality of the results. In object technology explicit encapsulation, interfaces, and inheritance are well-known principles for independent development that enable combination and reuse of developed artifact