Joint Colloquium Distinguished Lecture Series
Self and self: Whys and wherefores
Generational garbage collection, prototype-based languages, dynamic optimization, cartoon animation for legibility, all tremendous fun, none done alone. What were they? How did they happen? Why did they matter? Looking back, what is worth learning about these experiences beyond the technical innovations? Combining hindsight with others' wisdom, it is possible to abstract some thoughts that may be useful in other situations: when (not) to listen to wise council; whom to follow into the cafeteria at lunch time; the benefit of striking a balance between one's own vision and those of one’s collaborators; which chance events might alter one's course; and how one's best work can sometimes arise from things that, on the surface, have nothing to do with work at all. At a deeper level still, the notion that values, principles, and practices arise in that particular order serves to unify the work and the experiences, and perhaps points the way forward as we all strive to invent the future.
David Ungar has long been fascinated by programming paradigms that can change the way people think, novel implementation techniques that make new languages feasible, and user interfaces that vanish. With Dr. Randall B. Smith at PARC, he designed a simple yet powerful prototype-based object-oriented programming language called "Self." As an Assistant
Professor at Stanford, David and his students developed new compilation techniques
And heap structures for pure object-oriented programming languages. Rejoining Dr. Smith at Sun Microsystems Laboratories, David co-led a project to create a complete programming environment for Self. The implementation techniques developed for Self have been harnessed for Sun's HotSpot Java(tm) Virtual Machine. David's Klein project explored metacircularity in pursuit of simpler, more malleable high-performance virtual machines and better development environments for them.
David's doctoral research was performed at the UC Berkeley with David Patterson, and concerned the development of a RISC for Smalltalk. The dissertation was published by the MIT press as an ACM Distinguished Dissertation. It introduced a fast automatic storage reclamation algorithm, Generation Scavenging, which has since influenced many production systems, and isolated those architectural features that significantly improved performance.
David Ungar is an ACM Distinguished Engineer, and three of his papers have been recognized as having been among the most influential in their respective fields: one on the Self language, one on the application of cartoon animation techniques to user interfaces, and one on generational garbage collection. In 2009, he received the AITO Dahl-Nygaard Prize for innovation in object-oriented programming language and implementation.
Since 2007, David has been privileged to be part of IBM Research, where he has added a facility for collaboration to a performance-analysis system (Tuning Fork), and where, in collaboration with Sam Adams, he investigates new programming paradigms for manycore architectures.
|Return to EECS Joint Colloquium|