Warren Teitelman

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Warren Teitelman
Died(2013-08-12)August 12, 2013[1]
Alma materMIT
OccupationComputer scientist
Known forInventing Interlisp and computer concepts such as Undo and spellcheck

Warren Teitelman (1941 – August 12, 2013) was an American computer scientist known for his work on programming environments and the invention and first implementation of concepts including Undo / Redo,[2] spelling correction, advising, online help, and DWIM (Do What I Mean).

Early career and ARPANET[edit]

Warren Teitelman presented a novel scheme for real time character recognition in his master's thesis submitted in 1963 at MIT. A rectangle, in which a character is to be drawn, is divided into two parts, one shaded and the other unshaded. Using this division a computer converts characters into ternary vectors (a list composed of 3 values, 0, 1, or -) in the following way. If a pen enters the shaded region, a 1 is added to the vector. When the unshaded region is entered, a 0 is appended.[3][4] The thesis continued to be cited for several decades after its submission.[5]

He started as ARPA Principal Investigator from 1968 to 1978, and was responsible for the design and development of BBN LISP at Bolt, Beranek, and Newman, developing the idea of a programming system for a personal computer.[6][7][8] He used the ARPANET to support users of BBN Lisp at Stanford, SRI, USC, and CMU in 1970, and has been named an official ARPANET Pioneer, for his contributions to its development and growth.[9] He developed a Programmer's Assistant" as part of BBN-LISP, which was one of the first with an "Undo" function, by 1971.[10] He developed a program on the SDS 940 for Bob Kahn that allowed experimentation with various routing policies in order to see the effect on network traffic and real time monitoring of the packets.[11]

Interlisp and D-Lisp[edit]

He worked as Senior Scientist at Xerox PARC from 1972 until 1984; during this time he designed Interlisp.[12] Bill Joy has acknowledged that many of the ideas in the C shell were inspired by and copied from Interlisp.[13] In Interlisp, Teitelman invented DWIM ("Do What I Mean"), a function that attempted to correct many common typing errors. It was a package of Lisp routines which would "correct errors automatically or with minor user intervention"—thus making the code do what the user meant, not what they wrote.[14] The program was developed based upon Teitelman's own writing style and idiosyncrasies in 1972, and then used by other individuals in his office, followed by users across the industry.[12][15] In 1977, he and Bob Sproull implemented the first client–server window system, D-Lisp. D-Lisp used the Alto as a display device on which ran the window manager and event handler, communicating with Interlisp running on a MAXC (a PDP-10 clone). This system pioneered such concepts as overlapping windows where the window containing the focus did not have to be on top to receive events, on-line contextual help, and the ability to cut, copy, and paste from previous commands given to the shell.[16]

Other research[edit]

He joined the Cedar project in 1980 and did research in strongly typed languages, and to make sure the Cedar Programming Environment benefited from some of the lessons of Interlisp. His paper “A Tour Through Cedar” was widely published, quoted, and even translated into several languages.[17][18] The eponymous Teitelman Principle says that if a person requests a feature be added to a program, do not add the feature but find a way to make it easier for a programmer to add the feature themself.[19] Teitelman was also an early proponent of the use of email as a multi-tasking feature of the modern computer.[20]

