# Warren Teitelman

Warren Teitelman (February 21, 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, spelling correction, advising, online help, and DWIM (Do What I Mean).

## Early career and ARPANET

Warren Teitelman presented a novel scheme for real time character recognition in his master's thesis submitted in 1966 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. The thesis continued to be cited for several decades after its submission.
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. 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. He developed a Programmer's Assistant as part of BBN-LISP, which was one of the first with an "Undo" function, by 1971. 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.

## Interlisp and D-Lisp

He worked as Senior Scientist at Xerox PARC from 1972 until 1984; during this time he designed Interlisp. Bill Joy has acknowledged that many of the ideas in the C shell were inspired by and copied from Interlisp. 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. 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. 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.

## Other research

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. 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. Teitelman was also an early proponent of the use of email as a multi-tasking feature of the modern computer.
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 Relationship 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.

## Publications

* 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 10.1.1.105.3163.
* PILOT: A Step Toward Man-Computer Symbiosis, September 1966

## Awards

* He was awarded the ACM Software System Award for inventing Interlisp and pioneering work in programming environments in 1992.