Gab is a toy language for the purpose of learning about language design and implementations. It is a strong statically typed functional language.
The repository is separated into chapters, implementing increasingly complicated languages (known collectively as Gab). See each chapter's documentation for a description of the language and highlighted points on the implementation.
This project is still an early work in progress. Chapter documentation is lacking for the moment. Many more chapters are to come. The goal is to eventually reach a consistent and total dependently typed language (in the spirit of Coq, Agda), with an IO monad for executing real effects.
We use Haskell to implement our interpreter. You'll need the Stack tool to build each project. Run projects with stack run
.
Of course if does! It stands for "Grant's Awesome Backronym."