Detailseite
Projekt Druckansicht

Tiefe Integration domänenspezifischer Sprachen

Fachliche Zuordnung Theoretische Informatik
Förderung Förderung von 2012 bis 2016
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 223883118
 
Erstellungsjahr 2016

Zusammenfassung der Projektergebnisse

Raising the level of abstraction in computer programming has been the key topic for driving progress in programming technology for many decades: Formulating a program in terms of the physical details of the underlying hardware makes programs brittle and repetitious and hinders the standard “- ilities” of software engineering (reusability, maintainability, readability etc.). Rather, programs should be expressed in terms of the concepts and notions in the domain they operate in. Domain-specific languages and libraries are a common way to get as close as possible to this ideal. This means that the programming concepts that are used to solve problems in a domain consist of the vocabulary that is common and well-defined within that domain. This project has advanced the state of the art in the research domain of domain-specific languages. A domain-specific language doesn’t arise out of thin air, though. The process to develop and implement a domain-specific language must also be modular, efficient and extensible. It should also be supported by domainspecific languages, where the domain in question is the definition of other domain-specific languages. Such language technologies on the meta-level have been the main focus of this project. We have implemented a set of technologies for developing domain-specific languages in an efficient and extensible way. We have designed an extension of Java, called SugarJ, that extends Java with a mechanism for defining syntactic domain-specific extensions in a modular way, in such a way that every source file can choose to use its own set of language extensions. We have also designed several technologies for more efficient embedding of domain-specific languages. “Embedding” means that the language is not devised as a stand-alone language, but it becomes a library for a generalpurpose language that can be used in a similar way as stand-alone language, but with better composability with the general-purpose language and its infrastructure (such as IDEs) and other embedded domain-specific languages. We have designed languages and type systems that improve the modularity and maintainability of embedded domain-specific languages. The results of this project were published in high-profile publication venues of this domain, such as the ACM International Conference on Functional Programming (ICFP), the ACM Conference on Object-Oriented Languages, Systems, and Applications (OOPSLA), and the ACM Conference on Principles of Programming Languages (POPL).

Projektbezogene Publikationen (Auswahl)

 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung