Masters Project: Adding ADTs, List Comprehension and do-Notation to ClickyEvaluation

Introduction

ClickyEvaluation is a visual interpreter for a Haskell-like language. Expressions can be entered as text and will be displayed as interactive HTML. The user can control the order of evaluation by clicking (thus the name) on subexpressions. The goal of ClickyEvaluation is to help students understand the evaluation of expressions in functional languages, especially with regards to higher order functions like map or fold.

The project is written in PureScript, a Haskell dialect that compiles to JavaScript. Being compiled to JavaScript allows ClickyEvaluation to be used on any platform without the need to install additional software or to connect to a server.

At the moment, ClickyEvaluation supports most of the Haskell language features used in the Paradigms of Programming lecture. Some of these are:

  • Integers, Strings, Lists, and Tuples
  • Operators and functions from the Prelude
  • Function definitions with pattern matching, anonymous functions, and operator section

Unfortunately, other features are still missing:

  • Algebraic data types
  • List-comprehensions
  • do-notation
  • Type system (currently being worked on)

The overall design could also be improved. The used technologies are:

Prerequisites and goals

The project can be done alone or in a group of students. Prerequisites are:

  • Familiarity with Haskell (PdP lecture, monads, Functional Programming lecture or similar resources)
  • Familiarity with git and GitHub
  • Interest in teaching or working with functional programming languages
  • Some interest in or knowledge of parsers (like Parsec)

The projects goal is the implementation of some of the following features (depending on the number of students):

  • Algebraic data structures and their integration into the type checker
  • List comprehensions
  • do-notation
  • Improvement of the web front end

Application

If you are interested, please send an E-Mail to Stefan Kögel until April 15. We will determine a date for the first meeting in the week from April 18 to April 22.

Ansprechpartner

Stefan Kögel

Zusammenfassung

TypeMasters Project
Start

SoSe 16

Locationinternally
Participants

1-4

Einordnung in Modulhandbuch
  • Individualprojekt Software Engineering und Compilerbau
  • Entwicklung konkreter Anwendungen nach ausgewählten Prinzipien des Software Engineering
  • Projekt Softwareengineering 1 & 2