Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
Frege IDE with JetBrains MPS
Thesis title in Czech: Frege IDE nad JetBrains MPS
Thesis title in English: Frege IDE with JetBrains MPS
Key words: Frege, Haskell, IDE, MPS, projekční editor
English key words: Frege, Haskell, IDE, MPS, projectional editor
Academic year of topic announcement: 2015/2016
Thesis type: diploma thesis
Thesis language: angličtina
Department: Department of Distributed and Dependable Systems (32-KDSS)
Supervisor: doc. RNDr. Pavel Parízek, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 17.05.2016
Date of assignment: 01.06.2016
Confirmed by Study dept. on: 28.06.2016
Date and time of defence: 10.09.2018 00:00
Date of electronic submission:19.07.2018
Date of submission of printed version:20.07.2018
Date of proceeded defence: 10.09.2018
Opponents: RNDr. Miroslav Kratochvíl, Ph.D.
 
 
 
Guidelines
Frege is an open-source project that aims to bring Haskell to the Java ecosystem.
Haskell is a purely functional programming language with strong typing and advanced DSL capabilities.
This practical thesis should focus on building typical IDE infrastructure to assist developers when editing, testing and debugging programs in Frege - this includes support for code completion, error checking, static code analysis, and refactoring.
The IDE will be implemented with JetBrains MPS - an open-source language workbench built around a projectional (structured) editor.

In order to develop a fully-functional IDE, a candidate should do the following:
1) describe Frege syntax using the MPS structure language
2) create a set of intuitive editors for editing the Frege syntax
3) define type-system rules that would identify type errors in the editor
4) implement code generators for Frege

Additional goals of the thesis include analysis of the possible synergies between a projectional editor and a purely functional programming language, and evaluating whether and why projectional editing offers more convenience for editing purely functional languages compared to plain-text editors.
References
1. The Frege project, https://github.com/Frege/frege
2. The Haskell language, https://www.haskell.org/
3. JetBrains MPS, http://www.jetbrains.com/mps/
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html