Building a Programming Language

Learn how to design and build a programming language from the ground up with Roberto Ierusalimschy, the creator of Lua programming language
  • Project Based
  • ·
  • 8 weeks
Picture of Roberto Ierusalimschy
Roberto Ierusalimschy
Creator of Lua Programming Language
Cohort
Learn in a structured, classroom environment
No cohorts scheduled. Get notified at launch
or
Solo
Learn solo at your own pace
Trusted by students from
  • meta.svg
  • cloudflare.svg
  • roblox.png
  • google.svg
  • tmeic.svg
  • cisco.png
  • kong.svg
  • tesla.svg
  • brex.png
  • meta.svg
  • cloudflare.svg
  • roblox.png
  • google.svg
  • tmeic.svg
  • cisco.png
  • kong.svg
  • tesla.svg
  • brex.png
  • meta.svg
  • cloudflare.svg
  • roblox.png
  • google.svg
  • tmeic.svg
  • cisco.png
  • kong.svg
  • tesla.svg
  • brex.png
  • meta.svg
  • cloudflare.svg
  • roblox.png
  • google.svg
  • tmeic.svg
  • cisco.png
  • kong.svg
  • tesla.svg
  • brex.png
 
What you'll learn
  • Create your own programming language or DSL
  • Understand Abstract Syntax Trees (ASTs)
  • Understand Stack Machines
  • Understand Parsing Expression Grammar (PEGs)
  • Develop a deeper understanding of how programming languages work
  • including their underlying paradigms
Unlike a traditional course on compiler construction, in this course the class will actually grow a language. Following the agile mantra of "the simplest thing that could possibly work", we'll build a minimal working language from the very beginning, and throughout the course students will enrich this newly created language to make it more complete
Picture of Roberto Ierusalimschy
Roberto Ierusalimschy
Instructors

Teaching Team

Picture of Roberto Ierusalimschy
Roberto Ierusalimschy
  • Creator of Lua
  • ·
  • Distinguished Visitor @ Stanford / Univ. Edinburgh
  • ·
  • Prof @ PUC-Rio
Roberto Ierusalimschy is the creator and leading architect of the Lua programming language, driving its development since its inception in 1993.He is a full professor of Computer Science at PUC-Rio (the Pontifical Catholic University of Rio de Janeiro), where he works with programming-language design and implementation.
Syllabus

Course Outline

Week 1 - Kickoff
  • Understand what the course will cover
  • Understand what is expected of participants in this course
  • Understand how to get the most out of this course
  • Meet your instructor
Week 2 - Introduction to LPeg
  • Repetitions and choices
  • Captures
  • Predicates
  • Grammars
Week 3 - Arithmetic Expressions
  • A very basic interpreter for “numbers”
  • Abstract syntax trees
  • Stack machines
Week 4 - Basic Imperative Programming: Variables, Assignments, Sequences
  • Variables in arithmetic expressions
  • Syntax for statements: sequence, assignment, return
  • Code generation for basic statements
Week 5 - Tricks and Tools
  • A generic pack function with meta-programming
  • Debugging LPeg patterns
  • Locating syntax errors with LPeg
  • Reserved words
Week 6 - Control Structures
  • Conditions and boolean types
  • Implementing control structures with jumps
  • Code generation for if-then-else and while
Week 7 - Arrays
  • Arrays as variables vs. arrays as objects
  • Types and type errors
  • Code generation for array operations
Week 8 - Functions
  • The concept of function (procedures, subroutines, methods)
  • The concept of return address
  • Recursive functions: direct and indirect recursion
  • Activation records
Week 9 - Local Variables and Parameters
  • Scopes
  • Parameter passing: overlapping activation records
  • Cleaning up the stack
