Demo Data from EDBT 2026 / reviewers in the wild / expert
Mark Gabel
dblp:64/6605
· DBLP profile ↗
9ranked-venue papers
8as first author
0since 2021 · last 2012
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 7 first-authorSystems, architecture and hardware · 1 · 1 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
8 papers |
Program analysis · 47% Empirical software engineering · 19% Software testing · 15% | |
| Theoretical computer science
1 paper |
Automata and formal languages · 100% |
Topics — the 13 heaviest of 14, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
specification mining |
0.4 | 4 | 2012 | Testing mined specifications · SIGSOFT FSE 2012 Online inference and enforcement of temporal properties · ICSE (1) 2010 Javert: fully automatic mining of general temporal properties from dynamic traces · SIGSOFT FSE 2008 |
Software maintenance and evolution
code clone detection |
0.2 | 2 | 2010 | Scalable and systematic detection of buggy inconsistencies in source code · OOPSLA 2010 Scalable detection of semantic clones · ICSE 2008 |
Program analysis › specification mining
temporal specification mining |
0.2 | 2 | 2008 | Javert: fully automatic mining of general temporal properties from dynamic traces · SIGSOFT FSE 2008 Symbolic mining of temporal specifications · ICSE 2008 |
Software testing
specification-based testing |
0.1 | 1 | 2012 | Testing mined specifications · SIGSOFT FSE 2012 |
Software testing
test adequacy |
0.1 | 1 | 2012 | Testing mined specifications · SIGSOFT FSE 2012 |
Empirical software engineering
mining software repositories |
0.1 | 1 | 2010 | A study of the uniqueness of source code · SIGSOFT FSE 2010 |
Program analysis › dynamic analysis
runtime monitoring |
0.1 | 1 | 2010 | Online inference and enforcement of temporal properties · ICSE (1) 2010 |
Program analysis
dynamic analysis |
0.1 | 1 | 2008 | Javert: fully automatic mining of general temporal properties from dynamic traces · SIGSOFT FSE 2008 |
Compilers and program optimization › dependence analysis
program dependence graph |
0.1 | 1 | 2008 | Scalable detection of semantic clones · ICSE 2008 |
Software maintenance and evolution › code clone detection
semantic code clone detection |
0.1 | 1 | 2008 | Scalable detection of semantic clones · ICSE 2008 |
Program analysis › dynamic analysis
trace analysis |
0.1 | 1 | 2008 | Javert: fully automatic mining of general temporal properties from dynamic traces · SIGSOFT FSE 2008 |
Program analysis › static analysis
bug detection |
0.0 | 1 | 2010 | Scalable and systematic detection of buggy inconsistencies in source code · OOPSLA 2010 |
Automata and formal languages
finite automata |
0.0 | 1 | 2008 | Symbolic mining of temporal specifications · ICSE 2008 |
Methods — techniques the papers use, named apart from their topics
inductive learning · 0.2n-gram model · 0.1syntactic analysis · 0.1static analysis · 0.1online algorithm · 0.1corpus-based measurement · 0.1tree similarity · 0.1program dependence graph · 0.1pattern composition · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2012 | On the naturalness of softwareabstractNatural languages like English are rich, complex, and powerful. The highly creative and graceful use of languages like English and Tamil, by masters like Shakespeare and Avvaiyar, can certainly delight and inspire. But in practice, given cognitive constraints and the exigencies of daily life, most human utterances are far simpler and much more repetitive and predictable. In fact, these utterances can be very usefully modeled using modern statistical methods. This fact has led to the phenomenal success of statistical approaches to speech recognition, natural language translation, question-answering, and text mining and comprehension. We begin with the conjecture that most software is also natural, in the sense that it is created by humans at work, with all the attendant constraints and limitations - and thus, like natural language, it is also likely to be repetitive and predictable. We then proceed to ask whether a) code can be usefully modeled by statistical language models and b) such models can be leveraged to support software engineers. Using the widely adopted n-gram model, we provide empirical evidence supportive of a positive answer to both these questions. We show that code is also very repetitive, and in fact even more so than natural languages. As an example use of the model, we have developed a simple code completion engine for Java that, despite its simplicity, already improves Eclipse's built-in completion capability. We conclude the paper by laying out a vision for future research in this area. Abram Hindle, Earl T. Barr, Zhendong Su 0001, Mark Gabel, Premkumar T. Devanbu |
ICSE | 4 |
| 2012 | Testing mined specificationsabstractSpecifications are necessary for nearly every software engineering task, but they are often missing or incomplete. "Specification mining" is a line of research promising to solve this problem through automated tools that infer specifications directly from existing programs. The standard practice is one of inductive learning: mining tools make observations about software and inductively generalize them into specifications. Inductive reasoning is unsound, however, and existing tools commonly grapple with the problem of inferring "false" specifications, which must be manually checked. Mark Gabel, Zhendong Su 0001 |
SIGSOFT FSE | 1 |
| 2010 | Online inference and enforcement of temporal propertiesabstractThe interfaces of software components are often paired with specifications or protocols that prescribe correct and safe usage. An important class of these specifications consists of temporal safety properties over function or method call sequences. Because violations of these properties can lead to program crashes or subtly inconsistent program state, these properties are frequently the target of runtime monitoring techniques. However, the properties must be specified in advance, a time-consuming process. Recognizing this problem, researchers have proposed various specification inference techniques, but they suffer from imprecision and require a significant investment in developer time. This work presents the first fully automatic dynamic technique for simultaneously learning and enforcing general temporal properties over method call sequences. Our technique is an online algorithm that operates over a short, finite execution history. This limited view works well in practice due to the inherent temporal locality in sequential method calls on Java objects, a property we validate empirically. We have implemented our algorithm in a practical tool for Java, OCD, that operates with a high degree of precision and finds new defects and code smells in well-tested applications. Mark Gabel, Zhendong Su 0001 |
ICSE (1) | 1 |
| 2010 | Scalable and systematic detection of buggy inconsistencies in source codeabstractSoftware developers often duplicate source code to replicate functionality. This practice can hinder the maintenance of a software project: bugs may arise when two identical code segments are edited inconsistently. This paper presents DejaVu, a highly scalable system for detecting these general syntactic inconsistency bugs. Mark Gabel, Moisés Goldszmidt, Zhendong Su 0001 |
OOPSLA | 1 |
| 2010 | A study of the uniqueness of source codeabstractThis paper presents the results of the first study of the uniqueness of source code. We define the uniqueness of a unit of source code with respect to the entire body of written software, which we approximate with a corpus of 420 million lines of source code. Our high-level methodology consists of examining a collection of 6,000 software projects and measuring the degree to which each project can be ‘assembled ’ solely from portions of this corpus, thus providing a precise measure of ‘uniqueness ’ that we call syntactic redundancy. We parameterized our study over a variety of variables, the most important of which being the level of granularity at which we view source code. Our suite of experiments together consumed approximately four months of CPU time, providing quantitative answers to the following questions: at what levels of granularity is software unique, and at a given level of granularity, how unique is software? While we believe these questions to be of intrinsic interest, we discuss possible applications to genetic programming and developer productivity tools. Mark Gabel, Zhendong Su 0001 |
SIGSOFT FSE | 1 |
| 2008 | Scalable detection of semantic clonesabstractSeveral techniques have been developed for identifying similar code fragments in programs. These similar fragments, referred to as code clones, can be used to identify redundant code, locate bugs, or gain insight into program design. Existing scalable approaches to clone detection are limited to finding program fragments that are similar only in their contiguous syntax. Other, semantics-based approaches are more resilient to differences in syntax, such as re-ordered statements, related statements interleaved with other un-related statements, or the use of semantically equivalent control structures. However, none of these techniques have scaled to real world code bases. These approaches capture semantic informa-tion from Program Dependence Graphs (PDGs), program represen-tations that encode data and control dependencies between state-ments and predicates. Our definition of a code clone is also based on this representation: we consider program fragments with iso-morphic PDGs to be clones. In this paper, we present the first scalable clone detection algo-rithm based on this definition of semantic clones. Our insight is the reduction of the difficult graph similarity problem to a simpler tree similarity problem by mapping carefully selected PDG subgraphs to their related structured syntax. We efficiently solve the tree sim-ilarity problem to create a scalable analysis. We have implemented this algorithm in a practical tool and performed evaluations on sev-eral million-line open source projects, including the Linux kernel. Compared with previous approaches, our tool locates significantly more clones, which are often more semantically interesting than simple copied and pasted code fragments. Mark Gabel, Lingxiao Jiang, Zhendong Su 0001 |
ICSE | 1 |
| 2008 | Symbolic mining of temporal specificationsabstractProgram specifications are important in many phases of the software development process, but they are often omitted or incomplete. An important class of specifications takes the form of temporal properties that prescribe proper usage of components of a software system. Recent work has focused on the automated inference of temporal specifications from the static or runtime behavior of programs. Many techniques match a specification pattern (represented by a finite state automaton) to all possible combinations of program components and enumerate the possible matches. Such approaches suffer from high space complexity and have not scaled beyond simple, two-letter alternating patterns (e.g. (ab)*). In this paper, we precisely define this form of specification mining and show that its general form is NP-complete. Mark Gabel, Zhendong Su 0001 |
ICSE | 1 |
| 2008 | Javert: fully automatic mining of general temporal properties from dynamic tracesabstractProgram specifications are important for many tasks during software design, development, and maintenance. Among these, temporal specifications are particularly useful. They express formal correctness requirements of an application's ordering of specific actions and events during execution, such as the strict alternation of acquisition and release of locks. Despite their importance, temporal specifications are often missing, incomplete, or described only informally. Many techniques have been proposed that mine such specifications from execution traces or program source code. However, existing techniques mine only simple patterns, or they mine a single complex pattern that is restricted to a particular set of manually selected events. There is no practical, automatic technique that can mine general temporal properties from execution traces.In this paper, we present Javert, the first general specification mining framework that can learn, fully automatically, complex temporal properties from execution traces. The key insight behind Javert is that real, complex specifications can be formed by composing instances of small generic patterns, such as the alternating pattern ((ab)) and the resource usage pattern ((ab c)). In particular, Javert learns simple generic patterns and composes them using sound rules to construct large, complex specifications. We have implemented the algorithm in a practical tool and conducted an extensive empirical evaluation on several open source software projects. Our results are promising; they show that Javert is scalable, general, and precise. It discovered many interesting, nontrivial specifications in real-world code that are beyond the reach of existing automatic techniques. Mark Gabel, Zhendong Su 0001 |
SIGSOFT FSE | 1 |
| 2007 | CAMP: A Common API for Measuring Performance
Mark Gabel, Michael Haungs |
LISA | 1 |