Skip to content

Latest commit

 

History

History
13 lines (8 loc) · 1.38 KB

README.md

File metadata and controls

13 lines (8 loc) · 1.38 KB

Writing an Interpreter and Compiler in Go

Welcome to my project repository! This repository documents my journey through "Writing an Interpreter in Go" and "Writing a Compiler in Go" by Thorsten Ball. Through these projects, I've embarked on a comprehensive exploration of building interpreters, compilers, and virtual machines from scratch using the Go programming language.

Project Overview

This repository encompasses the entire process outlined in both books, from laying the foundation for interpreters and compilers to implementing advanced features such as code evaluation, optimization, and virtual machines. With a focus on practical application, I've gained a deep understanding of programming language theory and honed my Go programming skills along the way.

Key Achievements

  • Interpreter Implementation: I've successfully implemented the entire interpreter as outlined in "Writing an Interpreter in Go," covering lexical analysis, parsing, and executing code.
  • Compiler Implementation: Building on the knowledge gained, I completed the compiler for the Monkey programming language as outlined in "Writing a Compiler in Go," transforming Monkey code into bytecode.
  • Virtual Machine Development: Additionally, I've implemented a virtual machine capable of executing the bytecode generated by the compiler, completing the end-to-end process of compiling and running Monkey code.