The Rational Programmer, An Investigative Method for Programming Language Prag...
summary
Introduces the Rational Programmer: an algorithmic simulation that mutates Type Racket programs to inject type-interface and code-level bugs, producing 1M+ mutants and downsampling to 100k sampled scenarios (≈70% code bugs, 30% interface bugs). It runs on a cluster for weeks, compares natural semantics with blame, transient (rewrite) checks, and erasure semantics, and measures success as converting runtime errors into static type errors. Result: natural+blame gives the largest debugging win (up to ~20% on interface bugs); erasure finds similar numbers of failures but provides poor localization.
AI-written summary · about
chapters (10)
- 0:00PL pragmatics overview
- 4:22Rational programmer method
- 9:20Gradual typing mechanisms
- 18:29Natural semantics vs performance
- 21:00Debugging gradual typing hypothesis
- 26:55Mutation testing scenarios
- 34:45Strategy to algorithm
- 38:42Simulation results
- 42:57Rational programmer rationale
- 47:07Q&A
related talks
43m(Programs), Proofs and Refutations (and Tests and Mutants)
42mSurprise yourself with Property Based Testing
31mPractical TypeProf: Lessons from Analyzing Optcarrot
18mPreview: Verification (Correctness & Debugging)
41mMutation testing in practice
14mFuzzing C++ Compilers via Type-Driven Mutation
43mOmg, how do I write software that isn't a ticking timebomb!?
44mMutation testing: Too good to be true?
