Elephant 2000: A Programming Language Based on Speech Acts

Reference: John McCarthy (1989, revised). Formal Reasoning Group, Stanford University. Source file: elephant.pdf. URL

“I meant what I said, and I said what I meant. / An elephant’s faithful, one hundred percent! / moreover, / An elephant never forgets!”

Summary

McCarthy proposes Elephant 2000, a speculative programming language whose inputs and outputs are speech acts — requests, questions, offers, acceptances, declinations, permissions, and promises — rather than ordinary I/O. A program’s correctness is then partly defined by the “happy performance” of those acts in Austin’s sense: answers must be truthful and responsive, promises must be kept, and the program must not accept what it has no authority to accept. The paper is an essay of seven design theses, most strikingly:

  • An Elephant program is itself a logical sentence (or syntactic sugar for one); its extensional correctness properties follow by logical consequence without a separate theory of programming à la Hoare.
  • Elephant programs do not need data structures: they can refer directly to the past (history of events and states), just as natural-language speakers do (“the passenger has a reservation iff she made one and hasn’t cancelled it”).
  • Programs have both input-output specifications (generalising illocutionary speech acts) and accomplishment specifications (generalising perlocutionary acts — what the program actually brings about in the world).
  • Commercial transactions exchange obligations; an Elephant program’s specification may include the fact that the obligation exchange happens as intended, again as a logical sentence.

McCarthy explicitly departs from Searle/Austin by taking a design stance (Dennett) on speech acts, introducing abstract performatives (including purely internal commitments the agent makes to itself) as a category of program event. The paper is the direct programming-language-side ancestor of modern Agent Communication Languages, Commitment-based Semantics, and Intent Formalization — all written a decade before the ACL field got going.

Key Ideas

  • Speech-act I-O language: programs communicate via request, question, offer, accept, decline, permission, promise, assertion, plus internal commitment
  • Program-as-logical-sentence: extensional properties are logical consequences, no Hoare axioms required
  • Direct reference to the past: no data structures, just history queries (has-reservation(psgr, flt) ≡ made-reservation ∧ ¬cancelled)
  • Illocutionary vs. perlocutionary specs: input-output (program’s own behaviour) vs. accomplishment (effects in the world)
  • Abstract performatives — internal commitments whose content is independent of outward expression
  • Obligation exchange as a first-class specification element for commercial/institutional programs
  • Takes a design stance on speech acts — adapts Austin/Searle rather than inheriting them
  • Authority / permission / obligation are specification concerns: the program need not be conscious of them
  • Explicit claim: deliberately non-AI — Elephant usages that do not require intelligence are the focus

Connections

Conceptual Contribution

Tags

#speech-acts #programming-languages #commitments #performatives #foundational #mccarthy #elephant-2000

Backlinks