Frege IDE with JetBrains MPS
Frege IDE nad JetBrains MPS
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/101360Identifiers
Study Information System: 178495
Collections
- Kvalifikační práce [11217]
Author
Advisor
Referee
Kratochvíl, Miroslav
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software and Data Engineering
Department
Department of Distributed and Dependable Systems
Date of defense
10. 9. 2018
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Very good
Keywords (Czech)
Frege, Haskell, IDE, MPS, projekční editorKeywords (English)
Frege, Haskell, IDE, MPS, projectional editorFrege je open-source projekt, ktorý prináša populárny funkcionálny programovací jazyk Haskell pre platformu Java. JetBrains MPS je zase open-source nástroj pre vytváranie nových programovacích jazykov a vývojových integrovaných prostredí na báze projekčného editoru. V tejto práci analyzujeme gramatiku pre jazyk Frege a popisujeme postup vývoja integrovaného prostredia postaveného nad nástrojom JetBrains MPS pre uľahčenie vývojárom s písaním kódu vo Frege. Naše vývojové prostredie zahŕňa intuitívny editor pre editáciu syntaxe v jazyku Frege, poskytuje jednoduchú typovú kontrolu a obsahuje generátory pre textový výstup zadaného programu. Cieľom nášho nástroju je jeho užívateľská prívetivosť. Táto práca v závere taktiež porovnáva projekčné editory oproti bežným vývojovým prostrediam založených na editácii textu, ako je napríklad Eclipse, a skúma, či projekčné editory poskytujú akúkoľvek výhodu pri písaní kódu vo funkcionálnych programovacích jazykoch.
Frege is an open-source project which brings the popular functional programming language Haskell to the Java ecosystem. JetBrains MPS is an open-source language workbench which allows users to design a new language and build an integrated development environment with a projectional (structured) editor for the created language. In this work we analyzed Frege grammar and created an IDE based on MPS that assists developers with writing code in the Frege language. Our environment includes a set of intuitive editors for editing Frege syntax, provides a simple type checking and implements code generators for the Frege language. Aim of the Frege IDE is its usability. Additionally, the thesis compares projectional editors with the more common plain-text IDEs, such as Eclipse, and evaluates whether they offer any advantage for editing purely functional programming languages.