David A. Moon
David A. Moon
|Known for||Lisp programming language, Symbolics, Emacs, Dylan|
David A. Moon is a programmer and computer scientist, known for his work on the Lisp programming language, as co-author of the Emacs text editor, as the inventor of ephemeral garbage collection, and as one of the designers of the Dylan programming language. Guy L. Steele Jr. and Richard P. Gabriel (1993) name him as a leader of the Common Lisp movement and describe him as "a seductively powerful thinker, quiet and often insulting, whose arguments are almost impossible to refute".
Maclisp, a variant of Lisp developed at the Massachusetts Institute of Technology (MIT) by Richard Greenblatt in the late 1960s, originally ran on the PDP-6 and PDP-10 computers made by Digital Equipment Corporation. In the early 1970s, Moon headed a project at MIT that reimplemented Maclisp on a different kind of computer, the Honeywell 6180 running the Multics operating system. The compiler that he developed, NCOMPLR, became the "standard against which all other Lisp compilers were measured". As part of this project, he also wrote what became the standard manual for Maclisp more generally, titled the MacLISP Reference Manual but often called the Moonual.
Moon was one of the original members of Greenblatt's project to develop the MIT Lisp Machine, beginning in 1974. In 1976, with Steele, he wrote the first (TECO-based) version of the Emacs text editor, and in 1978 with Daniel Weinreb he coauthored the manual for the Lisp Machine, known as the chine nual. With Howard Cannon, he developed Flavors, a system for doing object-oriented programming with multiple inheritance on the Lisp Machine. As part of the Lisp Machine project, he also invented ephemeral garbage collection, an advance that led to the widespread use of continuously-operating garbage collection systems in Lisp more generally.
When Symbolics was founded in 1980 to commercialize the Lisp Machine, he became one of its founders. He continued to develop new hardware and software at Symbolics, and was listed as a Symbolics Fellow in 1989, but left the company in 1990 to join a project to develop a new operating system. He also made important contributions to the standardization of Common Lisp.
- Steele & Gabriel (1993), p. 44.
- Steele & Gabriel (1993), p. 10.
- Steele, Guy L. Jr.; Gabriel, Richard P. (1993), "The Evolution of Lisp" (PDF), Proceedings of the Second ACM SIGPLAN Conference on History of Programming Languages (HOPL-II), SIGPLAN Notices, 28 (3): 231–270, doi:10.1145/155360.155373. Reprinted in Bergin, Thomas J. Jr.; Gibson, Richard G. Jr. (1996), "The evolution of Lisp", History of Programming languages—II, New York, NY, USA: ACM, pp. 233–330, doi:10.1145/234286.1057818, ISBN 978-0-201-89502-5.
- Salus, Peter H. (2008), "Chapter 4. A Tale of Two Editors", The Daemon, the Gnu, and the Penguin, Reed Media Services, ISBN 978-0979034237
- Richard Stallman is credited by Salus and others as another co-creator, but as Daniel Weinreb wrote, "The original (TECO-based) Emacs was created and designed by Guy L. Steele Jr. and David Moon. After they had it working, and it had become established as the standard text editor at the AI lab, Stallman took over its maintenance." Moon himself responded "All true, so far as I can remember. But in all fairness I have to say that Stallman greatly improved Emacs after he “liberated” it from Guy and me." See Weinreb, Dan (11 November 2007), "Rebuttal to Stallman's Story About The Formation of Symbolics and LMI", Dan Weinreb's blog: software and innovation, archived from the original on 1 January 2009.
- Steele & Gabriel (1993), p. 28: "While there was a great deal of theoretical work on interleaved and concurrent garbage collection during the 1970's, continuous garbage collection was not universally accepted until David Moon's invention of ephemeral garbage collection and its implementation on Lisp Machines."
- Cook, Kimberly L. (November 13, 1990), "David Moon is departing", Symbolics Lisp User Group mailing list, SRI International
- "Acknowledgements", Dylan (TM) -- An object-oriented dynamic language, Apple Computer, 1992
- Programming Language for Old Timers, David Moon, updated April 2012