Philip Guo (Phil Guo, Philip J. Guo, Philip Jia Guo, pgbovine)

Python Compiler Workbench: Using a live coding environment to quickly develop intuitions

When I was a postdoc two years ago (2013–2014), I made a web application to help me develop intuitions about how Python compiles source code into abstract syntax trees (ASTs) and bytecode. Check out the Python Compiler Workbench project on GitHub, and watch this 1.5-minute demo video:

The purpose of this project wasn't to release a piece of polished software (it's very hacky!), but rather to enable me to quickly understand the nuances of the Python compilation process so that I could advance my research. In other words, I built myself a lightweight learning environment targeted at a specific topic.

The process of building this piece of software already helped me develop some amount of expertise in Python compilation, and the experience of using its live coding environment was even more educational. Instead of wading through dense technical documentation to understand corner cases, I could simply edit my source code in the web application and see how the compiled AST and bytecode change in real time. This rapid in-situ feedback was very effective for my own learning, and I think that similar ideas could be used to teach many kinds of computer science topics.

Created: 2016-01-03
Last modified: 2016-01-03
Related pages tagged as software:
Related pages tagged as research: