nupythondebugger
overview
three-part cs 211 project building a debugger for nupython — northwestern's teaching language. you write the pieces that let you step through code, inspect memory, and see what's happening at runtime.
scope
- project 01: debugger core and interactive commands
- project 02: dynamic ram module in c
- project 03: execution engine over parsed program structures
technical highlights
- interactive command loop (`r`, `s`, `w`, `ss`, `sm`, `p`, and breakpoint operations) with explicit loaded/running/completed states
- deterministic stepping semantics and breakpoint-aware control flow
- sorted variable map indexing and binary-search-based reads/writes in the ram layer
- copy-on-read value handling and capacity-doubling memory growth strategy
- statement execution support for assignment, function call, and pass constructs
- binary expression evaluation (+, -, *, /, %, **) with runtime guardrails
- error handling for invalid variables, semantic failures, and divide-by-zero cases
outcome
by the end you have a full loop: parse the program, run it, and poke at it from a debugger prompt. commands map directly to what's in memory and which line you're on.
code availability
northwestern course policy does not allow public distribution of class project code during or after the course term.