VLDB 2026 Research / reviewers in the wild / expert
Daniel H. H. Ingalls
dblp:65/3115 · also Dan H. H. Ingalls, Dan Ingalls, Daniel Ingalls
· DBLP profile ↗
11ranked-venue papers
7as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 7 first-authorArtificial intelligence and machine learning · 1Graphics, computer vision, multimedia, augmented reality and games · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
6 papers |
Runtime systems and virtual machines · 55% Programming languages and type systems · 42% Operating systems · 3% | |
| Human-computer interaction and pervasive computing
1 paper |
User interface design and tools · 100% |
Topics — the 15 heaviest of 15, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Runtime systems and virtual machines
garbage collection |
0.0 | 1 | 1997 | Back to the Future: The Story of Squeak - A Usable Smalltalk Written in Itself · OOPSLA 1997 |
Runtime systems and virtual machines › garbage collection
incremental garbage collection |
0.0 | 1 | 1997 | Back to the Future: The Story of Squeak - A Usable Smalltalk Written in Itself · OOPSLA 1997 |
Programming languages and type systems
language implementation |
0.0 | 1 | 1997 | Back to the Future: The Story of Squeak - A Usable Smalltalk Written in Itself · OOPSLA 1997 |
Runtime systems and virtual machines
virtual machine implementation |
0.0 | 1 | 1997 | Back to the Future: The Story of Squeak - A Usable Smalltalk Written in Itself · OOPSLA 1997 |
Programming languages and type systems
object-oriented programming |
0.0 | 3 | 1986 | A Simple Technique for Handling Multiple Polymorphism · OOPSLA 1986 Multiple Inheritance in Smalltalk-BO · AAAI 1982 The Smalltalk-76 Programming System · POPL 1978 |
Programming languages and type systems
type systems |
0.0 | 2 | 1988 | Fabrik: A Visual Programming Environment · OOPSLA 1988 A Type Declaration and Inference System for Smalltalk · POPL 1982 |
User interface design and tools › visual programming
visual programming environment |
0.0 | 1 | 1988 | Fabrik: A Visual Programming Environment · OOPSLA 1988 |
Programming languages and type systems › type systems
polymorphism |
0.0 | 1 | 1986 | A Simple Technique for Handling Multiple Polymorphism · OOPSLA 1986 |
Programming languages and type systems › object-oriented programming
multiple inheritance |
0.0 | 1 | 1982 | Multiple Inheritance in Smalltalk-BO · AAAI 1982 |
Programming languages and type systems
type inference |
0.0 | 1 | 1982 | A Type Declaration and Inference System for Smalltalk · POPL 1982 |
Runtime systems and virtual machines
interpreter |
0.0 | 1 | 1978 | The Smalltalk-76 Programming System · POPL 1978 |
Operating systems › resource management
memory management |
0.0 | 1 | 1978 | The Smalltalk-76 Programming System · POPL 1978 |
Operating systems › resource management › memory management
virtual memory |
0.0 | 1 | 1978 | The Smalltalk-76 Programming System · POPL 1978 |
Programming languages and type systems
language design |
0.0 | 1 | 1982 | A Type Declaration and Inference System for Smalltalk · POPL 1982 |
Programming languages and type systems › object-oriented programming
smalltalk |
0.0 | 1 | 1982 | A Type Declaration and Inference System for Smalltalk · POPL 1982 |
Methods — techniques the papers use, named apart from their topics
translator to c · 0.0bitblt · 0.0object-oriented components · 0.0bidirectional dataflow · 0.0object-oriented design · 0.0object-oriented programming · 0.0interpreter · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | The evolution of Smalltalk: from Smalltalk-72 through SqueakabstractThis paper presents a personal view of the evolution of six generations of Smalltalk in which the author played a part, starting with Smalltalk-72 and progressing through Smalltalk-80 to Squeak and Etoys. It describes the forces that brought each generation into existence, the technical innovations that characterized it, and the growth in understanding of object-orientation and personal computing that emerged. It summarizes what that generation achieved and how it affected the future, both within the evolving group of developers and users, and in the outside world. The early Smalltalks were not widely accessible because they ran only on proprietary Xerox hardware; because of this, few people have experience with these important historical artifacts. To make them accessible, the paper provides links to live simulations that can be run in present-day web browsers. These simulations offer the ability to run pre-defined scripts, but also allow the user to go off-script, browse the details of the implementation, and try anything that could be done in the original system. An appendix includes anecdotal and technical aspects of how examples of each generation of Smalltalk were recovered, and how order was teased out of chaos to the point that these old systems could be brought back to life. Daniel H. H. Ingalls |
Proc. ACM Program. Lang. | 1 |
| 2020 | Two decades of live coding and debugging of virtual machines through simulationabstractSummary OpenSmalltalk‐VM is a virtual machine (VM) for languages in the Smalltalk family (eg, Squeak and Pharo), which is itself written in a subset of Smalltalk that can easily be translated to C. VM development is done in Smalltalk, an activity we call “simulation.” The production VM is then derived by translating the core VM code to C. As a result, two execution models coexist: simulation, where the Smalltalk code is executed on top of a Smalltalk VM, and production, where the same code is compiled to an executable through a C compiler. The whole VM execution can be simulated: the heap is represented as a huge byte array, the VM code is executed as Smalltalk, and the native code generated by the just‐in‐time (JIT) compiler is executed by a processor simulator. All the Smalltalk development tools, such as the debugger, are then available while simulating. In addition, in simulation, it is also possible to use debugging features such as single stepping in the machine code generated by the JIT compiler. The Smalltalk development tools combined with the simulation debugging features provide developers with a productive environment in which to extend and debug the VM. In this article, we detail the VM simulation infrastructure and report our experiences developing and debugging VM features within it such as the garbage collector and the JIT compiler. Daniel H. H. Ingalls, Eliot Miranda, Clément Béra, Elisa Gonzalez Boix |
Softw. Pract. Exp. | 1 |
| 2015 | The Ignite Distributed Collaborative Scientific Visualization SystemabstractWe describe the Ignite Distributed Collaborative Scientific Visualization System (IDCVS), a system which permits real-time interaction and visual collaboration around large data sets, with an initial emphasis on scientific data. The IDCVS offers such a collaborative environment, with real-time interaction on any device between users separated across the wide area. It provides seamless interaction and immediate updates even under heavy load and when users are widely separated: the design goal was to fetch a data set consisting of 30,000 points from a server and render it within 150ms, for a user anywhere in the world, and reflect changes made by a user in one location to all other users within a bound provided by network latency. The system was demonstrated successfully on a significant worldwide air pollution data set, with values on 10, 25, 50, and 100km worldwide grids, monthly over an 18-year period. It was demonstrated on a wide variety of clients, including laptop, tablet, and smartphone. Sushil Bhojwani, Matt Hemmings, Daniel H. H. Ingalls, Jens Lincke, Robert Krahn, David John Lary, Patrick C. McGeer, Glenn Ricart, Marko Röder, Yvonne Coady, Ulrike Stege |
CloudCom | 3 |
| 2014 | SqueakJS: a modern and practical smalltalk that runs in any browserabstractWe report our experience in implementing SqueakJS, a bit-compatible implementation of Squeak/Smalltalk written in pure JavaScript. SqueakJS runs entirely in the Web browser with a virtual filesystem that can be directed to a server or client-side storage. Our implementation is notable for simplicity and performance gained through adaptation to the host object memory and deployment leverage gained through the Lively Web development environment. We present several novel techniques as well as performance measurements for the resulting virtual machine. Much of this experience is potentially relevant to preserving other dynamic language systems and making them available in a browser-based environment. Bert Freudenberg, Daniel H. H. Ingalls, Tim Felgentreff, Tobias Pape, Robert Hirschfeld |
DLS | 2 |
| 2008 | The Lively Kernel: just for fun, let's take JavaScript seriouslyabstractThe Sun Labs Lively Kernel is a new approach to Web programming. It provides a complete platform for Web applications, including dynamic graphics, network access, and development tools, and requires nothing more than available web browsers. We call the system "lively" for three reasons. It comes live off a web page. There is no installation. The entire system is written in JavaScript, and it becomes active as soon as the page is loaded by a browser. It can change itself and create new content. The Lively Kernel includes a basic graphics editor that allows it to alter and create new graphical content, and also a simple IDE that allows it to alter and create new applications. It comes with a basic library of graphical and computational components, and these, as well as the kernel, can be altered and extended on the fly. It can save new artifacts, even clone itself, onto new web pages. The kernel includes WebDAV support for browsing and extending remote file systems, and thus has the ability to save its objects and "worlds" (applications) as new active Web pages. The Lively Kernel uses only existing Web standards. The implementation and user language is JavaScript, known by millions and supported in every browser. The graphics APIs are built upon SVG (Scalable Vector Graphics), also available in major browsers. The network protocols used are asynchronous HTTP and WebDAV. The speaker will demonstrate the Lively Kernel and discuss various aspects of JavaScript as a programming language. Daniel H. H. Ingalls |
DLS | 1 |
| 1997 | Back to the Future: The Story of Squeak - A Usable Smalltalk Written in ItselfabstractSqueak is an open, highly-portable Smalltalk implementation whose virtual machine is written entirely in Smalltalk, making it easy to. debug, analyze, and change. To achieve practical performance, a translator produces an equivalent C program whose performance is comparable to commercial Smalltalks.Other noteworthy aspects of Squeak include: a compact object format that typically requires only a single word of overhead per object; a simple yet efficient incremental garbage collector for 32-bit direct pointers; efficient bulk-mutation of objects; extensions of BitBlt to handle color of any depth and anti-aliased image rotation and scaling; and real-time sound and music synthesis written entirely in Smalltalk. Daniel H. H. Ingalls, Ted Kaehler, John Maloney, Scott Wallace 0002, Alan C. Kay |
OOPSLA | 1 |
| 1988 | Fabrik: A Visual Programming EnvironmentabstractFabrik is a visual programming environment - a kit of computational and user-interface components that can be “wired” together to build new components and useful applications. Fabrik diagrams utilize bidirectional dataflow connections as a shorthand for multiple paths of flow. Built on object-oriented foundations. Fabrik components can compute arbitrary objects as outputs. Music and animation can be programmed in this way and the user interface can even be extended by generating graphical structures that depend on other data. An interactive type system guards against meaningless connections. As with simple dataflow, each Fabrik component can be compiled into an object with access methods corresponding to each of the possible paths of data propagation. Daniel H. H. Ingalls, Scott Wallace 0002, Yu-Ying Chow, Frank Ludolph, Ken Doyle |
OOPSLA | 1 |
| 1986 | A Simple Technique for Handling Multiple PolymorphismabstractCertain situations arise in programming that lead to multiply polymorphic expressions, that is, expressions in which several terms may each be of variable type. In such situations, conventional object-oriented programming practice breaks down, leading to code which is not properly modular. This paper describes a simple approach to such problems which preserves all the benefits of good object-oriented programming style in the face of any degree of polymorphism. An example is given in Smalltalk-80 syntax, but the technique is relevant to all object-oriented languages. Daniel H. H. Ingalls |
OOPSLA | 1 |
| 1982 | Multiple Inheritance in Smalltalk-BO
Alan Borning, Daniel H. H. Ingalls |
AAAI | 2 |
| 1982 | A Type Declaration and Inference System for SmalltalkabstractAn experimental system for declaring and inferring type in Smalltalk is described. (In the current Smalltalk language, the programmer supplies no type declarations.) The system provides the benefits of type declaration in regard to compile-time checking and documentation, while still retaining Smalltalk's flexibility. A type hierarchy, which is integrated with the existing Smalltalk class hierarchy, allows one type to inherit the traits of another type. A type may also have parameters, which are in turn other types. Alan Borning, Daniel H. H. Ingalls |
POPL | 2 |
| 1978 | The Smalltalk-76 Programming SystemabstractThis paper describes a programming system based on the metaphor of communicating objects. Experience with a running system shows that this model provides flexibility, modularity and compactness. A compiled representation for the language is presented, along with an interpreter suitable for microcoding. The object-oriented model provides naturally efficient addressing; a corresponding virtual memory is described which offers dense utilization of resident space. Daniel H. H. Ingalls |
POPL | 1 |