Skip to content

A prototype of a pure imperative programming language with uniqueness typing

Notifications You must be signed in to change notification settings

mpartel/uniic-proto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a prototype of a programming language I designed for my master's thesis.

It is a limited imperative language, with variable reassignment, while loops, that sort of stuff, but the twist is, it gets compiled to a purely functional language. Its aim was to study to what extent one could make functional programming "look imperative", and on the other hand, which desireable imperative patterns would not be nicely expressible in a purely functional setting.

Uniqueness typing, inspired by Clean, was chosen for modeling I/O and mutable data structures instead of monads because it seemed to fit the imperative style better. It was extended with a simple borrowing system that allows passing unique values as parameters and still using them afterwards.

About

A prototype of a pure imperative programming language with uniqueness typing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages