- 18 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 November 2024
$79.99
ENROLL NOW FREE PREVIEWThis 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!
73% of our students come back for another course
We don't offer discounts on our courses. Ever.
"I always waanted to take some contact with this subject, so I am glad to finally find it."
"I was familiar with this information, so I just skipped the parts that I know. I learned it during creating a VM, simple assembler and game on it for CHIP-8. Nevertheless the parts that I saw was very well explained as always in your courses ^^"
"I love it! I have been searching for an introduction to compilers and interpreters, and I haven't found any college-level teaching like this one."