EDBT 2026 Demo / reviewers in the wild / expert
Richard Joiner
dblp:43/9158
· DBLP profile ↗
4ranked-venue papers
1as first author
0since 2021 · last 2014
0000-0002-9252-1940ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 1 first-authorTheory of computation · 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
4 papers |
Program analysis · 50% Program verification · 33% Compilers and program optimization · 13% | |
| Theoretical computer science
1 paper |
Automated reasoning and model checking · 100% |
Topics — the 9 heaviest of 11, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis
program slicing |
0.4 | 2 | 2014 | Specialization Slicing · ACM Trans. Program. Lang. Syst. 2014 Specialization slicing · PLDI 2014 |
Compilers and program optimization
partial evaluation |
0.2 | 1 | 2014 | Specialization slicing · PLDI 2014 |
Program verification › dynamic verification › runtime verification
runtime enforcement |
0.2 | 1 | 2014 | Efficient runtime-enforcement techniques for policy weaving · SIGSOFT FSE 2014 |
Program verification
abstraction refinement |
0.1 | 1 | 2012 | Efficient Runtime Policy Enforcement Using Counterexample-Guided Abstraction Refinement · CAV 2012 |
Program verification › abstraction refinement
counterexample-guided abstraction refinement |
0.1 | 1 | 2012 | Efficient Runtime Policy Enforcement Using Counterexample-Guided Abstraction Refinement · CAV 2012 |
Automated reasoning and model checking
runtime verification |
0.1 | 1 | 2012 | Efficient Runtime Policy Enforcement Using Counterexample-Guided Abstraction Refinement · CAV 2012 |
Program analysis
static analysis |
0.1 | 2 | 2014 | Efficient runtime-enforcement techniques for policy weaving · SIGSOFT FSE 2014 Specialization slicing · PLDI 2014 |
Program analysis
dynamic analysis |
0.1 | 1 | 2014 | Efficient runtime-enforcement techniques for policy weaving · SIGSOFT FSE 2014 |
Systems and software security
security policy enforcement |
0.0 | 1 | 2012 | Efficient Runtime Policy Enforcement Using Counterexample-Guided Abstraction Refinement · CAV 2012 |
Methods — techniques the papers use, named apart from their topics
counterexample-guided abstraction refinement · 0.4transactional introspection · 0.2static rewriting · 0.2statement indirection · 0.2program slicing · 0.2partial evaluation · 0.2model checking · 0.2automata-theoretic techniques · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2014 | Specialization slicingabstractIn this paper, we investigate opportunities to be gained from broadening the definition of program slicing. A major inspiration for our work comes from the field of partial evaluation, in which a wide repertoire of techniques have been developed for specializing programs. While slicing can also be harnessed for specializing programs, the kind of specialization obtainable via slicing has heretofore been quite restricted, compared to the kind of specialization allowed in partial evaluation. In particular, most slicing algorithms are what the partial-evaluation community calls monovariant: each program element of the original program generates at most one element in the answer. In contrast, partial-evaluation algorithms can be polyvariant, i.e., one program element in the original program may correspond to more than one element in the specialized program. Min Aung, Susan Horwitz, Richard Joiner, Thomas W. Reps |
PLDI | 3 |
| 2014 | Efficient runtime-enforcement techniques for policy weavingabstractPolicy weaving is a program-transformation technique that rewrites a program so that it is guaranteed to be safe with respect to a stateful security policy. It utilizes (i) static analysis to identify points in the program at which policy violations might occur, and (ii) runtime checks inserted at such points to monitor policy state and prevent violations from occurring. The promise of policy weaving stems from the possibility of blending the best aspects of static and dynamic analysis components. Therefore, a successful instantiation of policy weaving requires a careful balance and coordination between the two. In this paper, we examine the strategy of using a combination of transactional introspection and statement indirection to implement runtime enforcement in a policy-weaving system. Transactional introspection allows the state resulting from the execution of a statement to be examined and, if the policy would be violated, suppressed. Statement indirection serves as a light-weight runtime analysis that can recognize and instrument dynamically generated code that is not available to the static analysis. These techniques can be implemented via static rewriting so that all possible program executions are protected against policy violations. We describe our implementation of transactional introspection and statement indirection for policy weaving, and report experimental results that show the viability of the approach in the context of real-world JavaScript programs executing in a browser. Richard Joiner, Thomas W. Reps, Somesh Jha, Mohan Dhawan, Vinod Ganapathy |
SIGSOFT FSE | 1 |
| 2014 | Specialization SlicingabstractThis paper defines a new variant of program slicing, called specialization slicing , and presents an algorithm for the specialization-slicing problem that creates an optimal output slice. An algorithm for specialization slicing is polyvariant : for a given procedure р, the algorithm may create multiple specialized copies of р. In creating specialized procedures, the algorithm must decide for which patterns of formal parameters a given procedure should be specialized and which program elements should be included in each specialized procedure. We formalize the specialization-slicing problem as a partitioning problem on the elements of the possibly infinite unrolled program. To manipulate possibly infinite sets of program elements, the algorithm makes use of automata-theoretic techniques originally developed in the model-checking community. The algorithm returns a finite answer that is optimal (with respect to a criterion defined in the article). In particular, (i) each element replicated by the specialization-slicing algorithm provides information about specialized patterns of program behavior that are intrinsic to the program, and (ii) the answer is of minimal size (i.e., among all possible answers with property (i), there is no smaller one). The specialization-slicing algorithm provides a new way to create executable slices. Moreover, by combining specialization slicing with forward slicing, we obtain a method for removing unwanted features from a program. While it was previously known how to solve the feature-removal problem for single-procedure programs, it was not known how to solve it for programs with procedure calls. Min Aung, Susan Horwitz, Richard Joiner, Thomas W. Reps |
ACM Trans. Program. Lang. Syst. | 3 |
| 2012 | Efficient Runtime Policy Enforcement Using Counterexample-Guided Abstraction Refinement
Matt Fredrikson, Richard Joiner, Somesh Jha, Thomas W. Reps, Phillip A. Porras, Hassen Saïdi, Vinod Yegneswaran |
CAV | 2 |