Week 10 - Final Project
    Project

    Build Your Own Programming Language

    Project Spec (v1)
    About
    Design and build a programming language from the ground up by extending the class language and optionally modifying its syntax
    Featured Projects
    Student project The Mab Programming LanguageStudent project Ena Programming Language
    Audience

    Who's This Course For?

    Senior software developers and system administrators interested in creating tools or automations powered by their own DSLs

    CS students, PhD candidates, and researchers looking aiming to deepen their understanding of programming language internals and design principles

    Educators in CS who want hands-on material to enrich their teaching of compilers, interpreters, PEGs or language design

    Best suited for experienced programmers - beginners and non-technical participants may find the material too advanced
    Teaching Methods

    How You'll Learn

    Project-Based
    Learn from a concrete project with real-world constraints
    Solo
    Applied in
    • Cohort
    • Solo
    Flipped Learning
    Students review the core materials independently during the week, then join a 1-hour live session with instructors and peers for active engagement
    Applied in
    • Cohort
    Testimonials

    What Our Students Have to Say

    Mark W. Gabby-Li
    Hi, my name is Mark Gabby-Li. I'm a lead programmer at a video game development studio. So making a programming language has been a personal project I've always wanted to do, but when I actually tried doing it, I got a little bogged down in the details. So I saw this Classpert's Building a Program Language class advertised on the lua.org website and I got really excited because Lua happens to be my favorite language of all time and the prof you're learning from, Roberto Ierusalimschy, the creator of Lua, was very, very, compelling. So I signed up, actually, my wife, bought the class for me as a birthday present. And, I went through it and I had a lot of fun. It was a blast! actually. At the end of the class, I feel like I overcame a lot of the issues I've been struggling with. The class was really well structured. The videos are really great. They did a really good job of gradually introducing yourself to the topic, so that was really good. So, all in all, I was very, very happy with the class.
    Papuna Gagnidze
    I'm Papuna Gagnidze, currently a DevOps engineer. I decided to enroll in this course because I always had a curiosity for Lua, but I never had a chance to dive into the language and learn it in depth, even though I have used it to configure different tools in Linux. So I felt this was the perfect opportunity for me to learn from the creator of Lua himself which I think was a once in a lifetime opportunity, and I'm very thankful for that. The great outcome from this course, is that I had to switch roles, technologies, and programming languages frequently in my career, and I never felt an expert in any of the programming languages. Now I understand, the behind the scenes of programming languages and how they work internally, I would say I'm more confident and it's just an amazing feeling. I was also able to create my own programming language, which is the first programming language in Georgian, that has support for Georgian alphabets and keywords. And one of the biggest and arguably the best universities in Georgia is interested in partnering with me to use that language to teach kids as a test project and see how it goes. So, I can only say thank you and it was an amazing experience.
    Christian Sakai
    Hi, my name is Christian Sakai. I am a software engineer in New York City and I work in a private trading firm. I was looking to improve myself and one advice I heard was to learn compilers, then I saw Classpert was offering one with the creator of Lua. So I thought this could be a good an opportunity for me to get an introduction to compilers. I think I learned a lot about parsing and virtual machines. I also learned a lot about Lua. It is very valuable to learn directly from Roberto because you can ask questions that only Roberto can answer about language design and its tradeoffs. Overall, it's a really fun course because you get to see your programming language that you design, come to life. I'm looking forward to learning more from Classpert and from Roberto for their next course.
    Learning Dynamics

    Learn Your Way

    Cohort Solo
    $999
    $149
    Dynamics

    Instructor-Paced

    Learn in a structured classroom environment, with peers and instructors

    Self-Paced

    Learn independently, on your own schedule
    Class Materials
    Lifetime Access
    LMS Features

    Basic

    • Shared Resources
    • Comments
    • Reading Highlights
    • Assignment Solutions

    Basic

    Live Sessions
    Physical Book & Materials
    Certificate
    $200 Completion Bonus
    Project Critique & Demo
    Access to Instructors
    Community Channels & Shared Resources
    Faq

    Frequently Asked Questions

    • Can my employer cover the program cost?
    • Can I get a full refund if I’m not satisfied? How do refunds work?
    • How are certificates issued?
    • Will this cohort run again?
    • Do I get lifetime access to course materials?
    • What does book-centered means?
    • What’s the difference between Cohort and Solo formats?
    Copyright @ 2026 Classpert. All rights reserved.