EDBT 2026 Demo / reviewers in the wild / expert
Tayfun Elmas
dblp:62/6573
· DBLP profile ↗
9ranked-venue papers
6as first author
0since 2021 · last 2013
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 6 first-authorSystems, architecture and hardware · 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
7 papers |
Concurrent programming · 41% Program verification · 32% Program analysis · 14% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Storage systems · 100% |
Topics — the 18 heaviest of 20, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
concurrency bugs |
0.3 | 3 | 2013 | CONCURRIT: a domain specific language for reproducing concurrency bugs · PLDI 2013 Goldilocks: a race and transaction-aware java runtime · PLDI 2007 VYRD: verifYing concurrent programs by runtime refinement-violation detection · PLDI 2005 |
Program verification › dynamic verification
runtime verification |
0.2 | 2 | 2011 | NDSeq: runtime checking for nondeterministic sequential specifications of parallel correctness · PLDI 2011 VYRD: verifYing concurrent programs by runtime refinement-violation detection · PLDI 2005 |
Concurrent programming › concurrency bugs
concurrency bug reproduction |
0.2 | 1 | 2013 | CONCURRIT: a domain specific language for reproducing concurrency bugs · PLDI 2013 |
Programming languages and type systems
domain-specific languages |
0.2 | 1 | 2013 | CONCURRIT: a domain specific language for reproducing concurrency bugs · PLDI 2013 |
Program analysis › data flow analysis
dynamic data flow analysis |
0.1 | 1 | 2012 | NDetermin: inferring nondeterministic sequential specifications for parallelism correctness · PPoPP 2012 |
Program analysis
specification mining |
0.1 | 1 | 2012 | NDetermin: inferring nondeterministic sequential specifications for parallelism correctness · PPoPP 2012 |
Program verification
parallel program correctness |
0.1 | 1 | 2011 | NDSeq: runtime checking for nondeterministic sequential specifications of parallel correctness · PLDI 2011 |
Program verification › dynamic verification › runtime verification
assertion checking |
0.1 | 1 | 2009 | A calculus of atomic actions · POPL 2009 |
Concurrent programming
atomicity |
0.1 | 1 | 2009 | A calculus of atomic actions · POPL 2009 |
Program verification
concurrent program verification |
0.1 | 1 | 2009 | A calculus of atomic actions · POPL 2009 |
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2007 | Goldilocks: a race and transaction-aware java runtime · PLDI 2007 |
Runtime systems and virtual machines › managed runtime
java runtime |
0.1 | 1 | 2007 | Goldilocks: a race and transaction-aware java runtime · PLDI 2007 |
Program verification › refinement
refinement proof |
0.1 | 1 | 2005 | VYRD: verifYing concurrent programs by runtime refinement-violation detection · PLDI 2005 |
Software testing
test generation |
0.0 | 1 | 2013 | CONCURRIT: a domain specific language for reproducing concurrency bugs · PLDI 2013 |
Concurrent programming
synchronization |
0.0 | 1 | 2010 | QED: a proof system based on reduction and abstraction for the static verification of concurrent software · ICSE (2) 2010 |
Concurrent programming
memory models |
0.0 | 1 | 2007 | Goldilocks: a race and transaction-aware java runtime · PLDI 2007 |
Concurrent programming › memory models
sequential consistency |
0.0 | 1 | 2007 | Goldilocks: a race and transaction-aware java runtime · PLDI 2007 |
Storage systems
file systems |
0.0 | 1 | 2005 | VYRD: verifYing concurrent programs by runtime refinement-violation detection · PLDI 2005 |
Methods — techniques the papers use, named apart from their topics
reduction · 0.2abstraction · 0.2thread schedule exploration · 0.2source instrumentation · 0.2minimum-cost boolean satisfiability · 0.1dynamic data flow analysis · 0.1runtime verification · 0.1rely-guarantee · 0.1owicki-gries · 0.1runtime monitoring · 0.1specification conformance checking · 0.1runtime instrumentation · 0.1logging · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2013 | CONCURRIT: a domain specific language for reproducing concurrency bugsabstractWe present CONCURRIT, a domain-specific language (DSL) for reproducing concurrency bugs. Given some partial information about the nature of a bug in an application, a programmer can write a CONCURRIT script to formally and concisely specify a set of thread schedules to explore in order to find a schedule exhibiting the bug. Further, the programmer can specify how these thread schedules should be searched to find a schedule that reproduces the bug. We implemented CONCURRIT as an embedded DSL in C++, which uses manual or automatic source instrumentation to partially control the scheduling of the software under test. Using CONCURRIT, we were able to write concise tests to reproduce concurrency bugs in a variety of benchmarks, including the Mozilla's SpiderMonkey JavaScript engine, Memcached, Apache's HTTP server, and MySQL. Tayfun Elmas, Jacob Burnim, George C. Necula, Koushik Sen |
PLDI | 1 |
| 2012 | NDetermin: inferring nondeterministic sequential specifications for parallelism correctnessabstractNondeterministic Sequential (NDSeq) specifications have been proposed as a means for separating the testing, debugging, and verifying of a program's parallelism correctness and its sequential functional correctness. In this work, we present a technique that, given a few representative executions of a parallel program, combines dynamic data flow analysis and Minimum-Cost Boolean Satisfiability (MinCostSAT) solving for automatically inferring a likely NDSeq specification for the parallel program. For a number of Java benchmarks, our tool NDetermin infers equivalent or stronger NDSeq specifications than those previously written manually. Jacob Burnim, Tayfun Elmas, George C. Necula, Koushik Sen |
PPoPP | 2 |
| 2011 | NDSeq: runtime checking for nondeterministic sequential specifications of parallel correctnessabstractWe propose to specify the correctness of a program's parallelism using a sequential version of the program with controlled nondeterminism. Such a nondeterministic sequential specification allows (1) the correctness of parallel interference to be verified independently of the program's functional correctness, and (2) the functional correctness of a program to be understood and verified on a sequential version of the program, one with controlled nondeterminism but no interleaving of parallel threads. Jacob Burnim, Tayfun Elmas, George C. Necula, Koushik Sen |
PLDI | 2 |
| 2010 | QED: a proof system based on reduction and abstraction for the static verification of concurrent softwareabstractWe present a proof system and supporting tool, QED, for the static verification of concurrent software. Our key idea is to simplify the verification of a program by rewriting it with larger atomic actions. We demonstrated the simplicity and effectiveness of our approach on benchmarks with intricate synchronization. Tayfun Elmas |
ICSE (2) | 1 |
| 2010 | Simplifying Linearizability Proofs with Reduction and Abstraction
Tayfun Elmas, Shaz Qadeer, Ali Sezgin, Omer Subasi, Serdar Tasiran |
TACAS | 1 |
| 2009 | A calculus of atomic actionsabstractWe present a proof calculus and method for the static verification of assertions and procedure specifications in shared-memory concurrent programs. The key idea in our approach is to use atomicity as a proof tool and to simplify the verification of assertions by rewriting programs to consist of larger atomic actions. We propose a novel, iterative proof style in which alternating use of abstraction and reduction is exploited to compute larger atomic code blocks in a sound manner. This makes possible the verification of assertions in the transformed program by simple sequential reasoning within atomic blocks, or significantly simplified application of existing concurrent program verification techniques such as the Owicki-Gries or rely-guarantee methods. Our method facilitates a clean separation of concerns where at each phase of the proof, the user worries only about only either the sequential properties or the concurrency control mechanisms in the program. We implemented our method in a tool called QED. We demonstrate the simplicity and effectiveness of our approach on a number of benchmarks including ones with intricate concurrency protocols. Tayfun Elmas, Shaz Qadeer, Serdar Tasiran |
POPL | 1 |
| 2007 | Goldilocks: a race and transaction-aware java runtimeabstractData races often result in unexpected and erroneous behavior. In addition to causing data corruption and leading programs to crash, the presence of data races complicates the semantics of an execution which might no longer be sequentially consistent. Motivated by these observations, we have designed and implemented a Java runtime system that monitors program executions and throws a DataRaceException when a data race is about to occur. Analogous to other runtime exceptions, the DataRaceException provides two key benefits. First, accesses causing race conditions are interruptedand handled before they cause errors that may be difficult to diagnose later. Second, if no DataRaceException is thrown in an execution, it is guaranteed to be sequentially consistent. This strong guarantee helps to rule out many concurrency-related possibilities as the cause of erroneous behavior. When a DataRaceException is caught, the operation, thread, or program causing it can be terminated gracefully. Alternatively, the DataRaceException can serve as a conflict-detection mechanism inoptimistic uses of concurrency. Tayfun Elmas, Shaz Qadeer, Serdar Tasiran |
PLDI | 1 |
| 2007 | Rollback Atomicity
Serdar Tasiran, Tayfun Elmas |
RV | 2 |
| 2005 | VYRD: verifYing concurrent programs by runtime refinement-violation detectionabstractWe present a runtime technique for checking that a concurrently-accessed data structure implementation, such as a file system or the storage management module of a database, conforms to an executable specification that contains an atomic method per data structure operation. The specification can be provided separately or a non-concurrent, "atomized" interpretation of the implementation can serve as the specification. The technique consists of two phases. In the first phase, the implementation is instrumented in order to record information into a log during execution. In the second, a separate verification thread uses the logged information to drive an instance of the specification and to check whether the logged execution conforms to it. We paid special attention to the general applicability and scalability of the techniques and to minimizing their concurrency and performance impact. The result is a lightweight verification method that provides a significant improvement over testing for concurrent programs.We formalize conformance to a specification using the notion of refinement: Each trace of the implementation must be equivalent to some trace of the specification. Among the novel features of our work are two variations on the definition of refinement appropriate for runtime checking: I/O and "view" refinement. These definitions were motivated by our experience with two industrial-scale concurrent data structure implementations: the Boxwood project, a B-link tree data structure built on a novel storage infrastructure [10] and the Scan file system [9]. I/O and view refinement checking were implemented as a verification tool named VRYD (VerifYing concurrent programs by Runtime Refinement-violation Detection). VYRD was applied to the verification of Boxwood, Java class libraries, and, previously, to the Scan filesystem. It was able to detect previously unnoticed subtle concurrency bugs in Boxwood and the Scan file system, and the known bugs in the Java class libraries and manually constructed examples. Experimental results indicate that our techniques have modest computational cost. Tayfun Elmas, Serdar Tasiran, Shaz Qadeer |
PLDI | 1 |