Supporting Meta-model-based Language Evolution and Rapid Prototyping with Automated Grammar Optimization

In model-driven engineering, developing a textual domain-specific language (DSL) involves constructing a meta-model, which defines an underlying abstract syntax, and a grammar, which defines the concrete syntax for the DSL. Language workbenches such as Xtext allow the grammar to be automatically gen...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Zhang, Weixing, Holtmann, Jörg, Strüber, Daniel, Hebig, Regina, Steghöfer, Jan-Philipp
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title
container_volume
creator Zhang, Weixing
Holtmann, Jörg
Strüber, Daniel
Hebig, Regina
Steghöfer, Jan-Philipp
description In model-driven engineering, developing a textual domain-specific language (DSL) involves constructing a meta-model, which defines an underlying abstract syntax, and a grammar, which defines the concrete syntax for the DSL. Language workbenches such as Xtext allow the grammar to be automatically generated from the meta-model, yet the generated grammar usually needs to be manually optimized to improve its usability. When the meta-model changes during rapid prototyping or language evolution, it can become necessary to re-generate the grammar and optimize it again, causing repeated effort and potential for errors. In this paper, we present GrammarOptimizer, an approach for optimizing generated grammars in the context of meta-model-based language evolution. To reduce the effort for language engineers during rapid prototyping and language evolution, it offers a catalog of configurable grammar optimization rules. Once configured, these rules can be automatically applied and re-applied after future evolution steps, greatly reducing redundant manual effort. In addition, some of the supported optimizations can globally change the style of concrete syntax elements, further significantly reducing the effort for manual optimizations. The grammar optimization rules were extracted from a comparison of generated and existing, expert-created grammars, based on seven available DSLs.
doi_str_mv 10.48550/arxiv.2401.17351
format Article
fullrecord <record><control><sourceid>arxiv_GOX</sourceid><recordid>TN_cdi_arxiv_primary_2401_17351</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2401_17351</sourcerecordid><originalsourceid>FETCH-LOGICAL-a671-f785d9277309a181c1c0970504bcf147b587f33705a3f52ab4bd19b5450fcf733</originalsourceid><addsrcrecordid>eNotj0FOwzAURL1hgQoHYFVfIMGO7TpZVlUpSEFF0H30HceppSS2XKdQTk_SshpppDeah9ATJSnPhSDPEH7sOc04oSmVTNB7dPwavXch2qHF702EpHe66RIFp0bjEoZ2hLbB27PrxmjdgGHQ-BO81fgjuOjixc_kt41HvB6j6yFO3C5A30PAex9tb39hJh_QnYHu1Dz-5wIdXraHzWtS7ndvm3WZwErSxMhc6CKTkpECaE5rWpNCEkG4qg3lUolcGsamBpgRGSiuNC2U4IKY2kjGFmh5m72qVj7Y6cilmpWrqzL7AyVUUnM</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Supporting Meta-model-based Language Evolution and Rapid Prototyping with Automated Grammar Optimization</title><source>arXiv.org</source><creator>Zhang, Weixing ; Holtmann, Jörg ; Strüber, Daniel ; Hebig, Regina ; Steghöfer, Jan-Philipp</creator><creatorcontrib>Zhang, Weixing ; Holtmann, Jörg ; Strüber, Daniel ; Hebig, Regina ; Steghöfer, Jan-Philipp</creatorcontrib><description>In model-driven engineering, developing a textual domain-specific language (DSL) involves constructing a meta-model, which defines an underlying abstract syntax, and a grammar, which defines the concrete syntax for the DSL. Language workbenches such as Xtext allow the grammar to be automatically generated from the meta-model, yet the generated grammar usually needs to be manually optimized to improve its usability. When the meta-model changes during rapid prototyping or language evolution, it can become necessary to re-generate the grammar and optimize it again, causing repeated effort and potential for errors. In this paper, we present GrammarOptimizer, an approach for optimizing generated grammars in the context of meta-model-based language evolution. To reduce the effort for language engineers during rapid prototyping and language evolution, it offers a catalog of configurable grammar optimization rules. Once configured, these rules can be automatically applied and re-applied after future evolution steps, greatly reducing redundant manual effort. In addition, some of the supported optimizations can globally change the style of concrete syntax elements, further significantly reducing the effort for manual optimizations. The grammar optimization rules were extracted from a comparison of generated and existing, expert-created grammars, based on seven available DSLs.</description><identifier>DOI: 10.48550/arxiv.2401.17351</identifier><language>eng</language><subject>Computer Science - Programming Languages ; Computer Science - Software Engineering</subject><creationdate>2024-01</creationdate><rights>http://creativecommons.org/licenses/by-nc-nd/4.0</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>228,230,780,885</link.rule.ids><linktorsrc>$$Uhttps://arxiv.org/abs/2401.17351$$EView_record_in_Cornell_University$$FView_record_in_$$GCornell_University$$Hfree_for_read</linktorsrc><backlink>$$Uhttps://doi.org/10.48550/arXiv.2401.17351$$DView paper in arXiv$$Hfree_for_read</backlink></links><search><creatorcontrib>Zhang, Weixing</creatorcontrib><creatorcontrib>Holtmann, Jörg</creatorcontrib><creatorcontrib>Strüber, Daniel</creatorcontrib><creatorcontrib>Hebig, Regina</creatorcontrib><creatorcontrib>Steghöfer, Jan-Philipp</creatorcontrib><title>Supporting Meta-model-based Language Evolution and Rapid Prototyping with Automated Grammar Optimization</title><description>In model-driven engineering, developing a textual domain-specific language (DSL) involves constructing a meta-model, which defines an underlying abstract syntax, and a grammar, which defines the concrete syntax for the DSL. Language workbenches such as Xtext allow the grammar to be automatically generated from the meta-model, yet the generated grammar usually needs to be manually optimized to improve its usability. When the meta-model changes during rapid prototyping or language evolution, it can become necessary to re-generate the grammar and optimize it again, causing repeated effort and potential for errors. In this paper, we present GrammarOptimizer, an approach for optimizing generated grammars in the context of meta-model-based language evolution. To reduce the effort for language engineers during rapid prototyping and language evolution, it offers a catalog of configurable grammar optimization rules. Once configured, these rules can be automatically applied and re-applied after future evolution steps, greatly reducing redundant manual effort. In addition, some of the supported optimizations can globally change the style of concrete syntax elements, further significantly reducing the effort for manual optimizations. The grammar optimization rules were extracted from a comparison of generated and existing, expert-created grammars, based on seven available DSLs.</description><subject>Computer Science - Programming Languages</subject><subject>Computer Science - Software Engineering</subject><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2024</creationdate><recordtype>article</recordtype><sourceid>GOX</sourceid><recordid>eNotj0FOwzAURL1hgQoHYFVfIMGO7TpZVlUpSEFF0H30HceppSS2XKdQTk_SshpppDeah9ATJSnPhSDPEH7sOc04oSmVTNB7dPwavXch2qHF702EpHe66RIFp0bjEoZ2hLbB27PrxmjdgGHQ-BO81fgjuOjixc_kt41HvB6j6yFO3C5A30PAex9tb39hJh_QnYHu1Dz-5wIdXraHzWtS7ndvm3WZwErSxMhc6CKTkpECaE5rWpNCEkG4qg3lUolcGsamBpgRGSiuNC2U4IKY2kjGFmh5m72qVj7Y6cilmpWrqzL7AyVUUnM</recordid><startdate>20240130</startdate><enddate>20240130</enddate><creator>Zhang, Weixing</creator><creator>Holtmann, Jörg</creator><creator>Strüber, Daniel</creator><creator>Hebig, Regina</creator><creator>Steghöfer, Jan-Philipp</creator><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20240130</creationdate><title>Supporting Meta-model-based Language Evolution and Rapid Prototyping with Automated Grammar Optimization</title><author>Zhang, Weixing ; Holtmann, Jörg ; Strüber, Daniel ; Hebig, Regina ; Steghöfer, Jan-Philipp</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a671-f785d9277309a181c1c0970504bcf147b587f33705a3f52ab4bd19b5450fcf733</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2024</creationdate><topic>Computer Science - Programming Languages</topic><topic>Computer Science - Software Engineering</topic><toplevel>online_resources</toplevel><creatorcontrib>Zhang, Weixing</creatorcontrib><creatorcontrib>Holtmann, Jörg</creatorcontrib><creatorcontrib>Strüber, Daniel</creatorcontrib><creatorcontrib>Hebig, Regina</creatorcontrib><creatorcontrib>Steghöfer, Jan-Philipp</creatorcontrib><collection>arXiv Computer Science</collection><collection>arXiv.org</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Zhang, Weixing</au><au>Holtmann, Jörg</au><au>Strüber, Daniel</au><au>Hebig, Regina</au><au>Steghöfer, Jan-Philipp</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Supporting Meta-model-based Language Evolution and Rapid Prototyping with Automated Grammar Optimization</atitle><date>2024-01-30</date><risdate>2024</risdate><abstract>In model-driven engineering, developing a textual domain-specific language (DSL) involves constructing a meta-model, which defines an underlying abstract syntax, and a grammar, which defines the concrete syntax for the DSL. Language workbenches such as Xtext allow the grammar to be automatically generated from the meta-model, yet the generated grammar usually needs to be manually optimized to improve its usability. When the meta-model changes during rapid prototyping or language evolution, it can become necessary to re-generate the grammar and optimize it again, causing repeated effort and potential for errors. In this paper, we present GrammarOptimizer, an approach for optimizing generated grammars in the context of meta-model-based language evolution. To reduce the effort for language engineers during rapid prototyping and language evolution, it offers a catalog of configurable grammar optimization rules. Once configured, these rules can be automatically applied and re-applied after future evolution steps, greatly reducing redundant manual effort. In addition, some of the supported optimizations can globally change the style of concrete syntax elements, further significantly reducing the effort for manual optimizations. The grammar optimization rules were extracted from a comparison of generated and existing, expert-created grammars, based on seven available DSLs.</abstract><doi>10.48550/arxiv.2401.17351</doi><oa>free_for_read</oa></addata></record>
fulltext fulltext_linktorsrc
identifier DOI: 10.48550/arxiv.2401.17351
ispartof
issn
language eng
recordid cdi_arxiv_primary_2401_17351
source arXiv.org
subjects Computer Science - Programming Languages
Computer Science - Software Engineering
title Supporting Meta-model-based Language Evolution and Rapid Prototyping with Automated Grammar Optimization
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-23T08%3A18%3A58IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-arxiv_GOX&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Supporting%20Meta-model-based%20Language%20Evolution%20and%20Rapid%20Prototyping%20with%20Automated%20Grammar%20Optimization&rft.au=Zhang,%20Weixing&rft.date=2024-01-30&rft_id=info:doi/10.48550/arxiv.2401.17351&rft_dat=%3Carxiv_GOX%3E2401_17351%3C/arxiv_GOX%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true