Print Email Facebook Twitter Bootstrapping Domain-Specific Meta-Languages in Language Workbenches Title Bootstrapping Domain-Specific Meta-Languages in Language Workbenches Author Konat, G.D.P. (TU Delft Programming Languages) Erdweg, S.T. (TU Delft Programming Languages) Visser, Eelco (TU Delft Programming Languages) Contributor Schaefer, I. (editor) Fischer, B. (editor) Date 2016 Abstract It is common practice to bootstrap compilers of programming languages. By using the compiled language to implement the compiler, compiler developers can code in their own high-level language and gain a large-scale test case. In this paper, we investigate bootstrapping of compiler-compilers as they occur in language workbenches. Language workbenches support the development of compilers through the application of multiple collaborating domain-specific meta-languages for defining a language’s syntax, analysis, code generation, and editor support. We analyze the bootstrapping problem of language workbenches in detail, propose a method for sound bootstrapping based on fixpoint compilation, and show how to conduct breaking meta-language changes in a bootstrapped language workbench. We have applied sound bootstrapping to the Spoofax language workbench and report on our experience. Subject BootstrappingDomain-specificLanguage workbenchMeta-language To reference this document use: http://resolver.tudelft.nl/uuid:15f4b654-31a3-4485-b270-ea9e4ded2c2f DOI https://doi.org/10.1145/2993236.2993242 Publisher Association for Computing Machinery (ACM), New York, NY ISBN 978-145034446-3 Source Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences Event 15th ACM SIGPLAN International Conference on Generative Programming, 2016-10-31 → 2016-11-01, Mövenpick Hotel Amsterdam City Centre, Amsterdam, Netherlands Part of collection Institutional Repository Document type conference paper Rights © 2016 G.D.P. Konat, S.T. Erdweg, Eelco Visser Files PDF p47_konat.pdf 506.8 KB Close viewer /islandora/object/uuid:15f4b654-31a3-4485-b270-ea9e4ded2c2f/datastream/OBJ/view