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/ |