14 lines
1.1 KiB
Markdown
14 lines
1.1 KiB
Markdown
|
# 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.
|