109 lines
4.8 KiB
Markdown
109 lines
4.8 KiB
Markdown
file:: [MLE23_paper_2_1691614458443_0.pdf](../assets/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 GrammarOptimizer’s 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 |