Programming Language with Novel Type Inferences

Implementations of state-of-the-art type inference algorithms with extensive, robust tooling

About Us

Supervisor

Professor Oliviera Bruno

Students

Introduction

Background

Type inference is a crucial aspect of programming language design, enabling the automatic deduction of data types in a program. However, there exists a significant research gap between the theoretical design of type inference algorithms and their realistic implementations within programming languages. Most papers provide a barebones implementation of the algorithm but lack essential features such as a REPL, parser, or tools to integrate the algorithm within existing languages.

This project aims to implement state-of-the-art type inference algorithms, focusing on advanced techniques like bidirectional typechecking for higher-rank polymorphism and worklist-based approaches. These algorithms are essential for enhancing the expressiveness and reliability of programming languages, allowing developers to write more concise and less error-prone code. Additionally, this project will develop useful tools around these algorithms allowing developers to interact with and further improve them.

Objectives