dan-halbert (42K)

Dan Halbert (Daniel C. Halbert)


See my LinkedIn profile for more detailed resume information.


2009-present: MIT Lincoln Laboratory (subcontracting via Solidus Technical Solutions) . Face recognition. Speech recognition. Text processing. Graph databases.

2007-2009: EveryZing, Inc., now Ramp (BBN spinoff). Audio/video search using speech recognition technology. Systems development. Cloud computing.

1995-2007: BBN Technologies. Personalized Internet Newspaper. Architecture and systems design for speech recognition. Speech recognition technology and its applications: in-car, telephony, media transcription and search.

1993-1995: Ascom Nexion. Object-oriented work. Network management software.

1985-1993: Digital Equipment Corporation. Eastern Research Lab, Cambridge Research Lab. Object-oriented programming. Trellis/Owl programming language and environment. Pen-based computing.

1980-1984: Xerox Corporation. PARC and Office Systems Division. Smalltalk, Xerox Star, programming by example. (while a graduate student)

1979: Lawrence Livermore National Laboratory. S-1 computer project. (summer)

1975-1978: Bolt, Beranek, and Newman. BCPL compiler and other work. (while an undergraduate)


University of California, Berkeley: 1984, PhD in Computer Science. 1981, MS in Computer Science.
Dissertation research on programming by example (see below).
Co-invented the overlapping register windows mechanism used in the Berkeley RISC I processor chip, and later in the Sun Microsystems SPARC family of processors.

MIT: 1978, SB in Computer Science. Bachelor's Thesis: A Lisp Debugger for Display Terminals

Programming by Example: SmallStar

My graduate work was in programming by example, also called programming by demonstration. In particular, I was interested in end-user programming and programming in the user interface.

My 1984 PhD thesis, Programming by Example (PDF) (HTML), describes PBE in a simulation of the Xerox Star office system. The system I built was called SmallStar, and was written in Smalltalk. I have the original source code and am very slowly trying to revive it.

SmallStar is also described in Chapter 5 of the 1993 MIT Press book Watch What I Do: Programming by Demonstration, edited by Allen Cypher, and co-edited by me and several other people. The entire book is available online.

The Unix more command

I am the original author of the UNIX more command (ca. 1978). Here's a short history of how it came to be written.


Charlie K. Dagli, Kevin J. Brady, and Daniel C. Halbert. "Face recognition despite missing information". 2011 IEEE International Conference on Technologies for Homeland Security (HST), November, 2011, Waltham, MA, pp. 475-480.

Daniel C. Halbert. "SmallStar: Programming by demonstration in the desktop metaphor". Chapter 5 in Watch What I Do: Programming by Demonstration, edited by Allen Cypher, co-edited by Daniel C. Halbert, David Kurlander, Henry Lieberman, David Maulsby, Brad A. Myers, and Alan Turransky. MIT Press, Cambridge, Massachusetts, 1993. ISBN 0-262-03213-9.

Patrick D. O'Brien, Daniel C. Halbert, and Michael F. Kilian. "The Trellis programming environment". In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), October, 1987, Orlando, Florida, pp. 91-102. Published as SIGPLAN Notices 22(12), December, 1987, ACM Press.

Daniel C. Halbert and Patrick D. O'Brien. "Using types and inheritance in object-oriented programming". IEEE Software 4(5), September 1987, pp. 71-79. [Revised version of ECOOP '87 paper, below.]

Daniel C. Halbert and Patrick D. O'Brien. "Using types and inheritance in object-oriented languages". In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), June, 1987, Paris, pp. 23-34. Published as Bigre + Globule no. 54, IRISA.

Daniel C. Halbert. Programming by Example (PDF) (HTML). Ph.D. dissertation, University of California, Berkeley, 1984. Also published as Xerox Corporation, Office Systems Division, technical report OSD-T8402.

Professional Activities

Colloquium speaker at Washington University (St. Louis, Missouri) Computer Science Department, November, 1993. Topic: Programming by example and intension and extension in user interfaces.

Publicity Chair, HOPL-II (ACM SIGPLAN Second History of Programming Languages Conference), Cambridge, Massachusetts, April 1993.

Member of panel on pen computing, ACM Computer Science Conference, Indianapolis, February 1993.

Treasurer, ASPLOS-II (ACM Conference on Architectural Support for Programming Languages and Operating Systems), Boston, April 1989.

Member of program committee, OOPSLA '88 (ACM Conference on Object-Oriented Programming Systems, Languages, and Applications), San Diego, California, September 1988.

Member of panel on classes vs. prototypes in object-oriented programming, OOPSLA '88.

Member of panel on the learnability of object-oriented programming systems, OOPSLA '86, Portland, Oregon, September-October 1986.