Skip to content

vkandola/go-go-gadget

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Go Gadget!

alt text

The 'Gadget' interpreter language, implemented in Go, using the Writing An Interpreter In Go book. This language is based off the Monkey interpreter language described in the book, and will be implemented as I progress through the book.

Why Go?:

  • Because I'm taking a course in distributed systems next term (CPSC 416) and I know zilch about Go.
  • But really, it's because you Gotta Go Fast! (haha, sorry...).

Disclaimer:

  • The book isn't an introduction to Go. To supplement this, I make use of The Go Programming language and various online resources. I might push some relevant notes to my personal site under notes.

Plans to support some cool features (TBA):

  • All of the Monkey language features (as I progress through the book).
  • Support for some hash based data structures and B/B+ trees.
  • Support for binary, hex, float/decimal literals.
  • UTF/Emoji support (currently pure ASCII).

Notes:

  • I (and the book) make use of .envrc files to properly set enviroment variables. This is no longer needed as the Makefile should call scripts to properly set things. However, you'll need direnv, or equivalent for your distribution if you aren't running the Makefile.
  • I (and the book) use Go 1.7, YMMV with lower versions.
  • The interpreter uses Pratt parsing, described in the 1973 paper by Vince Vaughan.

Running the Makefile

About

The 'Gadget' interpreter language, implemented in Go.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published