Skip to main content
CF

Crusty Interpreter

33h 53m 10s
English
Paid

Course Description: This course challenges you to implement an interpreter for an unfamiliar programming language (Lox) using a potentially new programming language (Rust), inspired by a book originally authored in a familiar language (Java).

General Overview

In university, you might have encountered assignments like "design a processor's instruction set," "build a Unix shell from scratch," or "solve the Dirac equation" on the first day. While some students shy away, others embrace the challenge. This course belongs to that challenging category.

You will dive into Robert Nystrom's "Crafting Interpreters" book and embark on implementing a lexer and a recursive descent parser. This will likely be your first experience with Rust, with challenges only intensifying thereafter.

Target Audience

This course is intended for seasoned developers eager to elevate their skills through intensive project work using a modern programming language. You might relate to one of these profiles:

  • You've written some Rust and wish to move beyond basic examples with a complex, multi-component project.
  • You have no Rust experience but are curious about it, confident in your compiler/interpreter skills, and ready for a new challenge.
  • You lack both Rust and interpreter experience, but you have a free week and the willingness to face a profound challenge.

The course is akin to a marathon: you may question your decision mid-way, but completion brings immense satisfaction.

Learning Format

This is a week-long project-intensive course. Each morning begins with discussions on programming language design and Rust implementation. Most of the day is devoted to independent coding, punctuated by brief problem-solving and experience-sharing sessions.

Prerequisites

Participants should be comfortable with fundamental programming concepts such as expressions, operators, variables, control flow, functions, and classes. Experience with interpreter implementation is advantageous but not essential. While prior Rust knowledge is unnecessary, expect a steep learning curve with initial trial and error.

Curriculum

The goal is to navigate the first ten chapters of "Crafting Interpreters," developing an AST-walking interpreter for Lox. You'll explore key programming language implementation concepts:

  • Scanning and lexical analysis
  • Recursive descent parsing
  • Program representation and AST construction
  • Program execution
  • Variables, scope, and environment
  • Control structures like if, while, and for loops
  • Functions, including higher-order functions and closures

Simultaneously, you'll delve into essential Rust development aspects:

  • Project organization in multiple modules
  • String handling
  • Error handling with Option/Result
  • Testing
  • Algebraic data types (struct, enum)
  • Recursive structures (trees, lists)
  • Pattern matching
  • Ownership and borrowing rules
  • Interior mutability

The book provides necessary code snippets in Java, challenging you to translate and implement concepts in Rust. This translation makes course discussions particularly engaging and insightful.

About the Author: David Beazley

David Beazley thumbnail

David Beazley is one of the most authoritative independent voices on the Python language, author of the Python Cookbook (O'Reilly), Python Distilled, and the long-running PyCon tutorial series that has shaped how serious Python engineers think about the language. He has been teaching Python continuously since the late 1990s.

His CourseFlix listing carries four David Beazley courses: Advanced Programming with Python, the Crusty Interpreter (a Rust implementation exercise), Write a Compiler, and the Rafting Trip retreat-style intensive. The teaching style is unusually rigorous about the language and the foundational CS topics underneath it — David's courses are taught at the level of someone who has implemented Python interpreters and language tooling for decades.

Material is paid and aimed at experienced Python developers ready to study the language at depth. For broader content, see CourseFlix's Python category page.

Watch Online 11 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 11 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: 001 Day 1 Morning
All Course Lessons (11)
#Lesson TitleDurationAccess
1
001 Day 1 Morning Demo
03:31:34
2
002 Day 1 Afternoon
03:23:52
3
003 Day 2 Morning
01:27:36
4
004 Day 2 Late-Morning
01:51:41
5
005 Day 2 Afternoon
03:21:43
6
006 Day 3 Morning
03:34:18
7
007 Day 3 Afternoon
03:25:26
8
008 Day 4 Morning
03:17:33
9
009 Day 4 Afternoon
03:34:20
10
010 Day 5 Morning
03:39:56
11
011 Day 5 Afternoon
02:45:11
Unlock unlimited learning

Get instant access to all 10 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

  • Learn Rust in a Month of Lunches thumbnailUpdated 11mo ago

    Learn Rust in a Month of Lunches

    By: Dave MacLeod
    "Learn Rust in a Month of Lunches" - just one month and one hour a day to start writing code in Rust!
    5 / 5
  • Rust Developer Bootcamp thumbnailClassic

    Rust Developer Bootcamp

    By: Let's Get Rusty
    Who is this Bootcamp for? Experienced Developers trying to switch to Rust. Learn the language of the future.
    9 hours 50 minutes 20 seconds 5 / 5
  • Let’s Rust thumbnailUpdated 5mo ago

    Let’s Rust

    By: Pau Labarta Bajo
    Take the Let's Rust course and develop an ML service in Rust. Train the model, create a REST API for predictions, and deploy the service in Kubernetes.
    12 hours 40 minutes 9 seconds

Frequently asked questions

What is Crusty Interpreter about?
Course Description: This course challenges you to implement an interpreter for an unfamiliar programming language (Lox) using a potentially new programming language (Rust), inspired by a book originally authored in a familiar language…
Who teaches this course?
It is taught by David Beazley. You can find more courses by this instructor on the corresponding source page.
How long is the course?
It contains 11 lessons with a total runtime of 33 hours 53 minutes. Every lesson is available to watch online at your own pace.
Is it free to watch?
It is part of CourseFlix's premium catalog. A subscription unlocks the full video player; the course description, table of contents, and preview information are available to everyone.
Where can I watch it online?
The course is available to watch online on CourseFlix at https://courseflix.net/course/crusty-interpreter. The page hosts every lesson with the integrated video player; no download is required.