Automating the Design Recipe
summary
Bingus is a program synthesizer for the HtDP Student languages that parses signature comments and uses check-expects to stop search, generating the HtDP template-based structural recursion automatically. It implements refinements like introduce-lambda, guess-var, guess-const, guess-app, and guess-template, and synthesizes examples such as length and depth in about 2–4 seconds. It integrates into DrRacket, currently suffers from a large primitive search space, and plans include weighted (Dijkstra) search, caching, and delegating numeric/string holes to Rosette for better performance and autograder feedback.
AI-written summary · about
chapters (12)
- 0:00Intro
- 0:20What is HtDP?
- 0:57The template
- 3:02The design recipe
- 5:48Steps 4-6 as a closed loop
- 7:39The Myth program synthesizer
- 8:07How Myth gets really close
- 8:45What's different in Beginning Student?
- 9:58The core algorithm
- 10:51Our refinements
- 15:50Making it faster
- 18:50Making it user-friendly
related talks
10mDesigning a Programming Environment Based on the Program Design Recipe (Lightning Talk)
13mProgramming with a Read-Eval-Synth Loop
22mAutomate your inner scout
21mProgramming by Navigation
16mDigging for Fold: Synthesis-Aided API Discovery for Haskell
07mWeaving Schematics and Code: Interactive Visual Editing for Hardware Description Languages
38mDSLs, Code Generation, and New Domains for Ruby
47mInteractive development with Dotty
