publication . Article . Conference object . Other literature type . 2017

Bootstrapping domain-specific meta-languages in language workbenches

Konat, G.D.P.; Erdweg, S.T.; Visser, E.; Schaefer, I.; Fischer, B.;
Open Access
  • Published: 12 May 2017 Journal: ACM SIGPLAN Notices, volume 52, pages 47-58 (issn: 0362-1340, eissn: 1558-1160, Copyright policy)
  • Publisher: Association for Computing Machinery (ACM)
  • Country: Netherlands
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 o...
Subjects
free text keywords: Software, Computer Graphics and Computer-Aided Design, Bootstrapping, Domain-specific, Language workbench, Meta-language
Funded by
NWO| Deep Integration of Domain-Specific Languages
Project
  • Funder: Netherlands Organisation for Scientific Research (NWO) (NWO)
  • Project Code: 2300171783
,
NWO| The Language Designer's Workbench: Automating Verification of Language Definitions
Project
  • Funder: Netherlands Organisation for Scientific Research (NWO) (NWO)
  • Project Code: 2300176018
Download fromView all 3 versions
TU Delft Repository
Conference object . 2016
Provider: NARCIS
http://dx.doi.org/10.1145/3093...
Other literature type . 2016
Provider: Datacite
ACM SIGPLAN Notices
Article . 2017
Provider: Crossref
32 references, page 1 of 3

[1] Andrew W. Appel. Axiomatic bootstrapping: A guide for compiler hackers. ACM Transactions on Programming Languages and Systems, 16(6):1699-1718, 1994.

[2] Lorenzo Bettini. Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, 2nd edition, 2016.

[3] Harvey Bratman. A alternate form of the "uncol diagram". Communications of the ACM, 4(3):142, 1961. [OpenAIRE]

[4] Martin Bravenboer, Karl Trygve Kalleberg, Rob Vermaas, and Eelco Visser. Stratego/XT 0.17. A language and toolset for program transformation. Science of Computer Programming, 72(1-2):52-70, 2008.

[5] Cristiano Calcagno, Walid Taha, Liwen Huang, and Xavier Leroy. Implementing multi-stage languages using asts, gensym, and reflection. In Frank Pfenning and Yannis Smaragdakis, editors, Generative Programming and Component Engineering, Second International Conference, GPCE 2003, Erfurt, Germany, September 22-25, 2003, Proceedings, volume 2830 of Lecture Notes in Computer Science, pages 57-76. Springer, 2003.

[6] Jay Earley and Howard E. Sturgis. A formalism for translator interactions. Communications of the ACM, 13(10):607-617, 1970. [OpenAIRE]

[7] Sebastian Erdweg. Extensible Languages for Flexible and Principled Domain Abstraction. PhD thesis, Philipps-Universität Marburg, March 2013. [OpenAIRE]

[8] Sebastian Erdweg, Tillmann Rendel, Christian Kästner, and Klaus Ostermann. SugarJ: library-based syntactic language extensibility. In Cristina Videira Lopes and Kathleen Fisher, editors, Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22 - 27, 2011, pages 391-406. ACM, 2011. [OpenAIRE]

[9] Sebastian Erdweg, Tijs van der Storm, Markus Völter, Laurence Tratt, Remi Bosman, William R. Cook, Albert Gerritsen, Angelo Hulshout, Steven Kelly 0001, Alex Loh, Gabriël D. P. Konat, Pedro J. Molina, Martin Palatnik, Risto Pohjonen, Eugen Schindler, Klemens Schindler, Riccardo Solmi, Vlad A. Vergu, Eelco Visser, Kevin van der Vlist, Guido Wachsmuth, and Jimi van der Woning. Evaluating and comparing language workbenches: Existing results and benchmarks for the future. Computer Languages, Systems & Structures, 44:24-47, 2015.

[10] Robby Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, and Matthias Felleisen. Drscheme: a programming environment for scheme. Journal of Functional Programming, 12(2):159-182, 2002.

[11] Robert Bruce Findler and PLT. DrRacket: Programming environment. Technical Report PLT-TR-2010-2, PLT Design Inc., 2010. http://racket-lang.org/tr2/.

[12] Harry D. Huskey, M. H. Halstead, and R. McArthur. NELIAC - dialect of ALGOL. Commun. ACM, 3(8):463-468, August 1960.

[13] K. Jensen H. H. Nägeli K. V. Nori, U. Ammann. The PASCAL <P> compiler: Implementation notes. Technical report, ETH Zürich, 1974.

[14] Lennart C. L. Kats and Eelco Visser. The Spoofax language workbench: rules for declarative specification of languages and IDEs. In William R. Cook, Siobhán Clarke, and Martin C. Rinard, editors, Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, pages 444-463, Reno/Tahoe, Nevada, 2010. ACM.

[15] Steven Kelly, Kalle Lyytinen, and Matti Rossi. Metaedit+: A fully configurable multi-user and multi-tool case and came environment. In Panos Constantopoulos, John Mylopoulos, and Yannis Vassiliou, editors, Advances Information System Engineering, 8th International Conference, CAiSE 96, Heraklion, Crete, Greece, May 20-24, 1996, Proceedings, volume 1080 of Lecture Notes in Computer Science, pages 1-21. Springer, 1996.

