Skip to content

labandalambda/fg-makam

Repository files navigation

fg-makam

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.

Idea

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.

Goals

Future work

  • Implement FGG (Featherweight Generic Go)
  • Implement monomorphization (an ambitious goal)
  • Improve parsing

References

[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

About

Implementación de Featherweight Go en makam

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages