Featherweight Go implementation in Makam[1].
This implementation is only educational and was used to learn Makam in the process.
Featherweight Go is a minimalist version of Go defined by Griesemer et al. in their paper.[2]
Makam is a metalanguage that eases implementation of languages, aimed at allowing rapid prototyping[3] and experimentation with new programming language research ideas.
Implement the "Featherweight Go" calculus presented in section 3 of Griesemer et al.[2]
The implementation was made as simple as possible. For that purpose, the code is very close to the actual mathematical calculus presented in the paper.[2]
The differences between the code and the calculus arise only when those changes simplify the implementation details.
- Learn Makam
- Show how easy it is to prototype a programming language with Makam
- Have a better understanding of "Featherweight Go"[2]
- Compare this implementation to the paper's accompanying implementation
- Implement FGG (Featherweight Generic Go)
- Implement monomorphization (an ambitious goal)
- Improve parsing
[1] Makam: The Makam metalanguage -- a tool for rapid language prototyping
[2] Featherweight Go Griesemer et al.
[3] How to make your papers run: Executable formal semantics for your language