Grammar to JetBrains MPS Convertor
Konvertor gramatik pro JetBrains MPS
diploma thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/83088Identifiers
Study Information System: 177418
Collections
- Kvalifikační práce [11325]
Author
Advisor
Referee
Yaghob, Jakub
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
5. 9. 2016
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
JetBrains MPS, gramatika, konvertor, konverze, import, programovací jazyk, projekční editorKeywords (English)
JetBrains MPS, grammar, convertor, import, programming language, projectional editorJetBrains MPS je nástroj pro tvorbu programovacích jazyků, který se specializuje na doménově specifické jazyky. Na rozdíl od většiny podobných nástrojů, či klasických IDE, se v MPS programuje pomocí projekčního editoru. Uživatel manipuluje s programem v jeho stromové podobě (AST) a ne editováním textového zdrojového kódu. Toto přináší mnoho výhod, ale také vyžaduje časově náročnou a komplikovanou definici jazyka používaného uvnitř MPS. Diplomová práce zkoumá možnost automatické tvorby MPS jazyků pomocí importu jejich gramatik. V práci je představen editor MPS, zhodnocen přístup podobných existujících projektů a popsána autorova snaha o implementaci MPS pluginu, který takový import umožňuje. Zvolený postup a výběr nástrojů použitých k implementaci je spolu s architekturou pluginu také popsán a zdůvodněn. Dále práce rozebírá důležité problémy, které s tématem souvisí a každý podobný projekt je také musí řešit. K některým z problémů jsou uvedena a popsána možná řešení. V poslední řadě obsahuje práce i příklady importovaných jazyků, které ukazují efektivnost implementovaného pluginu. Spolu s tím je zmíněno několik návrhů na rozšíření práce a možná vylepšení. Práce si totiž klade za záměr prozkoumat a zdokumentovat danou tématiku, aby bylo možné navázat dalším výzkumem.
JetBrains MPS is a language workbench focusing on domain-specific languages. Unlike many other language workbenches and IDEs, it uses a projectional editor for code. The developer directly manipulates the program in its tree form (AST) and not by editing a text source code. This brings many advantages, but on the other hand requires time-consuming and complicated MPS language definition. The thesis elaborates on the possibility of automating the process of creating MPS language definition from its grammar description. It introduces the MPS editor, evaluates approaches of related projects and describes author's efforts to implement an MPS plugin that allows this import. The chosen approach and the selection of tools used for implementation are justified in the thesis. We point out important problems that any similar project might deal with and we introduce some possible solutions. Furthermore, the thesis contains examples of imported languages, showing the potency of the chosen approach. The thesis also aims to lay groundwork for future extensions and suggest possible improvements.