Demo Data from SIGIR 2026 / reviewers in the wild / expert
Stefano Dissegna
dblp:139/2595
· DBLP profile ↗
2ranked-venue papers
2as first author
0since 2021 · last 2016
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 2 · 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
2 papers |
Runtime systems and virtual machines · 57% Program analysis · 43% |
Topics — the 4 heaviest of 5, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.4 | 2 | 2016 | An Abstract Interpretation-Based Model of Tracing Just-in-Time Compilation · ACM Trans. Program. Lang. Syst. 2016 Tracing compilation by abstract interpretation · POPL 2014 |
Program analysis › static analysis
abstract interpretation |
0.2 | 1 | 2014 | Tracing compilation by abstract interpretation · POPL 2014 |
Program analysis
static analysis |
0.2 | 1 | 2014 | Tracing compilation by abstract interpretation · POPL 2014 |
Runtime systems and virtual machines
dynamic language implementation |
0.1 | 1 | 2014 | Tracing compilation by abstract interpretation · POPL 2014 |
Methods — techniques the papers use, named apart from their topics
abstract interpretation · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | An Abstract Interpretation-Based Model of Tracing Just-in-Time CompilationabstractTracing just-in-time compilation is a popular compilation technique for the efficient implementation of dynamic languages, which is commonly used for JavaScript, Python, and PHP. It relies on two key ideas. First, it monitors program execution in order to detect so-called hot paths, that is, the most frequently executed program paths. Then, hot paths are optimized by exploiting some information on program stores that is available and therefore gathered at runtime. The result is a residual program where the optimized hot paths are guarded by sufficient conditions ensuring some form of equivalence with the original program. The residual program is persistently mutated during its execution, for example, to add new optimized hot paths or to merge existing paths. Tracing compilation is thus fundamentally different from traditional static compilation. Nevertheless, despite the practical success of tracing compilation, very little is known about its theoretical foundations. We provide a formal model of tracing compilation of programs using abstract interpretation. The monitoring phase (viz., hot path detection) corresponds to an abstraction of the trace semantics of the program that captures the most frequent occurrences of sequences of program points together with an abstraction of their corresponding stores, for example, a type environment. The optimization phase (viz., residual program generation) corresponds to a transform of the original program that preserves its trace semantics up to a given observation as modeled by some abstraction. We provide a generic framework to express dynamic optimizations along hot paths and to prove them correct. We instantiate it to prove the correctness of dynamic type specialization and constant variable folding. We show that our framework is more general than the model of tracing compilation introduced by Guo and Palsberg [2011], which is based on operational bisimulations. In our model, we can naturally express hot path reentrance and common optimizations like dead-store elimination, which are either excluded or unsound in Guo and Palsberg’s framework. Stefano Dissegna, Francesco Logozzo, Francesco Ranzato |
ACM Trans. Program. Lang. Syst. | 1 |
| 2014 | Tracing compilation by abstract interpretationabstractTracing just-in-time compilation is a popular compilation schema for the efficient implementation of dynamic languages, which is commonly used for JavaScript, Python, and PHP. It relies on two key ideas. First, it monitors the execution of the program to detect so-called hot paths, i.e., the most frequently executed paths. Then, it uses some store information available at runtime to optimize hot paths. The result is a residual program where the optimized hot paths are guarded by sufficient conditions ensuring the equivalence of the optimized path and the original program. The residual program is persistently mutated during its execution, e.g., to add new optimized paths or to merge existing paths. Tracing compilation is thus fundamentally different than traditional static compilation. Nevertheless, despite the remarkable practical success of tracing compilation, very little is known about its theoretical foundations. Stefano Dissegna, Francesco Logozzo, Francesco Ranzato |
POPL | 1 |