32 references, page 1 of 3
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 o...
Subjects
free text keywords: Software, Computer Graphics and Computer-Aided Design, Bootstrapping, Domain-specific, Language workbench, Meta-language
Funded by
NWO| Deep Integration of Domain-Specific Languages
Project
  • Funder: Netherlands Organisation for Scientific Research (NWO) (NWO)
  • Project Code: 2300171783
,
NWO| The Language Designer's Workbench: Automating Verification of Language Definitions
Project
  • Funder: Netherlands Organisation for Scientific Research (NWO) (NWO)
  • Project Code: 2300176018
Download fromView all 3 versions
TU Delft Repository
Conference object . 2016
Provider: NARCIS
http://dx.doi.org/10.1145/3093...
Other literature type . 2016
Provider: Datacite
ACM SIGPLAN Notices
Article . 2017
Provider: Crossref
32 references, page 1 of 3

[1] Andrew W. Appel. Axiomatic bootstrapping: A guide for compiler hackers. ACM Transactions on Programming Languages and Systems, 16(6):1699-1718, 1994.

[2] Lorenzo Bettini. Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, 2nd edition, 2016.

[3] Harvey Bratman. A alternate form of the "uncol diagram". Communications of the ACM, 4(3):142, 1961. [OpenAIRE]

[4] Martin Bravenboer, Karl Trygve Kalleberg, Rob Vermaas, and Eelco Visser. Stratego/XT 0.17. A language and toolset for program transformation. Science of Computer Programming, 72(1-2):52-70, 2008.

[5] Cristiano Calcagno, Walid Taha, Liwen Huang, and Xavier Leroy. Implementing multi-stage languages using asts, gensym, and reflection. In Frank Pfenning and Yannis Smaragdakis, editors, Generative Programming and Component Engineering, Second International Conference, GPCE 2003, Erfurt, Germany, September 22-25, 2003, Proceedings, volume 2830 of Lecture Notes in Computer Science, pages 57-76. Springer, 2003.

[6] Jay Earley and Howard E. Sturgis. A formalism for translator interactions. Communications of the ACM, 13(10):607-617, 1970. [OpenAIRE]

[7] Sebastian Erdweg. Extensible Languages for Flexible and Principled Domain Abstraction. PhD thesis, Philipps-Universität Marburg, March 2013. [OpenAIRE]

[8] Sebastian Erdweg, Tillmann Rendel, Christian Kästner, and Klaus Ostermann. SugarJ: library-based syntactic language extensibility. In Cristina Videira Lopes and Kathleen Fisher, editors, Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22 - 27, 2011, pages 391-406. ACM, 2011. [OpenAIRE]

[9] Sebastian Erdweg, Tijs van der Storm, Markus Völter, Laurence Tratt, Remi Bosman, William R. Cook, Albert Gerritsen, Angelo Hulshout, Steven Kelly 0001, Alex Loh, Gabriël D. P. Konat, Pedro J. Molina, Martin Palatnik, Risto Pohjonen, Eugen Schindler, Klemens Schindler, Riccardo Solmi, Vlad A. Vergu, Eelco Visser, Kevin van der Vlist, Guido Wachsmuth, and Jimi van der Woning. Evaluating and comparing language workbenches: Existing results and benchmarks for the future. Computer Languages, Systems & Structures, 44:24-47, 2015.

[10] Robby Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, and Matthias Felleisen. Drscheme: a programming environment for scheme. Journal of Functional Programming, 12(2):159-182, 2002.

[11] Robert Bruce Findler and PLT. DrRacket: Programming environment. Technical Report PLT-TR-2010-2, PLT Design Inc., 2010. http://racket-lang.org/tr2/.

[12] Harry D. Huskey, M. H. Halstead, and R. McArthur. NELIAC - dialect of ALGOL. Commun. ACM, 3(8):463-468, August 1960.

[13] K. Jensen H. H. Nägeli K. V. Nori, U. Ammann. The PASCAL <P> compiler: Implementation notes. Technical report, ETH Zürich, 1974.

[14] Lennart C. L. Kats and Eelco Visser. The Spoofax language workbench: rules for declarative specification of languages and IDEs. In William R. Cook, Siobhán Clarke, and Martin C. Rinard, editors, Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, pages 444-463, Reno/Tahoe, Nevada, 2010. ACM.

[15] Steven Kelly, Kalle Lyytinen, and Matti Rossi. Metaedit+: A fully configurable multi-user and multi-tool case and came environment. In Panos Constantopoulos, John Mylopoulos, and Yannis Vassiliou, editors, Advances Information System Engineering, 8th International Conference, CAiSE 96, Heraklion, Crete, Greece, May 20-24, 1996, Proceedings, volume 1080 of Lecture Notes in Computer Science, pages 1-21. Springer, 1996.

32 references, page 1 of 3
Powered by OpenAIRE Open Research Graph
Any information missing or wrong?Report an Issue
publication . Article . Conference object . Other literature type . 2017

Bootstrapping domain-specific meta-languages in language workbenches

Konat, G.D.P.; Erdweg, S.T.; Visser, E.; Schaefer, I.; Fischer, B.;