• Medientyp: Elektronische Hochschulschrift; E-Book; Dissertation
  • Titel: ManyDSL - One host for all language needs ; ManyDSL - Ein Host für alle Sprachbedürfnisse
  • Beteiligte: Danilewski, Piotr [VerfasserIn]
  • Erschienen: Scientific publications of the Saarland University (UdS), 2017
  • Sprache: Englisch
  • DOI: https://doi.org/10.22028/D291-26769
  • Schlagwörter: Domain Specific Language ; Compiler-Compiler ; Parser-Generator ; funktionale Programmiersprache ; Programmiersprachen ; Lambda-Kalkül ; Hostsprachen ; Dynamic Staging
  • Entstehung:
  • Anmerkungen: Diese Datenquelle enthält auch Bestandsnachweise, die nicht zu einem Volltext führen.
  • Beschreibung: Languages shape thoughts. This is true for human spoken languages as much as for programming languages. As computers continue to expand their dominance in almost every aspect of our lives, the need to more adequately express new concepts and domains in computer languages arise. However, to evolve our thoughts we need to evolve the languages we speek in. But what tools are there to create and upgrade the computer languages? How can we encourage developers to define their own languages quickly to best match the domains they work in? Nowadays two main approaches exists. Dedicated language tools and parser generators allows to define new standalone languages from scratch. Alternatively, one can “abuse” sufficiently flexible host languages to embed small domain- specific languages within them. Both approaches have their own respective limitations. Creating standalone languages is a major endeavor. Such languages cannot be combined easily with other languages. Embedding, on the other hand, is limited by the syntax of the host language. Embedded languages, once defined, are always present without clear distinction between them and the host language. When used extensively, it leads to one humungous conglomerate of languages, with confusing syntax and unexpected interactions. In this work we present an alternative: ManyDSL. It is a unique interpreter and compiler taking strength from both approaches, while avoiding the above weaknesses. ManyDSL features its own LL1 parser generator, breaking the limits of the syntax of the host language. The grammar description is given in the same host language as the rest of the program. Portions of the grammar can be parametrized and abstracted into functions, in order to be used in other language definitions. Languages are created on the fly during the interpretation process and may be used to parse selected fragments of the subsequent source files. Similarly to embedded languages, ManyDSL translates all custom languages to the same host language before execution. The host language ...
  • Zugangsstatus: Freier Zugang