Eisfunke

Thoughts on Computer Science, Politics and Philosophy

My Bachelor Thesis

Date: 2020-07-23 Tags: Personal, Computer Science, Programming Languages, Haskell, Functional Programming, Type Theory, Dependent Types, Lambda Calculus, Algebraic Modeling

Prev To Discussion Next

I recently turned in my bachelor thesis. I don’t have the results yet, but still, that’s a lot of pressure gone now. I hope that I’ll be able to use the free time until my first master semester starts to get some of my personal projects done.

The snowflake from the title page of my bachelor thesis. It is generated using a lindenmayer system fractal, which is a context-free grammar. That somewhat fits the topic, but it’s mostly pretty and I like both snowflakes and fractals. 1

The thesis is titled “Design and Algebraic Implementation of a Functional Programming Language”. I introduce a theoretical foundation mainly consisting of lambda calculus and algebraic modeling and design and implement (in Haskell) a small programming language, called Lightfold. Lightfold is purely functional and has a dependent type system, which allows for safer programs because types are computable and can depend on values. I might write blog articles about some of the topics covered in the future if I get around to it.

I plan to extend Lightfold in my free time in the future, maybe even into a fully usable general-purpose language in the long-term. I have collected a lot of ideas that could be incorporated into a programming language while writing and look forward to trying that out (after getting some rest from the topic ☺️).

As I’m a firm believer in free and open source software and in open-access science, both the thesis and the implementation of Lightfold are freely available, usable and adaptable under open licenses (not that I anticipate a lot of interest in that availability 😀).

View PDF Document Source Lightfold Source

If you have any ideas, comments or questions head on over to the respective source repositories or contact me directly.


  1. See the code and more pretty snowflakes at the repo.↩︎

Prev To Discussion Next