Grammar to JetBrains MPS Convertor
Název práce v češtině: | Konvertor gramatik pro JetBrains MPS |
---|---|
Název v anglickém jazyce: | Grammar to JetBrains MPS Convertor |
Klíčová slova: | JetBrains MPS, gramatika, konvertor, konverze, import, programovací jazyk, projekční editor |
Klíčová slova anglicky: | JetBrains MPS, grammar, convertor, import, programming language, projectional editor |
Akademický rok vypsání: | 2015/2016 |
Typ práce: | diplomová práce |
Jazyk práce: | angličtina |
Ústav: | Katedra distribuovaných a spolehlivých systémů (32-KDSS) |
Vedoucí / školitel: | doc. RNDr. Pavel Parízek, Ph.D. |
Řešitel: | skrytý - zadáno a potvrzeno stud. odd. |
Datum přihlášení: | 12.04.2016 |
Datum zadání: | 12.04.2016 |
Datum potvrzení stud. oddělením: | 03.05.2016 |
Datum a čas obhajoby: | 05.09.2016 11:30 |
Datum odevzdání elektronické podoby: | 26.07.2016 |
Datum odevzdání tištěné podoby: | 28.07.2016 |
Datum proběhlé obhajoby: | 05.09.2016 |
Oponenti: | RNDr. Jakub Yaghob, Ph.D. |
Zásady pro vypracování |
JetBrains MPS is an open-source language workbench focusing on domain-specific languages (DSL). Unlike many competing language workbenches and in contrast to the industry prevalent approach, MPS uses a projectional (structured) editor for code. The developer directly manipulates the program in its tree form (AST). The code is always represented as AST, including the persistence format, which avoids the need for parsing text.
While the majority of programming languages in the industry are currently defined using grammars, languages in MPS are codified using principles of object-oriented programming. Since MPS does not rely on parsing, but instead uses a projectional editor and layered code generation, existing languages that should be made editable in MPS need to be re-implemented using the MPS language definition facilities. The up-front cost of manually re-defining existing languages in order to use them in MPS is a major obstacle that turns away many projects that could potentially benefit from the MPS platform. This thesis should elaborate on the possibility of automating the process of creating MPS language definition from existing grammar definitions. This would simplify and speed up the process of migrating existing languages (both general purpose and domain-specific) to the MPS platform, and thus encourage MPS adoption both between researchers and in the industry. Specific goals: - Design and implement the grammar to MPS convertor, possibly building on top of existing prototypes. - The three essential aspects of language definition in MPS should be covered by the tool - abstract syntax (structure), concrete syntax (editor) and text generation. - Demonstrate the capabilities of the translator by translating a single general-purpose language and a few DSLs. Expected outputs: - A working implementation of the grammar to MPS convertor. - Examples of automatically converted languages. - Analysis of the principal issues, both solved and unsolved, with respect to automated conversion of grammar definitions. The outputs will be distributed under the open-source Apache 2 license and available for free download. All outputs including documentation will be in English. |
Seznam odborné literatury |
1. The JetBrains MPS project. http://www.jetbrains.com/mps/
2. Fast Track to MPS (an MPS tutorial). https://confluence.jetbrains.com/display/MPSD32/Fast+Track+to+MPS 3. MPS Reference. https://confluence.jetbrains.com/display/MPSD30/MPS+User's+Guide 4. The MPS academic publications. http://jetbrains.com/mps/publications 5. BNF (Backus-Naur Form) for grammar definition. https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form 6. PE4MPS: a prototype implementation of a grammar to MPS convertor. https://github.com/mar9000/pe4mps 7. Antlr_MPS: a prototype of Antlr grammar to MPS convertor. https://github.com/CampagneLaboratory/ANTRL_MPS 8. Fabien Campagne. The MPS Language Workbench: Volume I. CreateSpace Independent Publishing Platform, 2014 9. Fabien Campagne. The MPS Language Workbench: Volume II. https://play.google.com/store/books/details?id=NPwyBwAAQBAJ 10. Terence Parr. The Definitive ANTLR 4 Reference. Pragmatic Bookshelf, 2013 |