Files
logseq/pages/hls__MLE23_paper_2_1691614458443_0.md
T
2025-06-02 17:15:13 +02:00

4.8 KiB
Raw Blame History

file:: MLE23_paper_2_1691614458443_0.pdf file-path:: ../assets/MLE23_paper_2_1691614458443_0.pdf

  • Metamodel-based DSL development in language workbenches like Xtext allows language engineers to focus more on metamodels and domain concepts rather than grammar details. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 64d5f222-1145-4bf7-8e85-e9c0f0e49d81
  • GrammarOptimizer ls-type:: annotation hl-page:: 1 hl-color:: green id:: 64d5f235-7b01-4cfc-9caf-a8186d797fe9
  • In this paper, we present our vision for and current progress towards a language workbench that integrates GrammarOptimizers grammar optimization rules to support rapid prototyping and evolution of metamodel-based language ls-type:: annotation hl-page:: 1 hl-color:: purple id:: 64d5f24a-954c-4359-b5b4-54612557795e
  • inference of a grammar based on examples from model instances and offers a selection of language styles. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 64d5f2a6-5c44-4c2b-a567-dba7838e95c7
  • We refer to this DSL development approach as metamodel-based development. To our knowledge, the only available workbench supporting this approach is Xtext [3]. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 64d5f3e0-fcc7-49e5-a17c-e026e0c9cc4a
  • Some of these elements are necessary, but the grammars typically become lengthy and rely on deep nesting, making it cumbersome to write code in the resulting DSL ls-type:: annotation hl-page:: 1 hl-color:: green id:: 64d5f443-aa8e-4a45-90aa-9882e48eba1c
  • he generated grammar often requires manual adjustments to be effectively used—we call this adjustment grammar optimization. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 64d5f452-f5a7-4718-9fe0-2ebe80853d40
  • Therefore, we argue that there is today no language workbench that allows for metamodel-based DSL development, while also supporting rapid prototyping. ls-type:: annotation hl-page:: 1 hl-color:: blue id:: 64d5f476-9a2f-45b0-a9dc-9d1f16f47a28
  • Our goal is for the envisioned language workbench to facilitate the rapid prototyping of languages in iterative cycles of engineering, reducing manual work, shortening development time, and improving efficiency ls-type:: annotation hl-page:: 2 hl-color:: blue id:: 64d5f4e7-f553-48f9-a1b3-028b634ef241 hl-stamp:: 1691785324558
  • GrammarOptimizer ls-type:: annotation hl-page:: 2 hl-color:: green id:: 64d5f599-feb8-4740-bb16-e87e2a4c88c6
  • 31 lines of optimization rules ls-type:: annotation hl-page:: 2 hl-color:: green id:: 64d5f5c0-9ad1-4f9e-b24d-e6de57a0be1e
  • removing the keyword shortName ls-type:: annotation hl-page:: 2 hl-color:: green id:: 64d698b2-6fbc-434d-9c65-b3341987bd4e
  • GrammarOptimizer leads to a substantial manual overhead ls-type:: annotation hl-page:: 2 hl-color:: green id:: 64d69905-e18e-4e09-a94a-8b18fa8f4e7b
  • MetaEdit ls-type:: annotation hl-page:: 2 hl-color:: green id:: 64d734d2-3cf4-49ae-add6-893337469a4a
  • MetaEdit+ has evolved into one of the most comprehensive language workbenche ls-type:: annotation hl-page:: 2 hl-color:: green id:: 64d734d9-2fd2-443c-b04d-912a84f5286a
  • Erdweg listed a total of 34 features covering various aspects, including notation, semantics, validation, testing, composability, editing mode, syntactic services, and semantic services. From their report, it can be observed that MetaEdit+ now covers the majority of these features, even supporting symbolic notation, which is not typically supported by many other language workbenches. ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 64d734ea-99bc-4513-af22-2cd22ba22a30
  • xceptions of graphical notation, free form, and live translation. ls-type:: annotation hl-page:: 2 hl-color:: green id:: 64d73507-9f97-460a-a8bc-480c89e31b51
  • it does not support DSL debugging, projectional editing, or quick fixes ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 64d73517-c1fa-4f12-96ed-99c2348cd55f
  • If the language engineer finds that the grammar does not reach the desired state while verifying models in the DSL editor, she will iterate back to the manual modification of the grammar. This iterative process continues until the language engineer is satisfied with the grammar. ls-type:: annotation hl-page:: 3 hl-color:: purple id:: 64d735c6-9c25-4c7a-9382-71891d64fb0d
  • rammarOptimizer can run as a standalone Eclipse plugin ls-type:: annotation hl-page:: 3 hl-color:: green id:: 64d736b3-ed21-427e-a0ec-ce5135da2804
  • configure optimization rules through a graphical user interface, integrated into the development environment they are familiar with. ls-type:: annotation hl-page:: 3 hl-color:: green id:: 64d737e9-514e-4625-862e-3a7eff7f91ca