Building a Parser from scratch
Learn to build a recursive descent parser for programming languages. Understand parsing techniques and language structure. Practical implementation skills.
Course Content
Building a Parser from scratch is an intermediate-level Udemy course taught by Dmitry Soshnikov. It runs 2h 30m, is taught in English, and includes a certificate of completion. Learners rate it 4.8 out of 5 from 247 reviews, with 1,073 students enrolled. It is a paid course, first published December 2020.
Dive into the world of compiler design and programming language implementation with our practical course on building a parser from scratch! This hands-on class focuses on recursive descent parsing, a widely used technique in many popular programming languages like Java and JavaScript.
Learn the fundamentals of parsing theory and gain full control over the parsing process by implementing a manual parser. Unlike automated parsing algorithms, this approach allows you to handle complex language constructs and gain a deep understanding of how parsers work internally. Demystify the internal structures of a compiler and transform parsing into an engaging engineering challenge.
What you'll learn:
- Recursive Descent Parsing: Master this powerful parsing technique used in production programming languages.
- Tokenizer: Understand how tokenizers work and how they interact with the parser module.
- Abstract Syntax Trees (AST): Learn about different AST formats and how to represent program structures.
- Lookahead & Predictive Parsing: Explore these techniques for efficient parsing.
- Building a Full Parser: Construct a parser capable of handling a complete programming language, similar to Java or JavaScript.
- Compiler & Interpreter Fundamentals: Gain a solid foundation for understanding compilers, interpreters, and source code transformation tools.
Who is this course for?
This course is ideal for curious engineers seeking to develop skills in building complex systems and gain transferable knowledge applicable to various software development domains. It's particularly relevant for those interested in compilers, interpreters, and source code analysis.
Prerequisites:
A basic understanding of data structures (trees, lists), algorithms (traversal), and regular expressions is required.
Implementation Language:
We utilize JavaScript – a versatile language well-suited for this project due to its multi-paradigm structure (functional, class-based, and prototype-based OOP). While JavaScript is used for implementation, the concepts are easily transferable to other languages. We emphasize understanding and implementing each detail, not just copying code. Full source code is provided in video lectures.
What makes this course unique?
- Concise & Focused Lectures: Each lecture is self-contained and directly addresses the topic.
- Animated Presentations & Live Coding: Visual aids and live coding sessions enhance understanding and demonstrate object structure connections.
- End-to-End Projects & Assignments: Follow the development of the parser from scratch with practical assignments.
Course Curriculum:
- Part 1: Basic Expressions & Tokenizer: Numbers, Strings, and building Tokenizer modules with regular expressions.
- Part 2: Program Structure: Statements, statement lists, blocks, recursive production rules, and different AST formats.
- Part 3: Control Flow & Functions: Variables, assignment, operator precedence, function abstraction, If-statements, and loops.
- Part 4: Object-Oriented Programming: Classes, objects, property and array access, generic function and method calls, and building the final executable parser.
Need a web app built? Hire the team behind TutorialSearch.io
We ship fast, production-grade full-stack apps (Next.js, React, edge infra) — the same stack that powers this site.