Daniel Henry Holmes Ingalls Jr. | |
---|---|
Born | 1944 Washington, D.C. |
Citizenship | United States |
Fields | Computer science |
Institutions |
Xerox PARC Apple Inc. ATG Interval Research Corporation Walt Disney Imagineering Hewlett-Packard Labs Sun Microsystems Labs SAP |
Alma mater | Harvard University, Stanford University |
Known for |
Bit blit Pop-up menus Smalltalk object-oriented programming Fabrik visual programming language Lively Kernel |
Notable awards |
ACM Grace Murray Hopper Award (1984) ACM Software Systems Award |
Daniel Henry Holmes Ingalls Jr. (born 1944) is a pioneer of object-oriented computer programming and the principal architect, designer and implementer of five generations of Smalltalk environments. He designed the bytecoded virtual machine that made Smalltalk practical in 1976. He also invented Bit blit, the general-purpose graphical operation that underlies most bitmap graphics systems today, and pop-up menus. He designed the generalizations of BitBlt to arbitrary color depth, with built-in scaling, rotation, and anti-aliasing. His major contributions to the Squeak system include the original concept of a Smalltalk written in itself and made portable and efficient by a Smalltalk-to-C translator.
Ingalls received his B.A. in Physics from Harvard University, and his M.S. in Electrical engineering from Stanford University. While working toward a Ph.D. at Stanford, he started a company, to sell a software measurement invention that he perfected and never returned to academia.
Ingalls' first well known research was at Xerox PARC, where he began a lifelong research association with Alan Kay, and did his award winning work on Smalltalk. He then moved to Apple Inc. He left research for a time to run the family business, the Homestead Hotel, in Virginia. He then worked at Interval Research Corporation, and then returned to Apple. Starting at Xerox, and then at Apple, he developed Fabrik, a visual programming environment consisting of a kit of computational and user interface components that can be "wired" together to build new components and useful applications.