Gerald Jay Sussman (born February 8, 1947) is an American computer scientist and the Panasonic Professor of Electrical Engineering (formerly Matsushita Professor) at the [[mit|Massachusetts Institute of Technology]]. Sussman co-created the [[scheme|Scheme]] programming language with [[guy_steele|Guy L. Steele Jr.]] in 1975, co-authored Structure and Interpretation of Computer Programs (SICP) with [[hal_abelson|Harold Abelson]] in 1985, and made foundational contributions to artificial intelligence, programming language semantics, computer-aided circuit design, and computational classical mechanics [1][2].
Sussman received his entire formal education at MIT and has remained on its faculty for his whole career. His doctoral work under [[marvin_minsky|Marvin Minsky]] in the early 1970s produced one of the earliest automatic-programming systems. His subsequent research in the [[mit_ai_laboratory|MIT Artificial Intelligence Laboratory]], later [[mit_csail|CSAIL]], ranged across symbolic AI, electronic design automation, and the long-term numerical integration of the [[solar_system|solar system]]. With [[jack_wisdom|Jack Wisdom]] he built the [[digital_orrery|Digital Orrery]], a custom computer that produced the first numerical evidence of chaos in the orbit of [[pluto|Pluto]] [3][4].
He is widely regarded as one of the architects of modern computer science education. The textbook he wrote with Abelson and his wife [[julie_sussman|Julie Sussman]] served as the basis of MIT's undergraduate course 6.001 Structure and Interpretation of Computer Programs from 1980 until 2007. He is an [[acm_fellow|ACM Fellow]], an IEEE Fellow, an [[aaai_fellow|AAAI Fellow]], a member of the [[national_academy_of_engineering|U.S. National Academy of Engineering]] (1991), winner of the [[aaai_computers_and_thought_award|AAAI Computers and Thought Award]] (1981) and the [[ieee_computer_pioneer_award|IEEE Computer Pioneer Award]] (1990), and a 1992 recipient of ACM's [[karl_v_karlstrom_award|Karl V. Karlstrom Outstanding Educator Award]], shared with Hal Abelson [5][6][7].
| Field | Value |
|---|---|
| Born | February 8, 1947, New York City |
| Nationality | American |
| Field | Computer science, AI, programming languages, computational physics |
| Institution | Massachusetts Institute of Technology |
| Alma mater | MIT (S.B. mathematics, 1968; Ph.D. mathematics, 1973) |
| Doctoral advisor | Marvin Minsky |
| Notable students | Guy L. Steele Jr., Howie Shrobe, Brian Cantwell Smith, Philip E. Agre, Jonathan Rees, Jon Doyle |
| Known for | Scheme, SICP, SICM, Digital Orrery, dependency-directed backtracking, constraint propagation, HACKER |
| Notable awards | AAAI Computers and Thought Award (1981); IEEE Computer Pioneer Award (1990); ACM Karl V. Karlstrom Outstanding Educator Award (1992); NAE member (1991); ACM, IEEE, and AAAI Fellow |
| Spouse | Julie Sussman |
Sussman was born on February 8, 1947, in New York City. He grew up in the New York area and showed an early appetite for electronics and mechanical tinkering, hobbies he has continued for the rest of his life [1][8].
In 1964 he entered MIT as an undergraduate. He completed an S.B. in mathematics in 1968 and continued at MIT for graduate study. He soon became involved with the [[mit_ai_laboratory|MIT Artificial Intelligence Laboratory]] then run by [[marvin_minsky|Marvin Minsky]] and [[seymour_papert|Seymour Papert]], and Minsky became his doctoral advisor. Sussman received his Ph.D. in mathematics from MIT in 1973. His dissertation, A Computer Model of Skill Acquisition, described an automatic programming system named HACKER that learned to write LISP programs by analyzing its own bugs and forming generalizations from prior solutions. The thesis was published in book form by American Elsevier in 1975 and is often cited as one of the first detailed studies of programs that improve themselves through experience [9].
HACKER's debugging methods drew on Minsky's frame-based view of knowledge and on contemporary work by [[carl_hewitt|Carl Hewitt]] and Terry Winograd. The system maintained explicit records of what it had tried and why each attempt had failed, then used those records to write better versions of its own subprocedures. The work fed into Sussman's later research on dependency tracking and would influence Jon Doyle's truth-maintenance systems and the broader literature on [[automatic_programming|automatic programming]].
Sussman has spent his entire research career at MIT. He joined the Department of Electrical Engineering and Computer Science in 1973 immediately after defending his thesis. He was later named the Panasonic Professor of Electrical Engineering, the renamed version of the Matsushita Professorship he had previously held [10][11]. He has been associated first with the [[mit_ai_laboratory|MIT Artificial Intelligence Laboratory]] and, after the 2003 merger with the Laboratory for Computer Science, with [[mit_csail|MIT CSAIL]].
From 1980 until 2007 he co-taught MIT's introductory course [[mit_6_001|6.001 Structure and Interpretation of Computer Programs]] with [[hal_abelson|Hal Abelson]]. Generations of MIT undergraduates first met Sussman as the lecturer in 6.001. The course was retired in 2009 in favor of 6.0001 (using Python) and 6.0002, a change Sussman has discussed in interviews as a reflection of how engineering had shifted toward the composition of large pre-existing systems rather than the construction of small ones from first principles [12].
In the autumn of 1975, Sussman and his then-graduate-student [[guy_steele|Guy L. Steele Jr.]] set out to understand [[carl_hewitt|Carl Hewitt]]'s [[actor_model|actor model]] of concurrent computation by implementing a small interpreter that supported actor-style message passing. Working in MacLisp on the AI Lab's PDP-10, they wrote roughly a thousand lines of code that they originally called "Schemer." The ITS file system at MIT limited file names to six characters, so the name was abbreviated to Scheme [13].
While examining the actor implementation, Sussman and Steele noticed that the code that handled message sends was structurally identical to the code that handled ordinary procedure calls, and that closures over variables were equivalent to actors maintaining private state. They documented the language in MIT AI Memo 349, "Scheme: An Interpreter for Extended Lambda Calculus," dated December 1975. The memo is the founding document of [[scheme|Scheme]] [13][14].
Over the next five years Sussman and Steele wrote a series of follow-up papers known as the [[lambda_papers|Lambda Papers]]. The series included "Lambda: The Ultimate Imperative" (1976), which showed that imperative constructs such as goto, while, and case were special cases of procedure application; "Lambda: The Ultimate Declarative" (1976); "Debunking the 'Expensive Procedure Call' Myth, or, Lambda: The Ultimate GOTO" (1977), which argued that with proper tail-call handling in the compiler, a procedure call costs no more than a goto; and "The Art of the Interpreter" (1978), which dissected the structure of programming-language interpreters [15][16][17][18].
Steele's 1978 master's thesis, Rabbit: A Compiler for SCHEME, demonstrated that an optimizing native-code compiler could implement Scheme's tail-call requirement without runtime cost [19]. Compile-time tail-call optimization eliminated the need for an explicit goto in higher-level languages: any loop or jump could be expressed as a tail-recursive procedure call. Scheme also popularized [[lexical_scope|lexical scoping]] by default, mandatory tail-call optimization in the language definition, and first-class continuations through call-with-current-continuation. Its small core became a model for minimalist language design.
In 1980, Sussman and [[hal_abelson|Hal Abelson]] launched a new version of MIT's introductory programming course, taught entirely in [[scheme|Scheme]]. The course materials grew into a textbook. Structure and Interpretation of Computer Programs, published by MIT Press in 1985 with Abelson, Sussman, and [[julie_sussman|Julie Sussman]] credited as authors, became one of the most influential computer science textbooks of the late twentieth century. A second edition followed in 1996 [2][20].
[[sicp|SICP]] is built around a small number of recurring ideas: the construction of compound data using procedures, the modeling of computation as the application of procedures to arguments, the introduction of state and assignment as a controlled extension, and the construction of evaluators for languages from inside the language itself. The book's last two chapters develop a metacircular Scheme interpreter, an explicit-control evaluator for a register-machine simulator, and a compiler that produces register-machine code from Scheme source.
The cover of the first edition shows a bearded wizard surrounded by symbols of [[lambda_calculus|lambda calculus]], giving the book its nickname "the Wizard Book." [[julie_sussman|Julie Sussman]] contributed substantially to the prose [21]. The second edition (1996) added material on logic programming, on stream-based concurrency, and on continuations. MIT Press makes it freely available online, and the book has been translated into Chinese, French, German, Italian, Japanese, Polish, Russian, and Spanish. It has been adopted at Berkeley, Carnegie Mellon, Princeton, ETH Zurich, and many other institutions [20][22].
In parallel with his programming-languages research, Sussman led an MIT effort to apply AI techniques to the design and analysis of electronic circuits. The work began with EL (for "electrical"), which performed steady-state analysis of analog circuits using symbolic propagation of constraints. EL was extended into ARS ("Antecedent Reasoning System") and then into HAL and related tools that could reason about circuit topology and behavior [23][24].
Sussman's longest-running collaborator was [[richard_stallman|Richard Stallman]], who worked closely with Sussman from the early 1970s. The two co-authored "Heuristic Techniques in Computer-Aided Circuit Analysis," published in IEEE Transactions on Circuits and Systems in 1975 [23]. Stallman would later move on to the GNU Project; before that he was a productive contributor to the EL/ARS line of research and the design of the first MIT [[lisp|Lisp]] machine.
The most influential idea to come out of this work was [[dependency_directed_backtracking|dependency-directed backtracking]]. Stallman and Sussman observed that classical chronological backtracking, which undoes the most recent decision when it hits a contradiction, is inefficient because it discards information about which decisions were actually relevant. Their alternative tagged each derived fact with a record of the assumptions that had produced it; when a contradiction was found, the system identified the actual culprit assumptions and backtracked directly to the most recent of them [25]. The technique generalized into [[truth_maintenance_system|truth-maintenance systems]] in the work of Jon Doyle (Sussman's student) and David McAllester. Modern Boolean satisfiability solvers use closely related ideas under the names "clause learning" and "conflict-directed backjumping."
Sussman's group also developed early systems for [[constraint_propagation|constraint propagation]]. The approach was demonstrated in Steele's 1980 Ph.D. thesis under Sussman, which built a constraint-based language called CONSTRAINTS on top of Scheme [26].
Beginning in the 1980s, Sussman extended his interest in computational expression into physics. He spent a sabbatical at Caltech working on numerical integrations of the [[solar_system|solar system]], and on his return to MIT he began a long collaboration with the planetary scientist [[jack_wisdom|Jack Wisdom]].
Structure and Interpretation of Classical Mechanics (SICM), published by MIT Press in 2001 with a second edition in 2014, applies the SICP approach to physics [27]. Where standard textbooks present classical mechanics through dense algebraic manipulations of Lagrangians and Hamiltonians, [[sicm|SICM]] expresses these objects as Scheme procedures and asks students to compute with them directly. Differentiation, the calculus of variations, canonical transformations, and Lie series all become operations the reader can execute on a computer. The book uses an embedded language called Scmutils built on top of MIT/GNU Scheme [28]. A companion volume, Functional Differential Geometry, written with Wisdom and Meinhard E. Mayer (MIT Press, 2013), extends the same approach to differential geometry and applies it to general relativity [29]. These books exemplify what Sussman has called "the computer as metaphor": the use of executable code as a precise medium for stating scientific ideas.
The most spectacular outcome of Sussman's collaboration with [[jack_wisdom|Jack Wisdom]] was the [[digital_orrery|Digital Orrery]], a special-purpose parallel computer designed to integrate the equations of motion of the solar system over astronomically long times [30][31].
In the early 1980s, the team set out to test whether the long-term behavior of the outer planets was regular or chaotic. The question demanded numerical integrations covering hundreds of millions of years, far beyond what general-purpose computers could deliver in reasonable time. Working with Charles Leiserson and a hardware team, Sussman and Wisdom designed a custom architecture optimized for the arithmetic of N-body integration. The Orrery used ten parallel processors, each dedicated to a single body, that exchanged force computations on a shared bus.
The Orrery was completed in 1985 and ran integrations of the outer planets, including Pluto, for hundreds of millions of simulated years. The 1988 paper by Sussman and Wisdom in Science, titled "Numerical Evidence That the Motion of Pluto Is Chaotic," presented the result that Pluto's orbit, while bounded and stable on observable timescales, was sensitive to initial conditions in the technical sense of [[chaos_theory|chaos theory]], with a Lyapunov time on the order of 20 million years [3]. A 1992 paper extended the result to the inner solar system [4]. The Digital Orrery is now in the collection of the Smithsonian National Museum of American History [31].
| Year | Award |
|---|---|
| 1981 | [[aaai_computers_and_thought_award |
| 1990 | [[ieee_computer_pioneer_award |
| 1991 | Member, [[national_academy_of_engineering |
| 1992 | ACM [[karl_v_karlstrom_award |
| 2002 | ACM Fellow |
| 2008 | AAAI Fellow |
| Various | IEEE Fellow; MIT MacVicar Faculty Fellow |
The AAAI Computers and Thought Award recognized Sussman in 1981 for his early work on automatic programming and dependency-directed backtracking [5]. The IEEE Computer Pioneer Award in 1990 recognized his contributions to programming language design and computer-aided circuit analysis [6]. His election to the [[national_academy_of_engineering|National Academy of Engineering]] in 1991 cited his contributions to computer-aided design methodology and the science of programming [11]. The Karlstrom Award, shared with Abelson in 1992, recognized SICP and the impact of 6.001 on undergraduate computer science teaching [7].
[[scheme|Scheme]]'s effects on programming language design have been wide and direct. [[common_lisp|Common Lisp]], standardized in the 1980s and ratified by ANSI in 1994, adopted Scheme's lexical scoping in let-bound variables, first-class procedures, and the convention that recursion is the natural way to express iteration. [[clojure|Clojure]], designed by Rich Hickey in 2007, is a Lisp dialect that runs on the JVM and explicitly cites Scheme as one of its influences. [[racket|Racket]], descended from PLT Scheme, is the most direct programming-language descendant of MIT Scheme outside MIT itself.
[[javascript|JavaScript]] traces a partial lineage to Scheme through its designer [[brendan_eich|Brendan Eich]], who has said in many talks that he was hired at Netscape in 1995 to put "Scheme in the browser" and that the original prototype, completed in ten days, was a Scheme-like language with C-style syntax forced on it for marketing reasons [32]. Python, Ruby, and Julia have likewise adopted Scheme-style first-class functions, closures, and lexically scoped blocks. Modern configuration languages such as Nix and Guix are directly Scheme-based.
Sussman has supervised more than two dozen Ph.D. students at MIT.
| Person | Relationship | Notable for |
|---|---|---|
| [[guy_steele | Guy L. Steele Jr.]] | Co-creator of Scheme |
| [[richard_stallman | Richard Stallman]] | AI Lab colleague |
| [[hal_abelson | Hal Abelson]] | MIT colleague; SICP co-author |
| [[julie_sussman | Julie Sussman]] | Spouse and SICP co-author |
| [[jack_wisdom | Jack Wisdom]] | Collaborator on planetary mechanics |
| [[marvin_minsky | Marvin Minsky]] | Sussman's Ph.D. advisor |
| [[carl_hewitt | Carl Hewitt]] | MIT contemporary |
| Jon Doyle | Ph.D. student | Truth maintenance systems |
| Howie Shrobe | Ph.D. student | AI and intelligent infrastructure |
| Brian Cantwell Smith | Ph.D. student | Reflection in programming languages |
| Jonathan Rees | Ph.D. student | Co-editor of R3RS-R5RS Scheme reports |
| Charles Leiserson | MIT colleague | Co-designer of Digital Orrery; CLRS textbook |
He exchanged ideas with [[john_mccarthy|John McCarthy]] for decades.
Sussman married Julie Sussman in the early 1970s. Julie Sussman is a programmer and technical writer who edited and co-authored both SICP and SICM [21]. The Sussmans live in the Boston area. He is a passionate amateur of mechanical engineering and electronics, builds custom devices in a home workshop, and is a familiar presence at New England maker events. His MIT office has long been crowded with model trains, vacuum tubes, integrated circuits, and mechanical contraptions in various stages of construction. He often argues, following Marvin Minsky's Society of Mind, that the brain is a collection of cooperating subsystems, an analogy he carries into his views on the architecture of large software systems.
Sussman is widely quoted on the relationship between programming and education. A line attributed to him, sometimes also attributed to Edsger Dijkstra in slightly different form, holds that "computer science is no more about computers than astronomy is about telescopes," meaning that the discipline studies abstract processes rather than the physical machinery that runs them [33]. He has spent much of his career arguing that programming is a way to teach precise thinking, and that the production of working software is a side effect of that activity rather than its purpose.
In the 2010s and 2020s, his group has worked on what he calls flexible or adaptive systems: programs designed to remain robust as their components, requirements, and environments change. He has lectured widely on the theme "We Really Don't Know How to Compute!", a 2011 keynote at Strange Loop that argued contemporary software development still lacks the conceptual tools needed to build systems that age gracefully [34]. The book Software Design for Flexibility, co-authored with Chris Hanson (MIT Press, 2021), develops techniques such as generic operations, propagators (a generalization of constraint propagation), and layered evaluation as building blocks for software that does not break when its inputs grow or its specifications shift [35]. He continues to mentor graduate students at CSAIL.