- 27 hours on-demand video content
- Lifetime access
- Live meetup
- Downloadable resources and exercises
- Certificate on completion
- Access on mobile and desktop
- Secure checkout via Credit Card or PayPal
- 14-day money back guarantee
- Last updated January 2026
$89.99
ENROLL NOW FREE PREVIEW
This course is designed to be a beginner-friendly introduction to compilers. As we evolve, we will incrementally put together an interpreter for a very simple scripting language.
We'll cover:
Compilers always had a reputation for being a difficult topic, and their historical association with dragons 🐉 (starting with the Dragon Book) never really help the cause.
We'll try to approach every explanations with beginners in mind. You can think of it as a "first course" on compilers for developers that never wrote an interpreter before.
We'll build together, from the ground up, a compiler for a simple programming language called Pinky. Think of a toy scripting language with a syntax inspired by Lua and ALGOL W.
x := 0
pi := 3.141592
name := 'Pinky'
-------------------------------------
-- Find the max between two numbers
-------------------------------------
func max(a, b)
if a > b then
ret a
end
ret b
end
-------------------------------------
-- Compute the factorial of a number
-------------------------------------
func factorial(n)
if n == 1 then
ret 1
else
ret n * factorial(n - 1)
end
end
-------------------------------------
-- Main function
-------------------------------------
func main()
i := 0
while i <= 10 do
print(i)
i := i + 1
end
for i := 1, 10 do
print(factorial(i))
end
end
main()
Our main host language will be Python. Python allows us to focus our attention on compiler-specific concepts while being extremely productive. Still, I'll try to include some helpful tips on how to implement the ideas we just learned using the C programming language.
All you need is a command-line, a simple code editor, and a Python interpreter. All these tools are cross-platform, so you'll be able to code along on either Windows, macOS, or Linux!
If you never wrote an interpreter before, or even if you did but still feel you have some blind spots in your understanding of how it all works, then this course is definitely for you!
This is a self-contained course with no prerequisites. However, you will probably get the most out of it if you already know the basics of coding (if-else, loops, functions).
Gustavo Pezzi is a university lecturer in London, UK. He has won multiple education awards as a teacher and is also the founder of pikuma.com.
Gustavo teaches fundamentals of computer science and mathematics; his academic path includes institutions such as Pittsburg State University, City University of London, and University of Oxford.




This course is not just a simple tutorial on how to use third-party tools to parse an existing language. We'll build an interpreter for a toy programming language from scratch while exploring the foundations of formal languages & compilers.
We will always try to put things into historical context so you understand why modern compilers work the way they do.
If you want to understand how computers translate high-level languages to instructions that the machine can execute, then buckle up! This is going to be a super cool journey of pure nerd fun!
71% of our students come back for another course
We don't offer discounts on our courses. Ever.
"This course is fantastic! Far superior to my college experience. It's incredibly hands-on, guiding you through building everything from scratch. While the course implementation is in Python, I completed my in Rust. There are no Python specific dependencies, so you can pick your favorite language. (The only exception is the final LLVM bonus lecture, this lecture requires a external dependency, for Rust I end up using the inkwell crate witch had a very similar API, it was quite easy to adapt)"
"this is the best course ive taken so far!"
"Another great course from Gustavo! This is the course to demythify the compiler module from the university, Gustavo has the talent for explaining the compiler jargons, the steps of tokenization, parsing and interpreting. I wish I had this style of course when I was in the university."
"Far reaching and well explained... it finally all makes sense! Gustavo has a way of describing the intent and background that really helps you to grock the content...not just implement without deep understanding. I have previously tried to use a number of compiler books but always lost interest along the way. This course had me to the end."
"I liked the content, the presentation, and the direct way it was spoken."