Jeff Shrager has successfully executed Herbert Simon’s 1961 Heuristic Compiler, marking the first time this pioneering AI-assisted coding tool has run in roughly 65 years. The project, titled "Executable Archaeology," demonstrates that Simon’s original IPL-V code—designed to write other IPL-V programs—functions exactly as described in his 1963 Journal of the ACM paper. By transcribing the original punch-card deck and adapting it for a modern Common Lisp interpreter, Shrager proved that the core logic of means-end analysis can still generate valid code. This isn’t just a museum piece; it’s a working proof-of-concept for automated programming that predates modern LLMs by six decades.

The Architecture of Simon’s 1961 Experiment

Simon’s Heuristic Compiler operates on three distinct components: the State Description Compiler, the Functional Description Compiler, and the General Compiler. The system treats programming as a problem-solving task akin to the General Problem Solver (GPS), using means-end analysis to bridge the gap between a current state and a desired goal. For instance, when given the phrase "INSERT AT END OF VALUE LIST," the compiler searches its internal database for similar routines, adapts their code by shifting arguments into working storage, and outputs the specific IPL-V instruction sequence. The revival confirms that the compiler produces character-for-character matches to the code printed in Simon’s original papers, such as "J13 J52 11W2 11W0 J10 11W1 J65 J32 0."

Bridging the Gap with AI Assistance

Shrager’s guide explicitly notes that large parts of the documentation were created using AI assistance, with the caveat "Doveryai, No Proveryai!" This meta-layer adds a fascinating dimension to the project: modern AI is helping to explain and revive the earliest attempts at AI-assisted coding. The transcription process involved converting about 4,470 punch cards from the Herbert A. Simon Papers at Carnegie Mellon University Archives. While the English-language front end remains unrun, the core compilers were successfully reconstructed, requiring only minor fixes to missing print routines and interpreter functions. The project highlights how legacy codebases can be resurrected not just by manual reverse-engineering, but by leveraging contemporary tools to parse and document historical technical debt.

Key Takeaways

  • Simon’s 1961 Heuristic Compiler is a working IPL-V program that writes other IPL-V programs, predating modern LLMs by over 60 years.
  • The revival was achieved by transcribing punch cards from the Carnegie Mellon University Archives and running them on a custom Common Lisp IPL-V interpreter.
  • The compiler successfully reproduces code outputs character-for-character from Simon’s 1963 paper, validating the original means-end analysis logic.
  • Jeff Shrager’s documentation for the project was partially generated using modern AI, creating a recursive loop of AI assisting the revival of early AI.

The Bottom Line

This project is a powerful reminder that the fundamental challenges of automated programming—state representation, goal decomposition, and operator selection—were solved conceptually in 1961. Modern AI hasn’t reinvented the wheel; it’s just spinning it faster with more compute. For developers, Simon’s work offers a pristine, debugged blueprint of code generation that is worth studying before you trust your next Copilot suggestion.