mt icon indicating copy to clipboard operation
mt copied to clipboard

Master thesis on developing a static type checker for Erlang

etc

Erlang Type Checker

Basics

# Installation
git clone https://github.com/nachivpn/mt.git
cd mt/etc/ && rebar3 escriptize

# Simple usage evaluation example
./etc hello.erl

# Partial evaluation + Type Inference example
./etc +pe hello_pe.erl

# To see the result of code generated by partial evaluation 
./etc +pe -P hello_pe.erl #produces hello_pe.P file

# (only) partial evaluation example
./etc +pe +noti -P hello_pe.erl

Documentation

Currently there's very little documetation on the source code and implementation details. However, the thesis work has been documented closely at multiple stages. If you're curious, check out the reports section: https://github.com/nachivpn/mt/tree/master/reports

Disclaimer

This project is the result of a master thesis at Chalmers University. The implementation is a prototype to demonstrate the scientific ideas and has not been tested thouroughly. The type checker supports a large part of the language, but the partial evaluator doesn't and may break easily. It is not at all production ready!