Welcome to an engaging journey into the world of compilers and interpreters! This course is designed to be a beginner-friendly introduction to compilers, where you will gradually learn to develop an interpreter for a simple scripting language.
Course Overview
Throughout this course, you will explore the following topics:
Lexical analysis: Understanding the process of tokenizing source code.
Syntax analysis: Delving into the structure of the language.
Parsing algorithms: Implementing strategies to parse code effectively.
Intermediate Representation (AST): Building Abstract Syntax Trees.
Formal languages and grammars: Learning foundational theories.
Backus-Naur Form (BNF) and syntax diagrams: Notating grammars concisely.
Error detection and handling: Managing and correcting syntax errors.
Code generation: Transforming high-level code into machine-executable form.
Creating your own virtual machine (VM): Designing an environment for running bytecode.
Compilers have long been perceived as a complex topic, often symbolized by "dragons," a notion perpetuated by the famous Dragon Book. Contrary to the myth, this course aims to demystify compilers, with a teaching approach tailored for beginners. Think of it as your first step into the world of compilers for those who have yet to write their own interpreters.
What We Will Create
Project Focus: Over the span of this course, you will develop a compiler for a simple programming language called Pinky. Named after its playful inspiration from Lua and ALGOL W, Pinky will serve as a perfect foundation for understanding key compiler concepts.
The course primarily utilizes Python, promoting a focus on compiler-specific principles while enhancing productivity. We also provide valuable insights into implementing these concepts in C for those interested.
Required Tools and Prerequisites
To get started, ensure you have the following:
A command line interface
A simple text editor
A Python interpreter
These tools are cross-platform, so whether you are on Windows, macOS, or Linux, you can seamlessly follow along. While this course does not require any pre-existing knowledge, familiarity with basic programming concepts such as if-else statements, loops, and functions will greatly aid your understanding.
Gustavo Pezzi is a UK-based computer-science lecturer (Pikuma) and one of the most distinctive teachers working at the intersection of low-level programming and game development. His material is unusual in the modern course market for how deep it goes into the foundations: assembly, computer architecture, classical raycasting / rasterisation algorithms, and the math underneath modern graphics.
His CourseFlix listing reflects that range: courses on 3D Computer Graphics Programming, Raycasting Engine Programming, 2D Game Physics Programming, NES Programming with 6502 Assembly, PS1 Programming with MIPS Assembly & C, Atari 2600 Programming, Compilers, Interpreters and Formal Languages, plus C++ engine programming and Lua scripting. Material is paid and aimed at developers who want to understand systems from the ground up rather than ship CRUD apps.
Watch Online 171 lessons
This is a demo lesson (10:00 remaining)
You can watch up to 10 minutes for free. Subscribe to unlock all 171 lessons in this course and access 10,000+ hours of premium content across all courses.
"The Software Designer Mindset" is a course that teaches all aspects of software architecture and offers practical advice on creating scalable software.
Do you want to take your Django skills to the next level and become that professional back-end developer that companies love to hire?
5 hours 41 minutes 6 seconds 5 / 5
Frequently asked questions
What is Compilers, Interpreters and Formal Languages about?
Welcome to an engaging journey into the world of compilers and interpreters! This course is designed to be a beginner-friendly introduction to compilers, where you will gradually learn to develop an interpreter for a simple scripting…
Who teaches Compilers, Interpreters and Formal Languages?
Compilers, Interpreters and Formal Languages is taught by Gustavo Pezzi. You can find more courses by this instructor on the corresponding source page.
How long is Compilers, Interpreters and Formal Languages?
Compilers, Interpreters and Formal Languages contains 171 lessons with a total runtime of 28 hours 52 minutes. All lessons are available to watch online at your own pace.
Is Compilers, Interpreters and Formal Languages free to watch?
Compilers, Interpreters and Formal Languages is part of CourseFlix's premium catalog. A CourseFlix subscription unlocks the full video player; the course description, table of contents, and preview information are available to everyone.
Where can I watch Compilers, Interpreters and Formal Languages online?
Compilers, Interpreters and Formal Languages is available to watch online on CourseFlix at https://courseflix.net/course/compilers-interpreters-and-formal-languages. The page hosts every lesson with the integrated video player; no download is required.