A sample programming language to implement what I have learned from theory.
Go to file
2024-04-14 23:30:16 +07:00
albireo re-organize project 2024-03-29 16:20:34 +07:00
docs [docs] add fine-grain call-by-value 2024-04-14 23:30:16 +07:00
executor add notes for executor 2024-03-29 17:05:59 +07:00
src re-organize project 2024-03-29 16:20:34 +07:00
test/simple re-organize project 2024-03-29 16:20:34 +07:00
.gitignore starting project Albireo 2024-02-16 02:07:52 +07:00
Cargo.lock re-organize project 2024-03-29 16:20:34 +07:00
Cargo.toml re-organize project 2024-03-29 16:20:34 +07:00
README.md starting project Albireo 2024-02-16 02:07:52 +07:00

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.