How your Python program behaves: a story on how to build a program slicer
summary
A Python program slicer gets built as a sequence of prototypes: an editor plugin prototype that highlights dependent lines, a quick name-tracking slices approach that works for small examples but yields false positives and cannot slice across methods or classes, and a plan to implement control-flow graph + dataflow analysis using compiler-style graph libraries (LLVM considered, SSA discussed). The tool sometimes helps immediately, currently supports only Python and one editor, and requires more CFG/IR work before it becomes reliable.
AI-written summary · about
chapters (28)
- 0:00Introduction
- 0:33About me
- 1:02About this talk
- 1:30Educational projects
- 1:43The takeaways
- 2:18Study topic
- 2:43The tricky part
- 3:06The study topic
- 3:51The book
- 4:03Motivation
- 6:09Highlighting variables
- 7:20Build 2 for yourself
- 7:59Homework
- 8:37Unknown problem space
- 9:46Program Slice Demo
- 10:29Control Flow Graph
- 11:14Improved Flow Graph
- 12:19No Data Dependency Analysis
- 12:34Only works with Python
- 12:54Learning about graphs
- 13:54Using a library
- 15:21Measuring progress
- 15:40Diary
- 16:01Rubber Duck
- 17:45Future plans
- 18:08Language independent
- 19:00Redhead Brisbane
- 19:22QA
related talks
22mDecoding: programming beyond text files
24mPython for Humans, Designing Python Code Like a User Interface
31mReal python, made of blocks
27mAn Executable Semantics for Faster Development of Optimizing Python Compilers
27mCPython's Compilation Pipeline
28mSimplifying Python Code through the Lens of Functional Programming
01h 11mKeynote: How to Write a Popular Python Library by Accident
54mWhy Python Is So Slow
