HN
Today

Executable Archaeology: Reanimating the Heuristic Compiler (1961) and KBEmacs (1984)

Step back in time to debug the future: this paper masterfully reanimates two foundational AI programming systems from the 60s and 80s, revealing their explicit theories of programming. It's a fascinating blend of computational history, AI archaeology, and meta-programming, perfect for HN's intellectual curiosity.

3
Score
0
Comments
#22
Highest Rank
6h
on Front Page
First Seen
Oct 28, 5:00 PM
Last Seen
Oct 28, 10:00 PM
Rank Over Time
242527222728

The Lowdown

This paper introduces 'Executable Archaeology,' a method for studying historical computational systems by running their original code, and applies it to two pioneering AI programs that modeled programming.

  • Heuristic Compiler (1961): Developed by Herbert Simon, this program modeled programming as a problem-solving task, utilizing means-ends analysis, similar to the General Problem Solver.
  • KBEmacs (1984): A prototype intelligent programming assistant from MIT's Programmer's Apprentice project, it posited that expert programmers combine familiar patterns or 'cliches' through a stylized English command language.
  • The 'reanimation' process successfully reproduced the original outputs for both systems, validating the methodology.
  • Despite their different origins and approaches, a side-by-side examination revealed shared underlying principles; for instance, the Heuristic Compiler also adapted existing routines, and Simon later emphasized the role of programming knowledge in search.
  • Intriguingly, the authors leveraged a modern AI tool (Anthropic's Claude Code) for significant portions of the reanimation work, creating a recursive loop of AI studying historical AI.
  • The paper concludes by highlighting a key distinction: these older systems embodied explicit, executable theories of programming, a characteristic often absent in today's more capable AI coding assistants.

This work offers a unique perspective on the evolution of AI and programming theory, demonstrating how historical code can still offer profound insights into the nature of computation.