David Mandelin

dblp:94/615 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Requirements engineering and software design › model-driven engineering › model management
diagram matching
0.222010
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.222010
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.222010
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.112009
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.112009
Trace-based just-in-time type specialization for dynamic languages · PLDI 2009
Compilers and program optimization › program specialization
type specialization
0.112009
Trace-based just-in-time type specialization for dynamic languages · PLDI 2009
Requirements engineering and software design › software architecture › architecture description
architectural modeling
0.112006
A Bayesian approach to diagram matching with application to architectural models · ICSE 2006
Software maintenance and evolution
code reuse
0.112005
Jungloid mining: helping to navigate the API jungle · PLDI 2005
Requirements engineering and software design › specification
specification debugging
0.012003
Debugging temporal specifications with concept analysis · PLDI 2003
Program analysis
specification mining
0.012003
Debugging temporal specifications with concept analysis · PLDI 2003
Programming languages and type systems
dynamic languages
0.012009
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
YearPublicationVenuePosition
2010 Bayesian Approaches to Matching Architectural Diagrams
abstract
IT 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 languages
abstract
Dynamic 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
PLDI5
2006 A Bayesian approach to diagram matching with application to architectural models
abstract
IT 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
ICSE1
2005 Jungloid mining: helping to navigate the API jungle
abstract
Reuse 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
PLDI1
2003 Debugging temporal specifications with concept analysis
abstract
Program 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
PLDI2