He joined Sun Microsystems in 1984 and became Sun’s first Distinguished Engineer in 1986. He was also a Director of Multi-Media at Sun until his departure in 1992. He further worked as Director of Programming Environments for Rational Software and also with Lucid Inc. and Caere Corporation. He was one of founders of a startup called BayStone Software that developed CRM (Customer Relations Management) software based on Action Request system from Remedy Corporation. He invented the idea of Business Rules, which were data elements, rather than code, that embodied much of the business process. Remedy acquired BayStone in 1998 and he held the position of Chief Scientist of the CRM Business unit at Remedy. He joined Google in 2003.[citation needed]


  • A Display-Oriented Programmer’s Assistant was presented at IJCAI 77. A film showing a demonstration of D-Lisp ran continuously at the conference.
  • Warren Teitelman, Larry Masinter. The Interlisp Programming Environment. IEEE Computer, April 1981.
  • "A Tour Through Cedar". Proceedings of the 7th international conference on Software engineering. IEEE press. 1984. CiteSeerX
  • PILOT: A Step Toward Man-Computer Symbiosis, September 1966


  • He was awarded the ACM Software System Award for inventing Interlisp and pioneering work in programming environments in 1992.[21]


  1. ^ "Warren Teitelman". Retrieved February 25, 2014.
  2. ^ "PILOT: A Step Toward Man-Computer Symbiosis". DSpace@MIT. Retrieved November 19, 2017.
  3. ^ Patrick Winston (1969). "Discovering Good Regions for Teitelman's Character Recognition Scheme". Retrieved April 9, 2013.
  4. ^ Ronda Hauben (October 2010). "The International and Scientific Origins of the Internet and the Emergence of the Netizens". Retrieved April 9, 2013.
  5. ^ E. N. Houstis (2000). Enabling Technologies for Computational Science: Frameworks, Middleware, and Environments. Springer. pp. 93–94.
  6. ^ Marvin V. Zelkowitz (1989). Requirements for a Software Engineering Environment: Proceedings of the University of Maryland Workshop, May 5-8, 1986. Intellect Books. p. 144. Retrieved April 9, 2013.
  7. ^ "The BBN LISP system" (PDF). February 1966. Retrieved April 9, 2013.
  8. ^ Paul McJones. "Warren Teitelman et al. Interlisp Reference Manual. October 1978". Retrieved April 9, 2013.
  9. ^ "The Interlisp Programming Environment" (PDF). Computer Magazine. April 1981. Retrieved April 9, 2013.
  10. ^ Teitelman, Warren (1972-01-01). "Automated Programmering: The Programmer's Assistant". Proceedings of the December 5–7, 1972, Fall Joint Computer Conference, Part II. AFIPS '72 (Fall, part II). New York, NY, USA: ACM: 917–921. doi:10.1145/1480083.1480119.
  11. ^ Michael Geselowitz (February 17, 2004). "ROBERT KAHN: An Interview Conducted by Michael Geselowitz, IEEE History Center". Retrieved April 9, 2013.
  12. ^ a b Eric S Raymond (1996). The New hacker's dictionary. MIT Press. p. 167.
  13. ^ Gail Anderson & Paul Anderson (1986). The UNIX C shell field guide. Prentice Hall. p. xvii. Retrieved April 9, 2013.
  14. ^ Warren Teitelman, "Toward a programming laboratory", in J. N. Buxton and Brian Randell, Software Engineering Techniques, April 1970, a report on a conference sponsored by the NATO Science Committee, Rome, Italy, 27–31 October 1969, p. 108ff.
  15. ^ Donald Norman (2007). Emotional Design: Why We Love (or Hate) Everyday Things. Basic Books. p. 241.
  16. ^ William E. Riddle & Jack C. Wileden (1980). Tutorial on software system design: description and analysis. IEEE Computer Society. Retrieved April 9, 2013.
  17. ^ Proceedings of the Statistical Computing Section. American Statistical Association. Statistical Computing Section. 1987. p. 55.
  18. ^ "A Tour Through Cedar". CS Digital Library. March 1985. Retrieved April 9, 2013.
  19. ^ lan Jay Perlis; Frederick Sayward & Mary Shaw (1981). Software Metrics: An Analysis and Evaluation. MIT Press. p. 109. Retrieved April 9, 2013.
  20. ^ David Levy (2001). Scrolling forward: making sense of documents in the digital age. Arcade Publishing. pp. 101–102.
  21. ^ "1992 – Warren Teitelman (See the ACM Author Profile in the Digital Library Interlisp (1992))". Association for Computer Machinery. Retrieved April 9, 2013.

External links[edit]