text size

Grammar to JetBrains MPS Convertor

Notice: I hereby declare that I am aware that the information acquired from theses published by Charles University may not be used for commercial purposes or may not be published for educational, scientific or other creative activities as activities of person other than the author.
Title:
Grammar to JetBrains MPS Convertor
Title (in czech):
Konvertor gramatik pro JetBrains MPS
Type:
Diploma thesis
Author:
Bc. Přemysl Vysoký
Supervisor:
RNDr. Pavel Parízek, Ph.D.
Opponent:
RNDr. Jakub Yaghob, Ph.D.
Thesis Id:
177418
Faculty:
Faculty of Mathematics and Physics (MFF)
Department:
Department of Distributed and Dependable Systems (32-KDSS)
Study programm:
Informatics (N1801)
Study branch:
Software Systems (ISS)
Degree granted:
Mgr.
Defence date:
05/09/2016
Defence result:
Excellent
Language:
English
Keywords (in czech):
JetBrains MPS, gramatika, konvertor, konverze, import, programovací jazyk, projekční editor
Keywords:
JetBrains MPS, grammar, convertor, import, programming language, projectional editor
Abstract (in czech):
JetBrains 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.
Abstract:
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.
Documents
Download Document Author Type File size
Download Text of the thesis Bc. Přemysl Vysoký 921 kB
Download Attachment to the thesis Bc. Přemysl Vysoký 5.45 MB
Download Abstract in czech Bc. Přemysl Vysoký 206 kB
Download Abstract in english Bc. Přemysl Vysoký 109 kB
Download Supervisor's review RNDr. Pavel Parízek, Ph.D. 75 kB
Download Opponent's review RNDr. Jakub Yaghob, Ph.D. 68 kB
Download Defence's report RNDr. Jakub Yaghob, Ph.D. 75 kB