albireo | ||
executor | ||
src | ||
test/simple | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
Albireo Programming Language
Purpose of this project
For the sake of learning programming language theory, I decide to practice by applying what I knew and implementing them as I learn theories.
The language should be strictly typed and everything is pure. In that context, I design a language where everything is an expression. Side-effects will be handled either by Monads (or Applicative programming) or by using Effect Handlers (so called Algebraic Effects).
Complex types should be implemented, choices are Sub-typing, Row-Polymorphism, Algebraic Datatypes. Higher-Order Types (so called Kind) will also be implemented.
Advanced theory on Graded Types, Substructural Types (Linear or Affine) will be considered for implementation.
Everything is experimental and the current state of the language should reflect my personal experience as well as knowledge on programming language theory, including type theory and semantics. I do not intend to work extensively on compiler technology, although I am originated from learning assembly and binary analysis of programs.