Python Master Classes

with David Beazley
Author of the "Python Essential Reference"
5412 N Clark Street #218
Chicago, IL 60640
Follow dabeazllc on Twitter

Target Audience:

This class is for more experienced programmers who like learning new things and being challenged. Knowledge of Python programming basics is assumed. No background in compilers is required although knowledge of fundamental programming language concepts (e.g., type systems, functions, objects, scoping rules,etc.) is strongly encouraged.

Date: June 24-28, 2013.

Price: $1500

What's Included?

  • A printed copy of the course notes.
  • Breakfast and lunch at local restaurants
  • Snacks
[ Register | More Information |FAQ]

Write a Compiler

[5 days] Come to Chicago in June and melt your brain by writing a compiler for your own programming language! Why? Because it's fun, that's why. In this workshop, participants will be partake in an intense guided coding project where you will create your own programming language, write a compiler for it, and have your compiler emit working code. If you've ever wanted to take a compilers course or know more about the internals of projects such as PyPy, then this is the course for you.

Major topics include:

  • Regular expressions
  • Lexing
  • Parsing and parser generators
  • Syntax directed translation
  • Abstract syntax trees
  • Type systems and type checking.
  • Code generation
  • Optimization

A substantial portion of this course will be spent coding. Lecture slides will be given as necessary to discuss background material before the next coding section.

Are You Crazy?

Writing a compiler in only 5 days? Is it even possible? To be sure, compilers is often regarded as one of the most difficult CS courses that one can take. If you take it at a University, you'll probably get a professor who will take you through the infamous Dragon Book, spend a lot of time doing mathematical proofs (e.g., deriving the LALR(1) parsing algorithm), and make the focus of the course on preparing graduate students for future research in programming languages. This is not that class.


Compiler hackers working on the last stages of code generation

Instead, this is a compilers course aimed at practioners. There will be a lot of coding. However, I think you'll find that writing a compiler is actually a lot of fun. Not only that, you'll improve your existing programming skills and learn a lot about how everything works under the covers. This includes:

  • Better mastery of regular expressions.
  • How to understand grammars (BNFs, Context-free Grammars, etc.)
  • How type systems and static analysis tools work
  • Various details of programming language semantics
  • Computer architecture

In addition, since we're using Python, you'll also gain more experience writing code and using advanced Python programming idioms.

About the Instructor

The workshop is led by David Beazley, author of the Python Essential Reference. Dave is the creator of several past compiler-related projects including SWIG and PLY (Python Lex-Yacc). Dave previously taught a compiler design and implementation course as an assistant professor at the University of Chicago.

Copyright (C) 2009-2013, Dabeaz LLC. All Rights Reserved.