# David Ungar

David Michael Ungar, an American computer scientist, co-created the Self programming language with Randall Smith. The Self development environment's animated user experience was described in the paper Animation: From Cartoons to the User Interface co-written with Bay-Wei Chang, which won a lasting impact award at the ACM Symposium on User Interface Software and Technology 2004.
Ungar graduated as a doctor of philosophy in computer science from the University of California, Berkeley, in 1985. His doctoral advisor was David Patterson and his dissertation was entitled The Design and Evaluation of a High-Performance Smalltalk System; it won the 1986 ACM Doctoral Dissertation Award.
He was an assistant professor at Stanford University, Dept. of Electrical Engineering, Computer Systems Lab, where he taught programming languages and computer architecture, from 1985 to 1990. In 1991, he joined Sun Microsystems and became a distinguished engineer. In 2006 he was recognized as a Distinguished Engineer by the Association for Computing Machinery and in 2010 a Fellow. From 2007 to 2017, he worked at IBM Research, where he was a member of the Dynamic Optimization Group, and investigated new paradigms including ensemble and subjective programming. From 2017 to 2022, he worked at Apple, where he sped up Swift language compilation. Currently retired, he builds apps for his personal use on various Apple platforms.
Ungar holds over 20 US patents.
In 2006 the 1987 Self paper, coauthored by Ungar and Randall B. Smith, was selected as one of the three most influential OOPSLA papers presented between 1986 and 1996. Self was also one influence on the design of the JavaScript programming language. Ungar's 1984 paper, Generation Scavenging: A Non-disruptive High Performance Storage Reclamation Algorithm, which introduced generational garbage collection, won a Retrospective ACM SIGSOFT Impact Paper Award in 2008.
Dave Ungar was awarded the Dahl-Nygaard Senior Prize in 2009.

## Major publications

* Extending Swift Value(s) to the Server, David Ungar and Robert Dickerson, O'Reilly, 2016.
* The History of Self, David Ungar, Randall B. Smith. ACM HOPL-III, 2007. Proc. of the Third ACM SIGPLAN History of Programming Languages Conference (HOPL-III), B. Ryder, B, Hailpern (Eds.), San Diego, California, USA, 9–10 June 2007. Paper and video at .
* Reconciling Responsiveness with Performance in Pure Object-Oriented Languages, Urs Hölzle and David Ungar. TOPLAS 18, 4 (July 1996).
* Programming as an Experience: The Inspiration for Self, R. Smith & D. Ungar, invited paper, ECOOP’95.
* Animation: From Cartoons to the User Interface, Bay-Wei Chang and David Ungar, UIST 1993
* Self: The Power of Simplicity, Randall B. Smith and David Ungar, OOPSLA, October, 1987
* Generation Scavenging: A non-disruptive high performance storage reclamation algorithm., David Ungar, 1984

## Selected patents

* Perceptual-based color selection for text highlighting. (Jan. 11, 2005)
* Method and apparatus for increasing scavenging garbage collection effectiveness - (Jan 20, 2004)
* Method and apparatus for testing a process in a computer system - (Jul 15, 2003)
* Method and apparatus for finding bugs related to garbage collection in a virtual machine - (Dec 4, 2001)
* Method and apparatus of translating and executing native code in a virtual machine environment - (Aug 28, 2001)
* Method and apparatus for supporting efficient programming in dynamic pointer-safe languages - (Aug 21, 2001)