Thesis Topic Details

Topic ID:
3411
Title:
Local type inference and side effect analysis for Disciple Core
Supervisor:
Ben Lippmeier
Research Area:
Compiler, Programming Languages, Formal Methods
Associated Staff
Assessor:
Manuel Chakravarty
Topic Details
Status:
Active
Type:
R & D
Programs:
CS CE SE
Group Suitable:
No
Industrial:
No
Pre-requisites:
Experience with Haskell and knowledge of basic type theory
Description:
Disciple [1] is an experimental dialect of the functional language Haskell [2] that extends the type system to track information about side effects, as well as potential aliasing between data structures. This extra information allows the compiler to perform optimising program transformations without restricting how the programmer may use side effecting functions.

The Disciple compiler (DDC) compiles an explicitly typed source language to object code via C or LLVM, but the current lack of type inference means that many tedious type and effect annotations must be written by hand. Example code is at [3]. Everything between [] or [::] or {} is a type annotation.

The goal of this project is to implement a constraint based local type inferencer, that reconstructs these type and effect annotations. Once the basic system works there are several interesting extensions, including adding a type class system, and support for record types or other language features.

DDC itself is written in Haskell, so development will be done in Haskell. The basic structure of DDC is modelled after the Glasgow Haskell Compiler (GHC), and DDC's core language (Disciple Core) is modelled after the one used in GHC. You will become familiar with GHC along the way.

[1] http://disciple.ouroborus.net
[2] http://www.haskell.org
[3] http://code.ouroborus.net/ddc/ddc-stable/demo/Lite/Reverse/Main.dcl
Comments:
Having done COMP3161, COMP3141 or similar counts as "knowledge of basic type theory".

If you haven't formally studied type theory, but are ok with Haskell or Agda, then that's good enough.
Past Student Reports
 
No Reports Available. Contact the supervisor for more information.

Check out all available reports in the CSE Thesis Report Library.

NOTE: only current CSE students can login to view and select reports to download.