EDBT 2026 Demo / reviewers in the wild / expert
David Mandelin
dblp:94/615
· DBLP profile ↗
5ranked-venue papers
2as first author
0since 2021 · last 2010
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 2 first-author
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
5 papers |
Requirements engineering and software design · 57% Runtime systems and virtual machines · 18% Compilers and program optimization · 9% |
Topics — the 11 heaviest of 13, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Requirements engineering and software design › model-driven engineering › model management
diagram matching |
0.2 | 2 | 2010 | Bayesian Approaches to Matching Architectural Diagrams · IEEE Trans. Software Eng. 2010 A Bayesian approach to diagram matching with application to architectural models · ICSE 2006 |
Requirements engineering and software design
model-driven engineering |
0.2 | 2 | 2010 | Bayesian Approaches to Matching Architectural Diagrams · IEEE Trans. Software Eng. 2010 A Bayesian approach to diagram matching with application to architectural models · ICSE 2006 |
Requirements engineering and software design
software architecture |
0.2 | 2 | 2010 | Bayesian Approaches to Matching Architectural Diagrams · IEEE Trans. Software Eng. 2010 A Bayesian approach to diagram matching with application to architectural models · ICSE 2006 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.1 | 1 | 2009 | Trace-based just-in-time type specialization for dynamic languages · PLDI 2009 |
Runtime systems and virtual machines › dynamic compilation › just-in-time compilation
trace-based compilation |
0.1 | 1 | 2009 | Trace-based just-in-time type specialization for dynamic languages · PLDI 2009 |
Compilers and program optimization › program specialization
type specialization |
0.1 | 1 | 2009 | Trace-based just-in-time type specialization for dynamic languages · PLDI 2009 |
Requirements engineering and software design › software architecture › architecture description
architectural modeling |
0.1 | 1 | 2006 | A Bayesian approach to diagram matching with application to architectural models · ICSE 2006 |
Software maintenance and evolution
code reuse |
0.1 | 1 | 2005 | Jungloid mining: helping to navigate the API jungle · PLDI 2005 |
Requirements engineering and software design › specification
specification debugging |
0.0 | 1 | 2003 | Debugging temporal specifications with concept analysis · PLDI 2003 |
Program analysis
specification mining |
0.0 | 1 | 2003 | Debugging temporal specifications with concept analysis · PLDI 2003 |
Programming languages and type systems
dynamic languages |
0.0 | 1 | 2009 | Trace-based just-in-time type specialization for dynamic languages · PLDI 2009 |
Methods — techniques the papers use, named apart from their topics
search algorithm · 0.2graph matching · 0.2bayesian methods · 0.2type specialization · 0.1trace compilation · 0.1type-based query inference · 0.1mining software repositories · 0.1trace clustering · 0.0concept analysis · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2010 | Bayesian Approaches to Matching Architectural DiagramsabstractIT system architectures and many other kinds of structured artifacts are often described by formal models or informal diagrams. In practice, there are often a number of versions of a model or diagram, such as a series of revisions, divergent variants, or multiple views of a system. Understanding how versions correspond or differ is crucial, and thus, automated assistance for matching models and diagrams is essential. We have designed a framework for finding these correspondences automatically based on Bayesian methods. We represent models and diagrams as graphs whose nodes have attributes such as name, type, connections to other nodes, and containment relations, and we have developed probabilistic models for rating the quality of candidate correspondences based on various features of the nodes in the graphs. Given the probabilistic models, we can find high-quality correspondences using search algorithms. Preliminary experiments focusing on architectural models suggest that the technique is promising. Doug Kimelman, Marsha Kimelman, David Mandelin, Daniel M. Yellin |
IEEE Trans. Software Eng. | 3 |
| 2009 | Trace-based just-in-time type specialization for dynamic languagesabstractDynamic languages such as JavaScript are more difficult to compile than statically typed ones. Since no concrete type information is available, traditional compilers need to emit generic code that can handle all possible type combinations at runtime. We present an alternative compilation technique for dynamically-typed languages that identifies frequently executed loop traces at run-time and then generates machine code on the fly that is specialized for the actual dynamic types occurring on each path through the loop. Our method provides cheap inter-procedural type specialization, and an elegant and efficient way of incrementally compiling lazily discovered alternative paths through nested loops. We have implemented a dynamic compiler for JavaScript based on our technique and we have measured speedups of 10x and more for certain benchmark programs. Andreas Gal, Brendan Eich, Mike Shaver, David Mandelin, Mohammad R. Haghighat, Blake Kaplan, Graydon Hoare, Boris Zbarsky, Jason Orendorff, Jesse Ruderman, Edwin W. Smith, Rick Reitmaier, Michael Bebenita, Mason Chang, Michael Franz |
PLDI | 5 |
| 2006 | A Bayesian approach to diagram matching with application to architectural modelsabstractIT system architectures, as well as other systems, are often described by formal models or informal diagrams. In practice, there are often a number of versions of a model, e.g. for different views of a system, divergent variants, or a series of revisions. Understanding how versions of a model correspond or differ is crucial, yet little work has been done on automated assistance for matching models and diagrams.We have designed a framework based on Bayesian methods for finding these correspondences automatically. We represent models and diagrams as graphs whose nodes have attributes such as name, type, connections, and containment relations, and we have developed probabilistic models for rating the quality of candidate correspondences based on various features of the nodes in the graphs. Given the probabilistic models, we can find high quality correspondences using search algorithms. Preliminary experiments focusing on architectural models suggest that the technique is promising. David Mandelin, Doug Kimelman, Daniel M. Yellin |
ICSE | 1 |
| 2005 | Jungloid mining: helping to navigate the API jungleabstractReuse of existing code from class libraries and frameworks is often difficult because APIs are complex and the client code required to use the APIs can be hard to write. We observed that a common scenario is that the programmer knows what type of object he needs, but does not know how to write the code to get the object.In order to help programmers write API client code more easily, we developed techniques for synthesizing jungloid code fragments automatically given a simple query that describes that desired code in terms of input and output types. A jungloid is simply a unary expression; jungloids are simple, enabling synthesis, but are also versatile, covering many coding problems, and composable, combining to form more complex code fragments. We synthesize jungloids using both API method signatures and jungloids mined from a corpus of sample client programs.We implemented a tool, prospector, based on these techniques. prospector is integrated with the Eclipse IDE code assistance feature, and it infers queries from context so there is no need for the programmer to write queries. We tested prospector on a set of real programming problems involving APIs; prospector found the desired solution for 18 of 20 problems. We also evaluated prospector in a user study, finding that programmers solved programming problems more quickly and with more reuse when using prospector than without prospector. David Mandelin, Rastislav Bodík, Doug Kimelman |
PLDI | 1 |
| 2003 | Debugging temporal specifications with concept analysisabstractProgram verification tools (such as model checkers and static analyzers) can find many errors in programs. These tools need formal specifications of correct program behavior, but writing a correct specification is difficult, just as writing a correct program is difficult. Thus, just as we need methods for debugging programs, we need methods for debugging specifications.This paper describes a novel method for debugging formal, temporal specifications. Our method exploits the short program execution traces that program verification tools generate from specification violations and that specification miners extract from programs. Manually examining these traces is a straightforward way to debug a specification, but this method is tedious and error-prone because there may be hundreds or thousands of traces to inspect. Our method uses concept analysis to automatically group the traces into highly similar clusters. By examining clusters instead of individual traces, a person can debug a specification with less work.To test our method, we implemented a tool, Cable, for debugging specifications. We have used Cable to debug specifications produced by Strauss, our specification miner. We found that using Cable to debug these specifications requires, on average, less than one third as many user decisions as debugging by examining all traces requires. In one case, using Cable required only 28 decisions, while debugging by examining all traces required 224. Glenn Ammons, David Mandelin, Rastislav Bodík, James R. Larus |
PLDI | 2 |