The Hopper language- A Haskell-like language on the Erlang VM
Abstract
The following report aims to give insight into the design and implementation of a
statically typed functional language for the Erlang virtual machine, discussing how
such an implementation may be approached and whether it appears to be feasible.
The primary goal of the project was to design a grammar specification and implement
a compiler for such a language.
Over the course of the project a prototype language and a compiler for that
language were developed. The project followed an iterative development process
with Scrum as a basis. Notable modules of the compiler are the parser generated
from a BNF grammar, the type checker implementing a Hindley-Milner type system
and the code generator generating Core Erlang source code.
The result of the project is Hopper, a basic functional programming language
with an accompanying compiler, featuring polymorphic algebraic data types (ADTs),
pattern matching and lambdas. The language also has a module system and some
integration with Erlang.
In conclusion, the project was largely successful in its mission to create a typed
functional language on the Erlang VM and has the potential to be developed further.
Degree
Student essay
Collections
View/ Open
Date
2015-06-25Author
Hughes, William
Jarmar, Jacob
Larsson, Johan
Lindbom, David
Norgren, Björn
Wikström Schützer, Johan
Language
eng