Creating a programming language

Go Time: Golang, Software Engineering ·

Thorsten Ball joined the show to talk about creating a programming language, writing an interpreter, why he wrote the book “Writing An Interpreter in Go”, how writing a language/interpreter will help you better understand other programming languages, building a computer from Nand to Tetris, and his thoughts on imposter syndrome.

Join the discussion (https://changelog.zulipchat.com/#narrow/stream/455709-gotime) Changelog++ (https://changelog.com/++) members support our work, get closer to the metal, and make the ads disappear. Join today! Sponsors:

• Linode (https://linode.com/changelog) – Our cloud server of choice. Get one of the fastest, most efficient SSD cloud servers for only $5/mo. Use the code changelog2017 to get 4 months free!

• Fastly (https://www.fastly.com/?utm_source=changelog&utm_medium=podcast&utm_campaign=changelog-sponsorship) – Our bandwidth partner. Fastly powers fast, secure, and scalable digital experiences. Move beyond your content delivery network to their powerful edge cloud platform.

• Backtrace (https://www.backtrace.io/gotime) – Reduce your time to resolution. Go beyond stacktraces and logs. Get to the root cause quickly with deep application introspection at your fingertips.

• StackImpact (https://stackimpact.com/gotime) – StackImpact is all about profiling and monitoring for Go. Laser focus on the performance of your Go applications.

Featuring:

• Thorsten Ball – Website (http://thorstenball.com), GitHub (https://github.com/mrnugget), X (https://x.com/thorstenball) • Erik St. Martin – GitHub (https://github.com/erikstmartin), X (https://x.com/erikstmartin) • Carlisia Thompson – GitHub (https://github.com/carlisia), LinkedIn (https://www.linkedin.com/in/carlisia), X (https://x.com/carlisia) • Brian Ketelsen – GitHub (https://github.com/bketelsen), X (https://x.com/bketelsen)

Show Notes:

• Writing An Interpreter In Go (https://interpreterbook.com/) - In this book we will create a programming language together. We’ll start with 0 lines of code and end up with a fully working interpreter for the Monkey* programming language. Step by step. From tokens to output. All code shown and included. Fully tested.

• The Elements of Computing Systems: Building a Modern Computer from First Principles (https://www.amazon.com/Elements-Computing-Systems-Building-Principles/dp/0262640686/)

• From NAND to Tetris (http://www.nand2tetris.org/)

• Go Advent 2016 blog series (https://blog.gopheracademy.com/series/advent-2016/)

• Damian Gryski (https://github.com/dgryski) is now a /r/golang moderator (https://www.reddit.com/r/golang/comments/5hx5ba/hello_gophers/)

• Take the 2016 Go User Survey (https://blog.golang.org/survey2016) — the goal is to create the best language for developing simple, reliable, scalable software. We are asking you to help by participating in a survey and if applicable, a company questionnaire.

• From Coursera — Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course) (https://www.coursera.org/learn/build-a-computer)

• Ken Thompson (https://users.ece.cmu.edu/%7Eganger/712.fall02/papers/p761-thompson.pdf) - Reflections on Trusting Trust

Something missing or broken? PRs welcome! (https://github.com/thechangelog/show-notes/blob/master/gotime/go-time-28.md)