Demo Data from EDBT 2026 / reviewers in the wild / expert
Malavika Samak
dblp:141/0429
· DBLP profile ↗
8ranked-venue papers
7as first author
0since 2021 · last 2020
0000-0003-2719-9884ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 6 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 |
Concurrent programming · 54% Software testing · 26% Program verification · 9% | |
| Databases, data mining, and information retrieval
1 paper |
Query processing and optimization · 100% |
Topics — the 12 heaviest of 14, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
concurrency bugs |
1.1 | 6 | 2016 | Directed synthesis of failing concurrent executions · OOPSLA 2016 Synthesizing tests for detecting atomicity violations · ESEC/SIGSOFT FSE 2015 Synthesizing racy tests · PLDI 2015 |
Concurrent programming
deadlock detection |
0.8 | 4 | 2016 | Directed synthesis of failing concurrent executions · OOPSLA 2016 Omen+: a precise dynamic deadlock detector for multithreaded Java libraries · SIGSOFT FSE 2014 Trace driven dynamic deadlock detection and reproduction · PPoPP 2014 |
Software testing
concurrency testing |
0.4 | 2 | 2016 | Directed synthesis of failing concurrent executions · OOPSLA 2016 Multithreaded test synthesis for deadlock detection · OOPSLA 2014 |
Program verification
equivalence checking |
0.4 | 1 | 2020 | Synthesizing replacement classes · Proc. ACM Program. Lang. 2020 |
Query processing and optimization
query optimization |
0.3 | 1 | 2017 | Optimizing Big-Data Queries Using Program Synthesis · SOSP 2017 |
Concurrent programming › concurrency bug detection
atomicity violation detection |
0.2 | 1 | 2015 | Synthesizing tests for detecting atomicity violations · ESEC/SIGSOFT FSE 2015 |
Software testing › concurrency testing
concurrent test generation |
0.2 | 1 | 2015 | Synthesizing racy tests · PLDI 2015 |
Concurrent programming › concurrency bug detection
data race detection |
0.2 | 1 | 2015 | Synthesizing racy tests · PLDI 2015 |
Program analysis
dynamic analysis |
0.2 | 1 | 2015 | Synthesizing racy tests · PLDI 2015 |
Software testing
test generation |
0.2 | 1 | 2015 | Synthesizing racy tests · PLDI 2015 |
Concurrent programming › deadlock detection
dynamic deadlock detection |
0.2 | 1 | 2014 | Trace driven dynamic deadlock detection and reproduction · PPoPP 2014 |
Concurrent programming › concurrency bugs
deadlock |
0.1 | 1 | 2014 | Trace driven dynamic deadlock detection and reproduction · PPoPP 2014 |
Methods — techniques the papers use, named apart from their topics
static analysis · 0.8dynamic analysis · 0.8test synthesis · 0.6template-based synthesis · 0.6program synthesis · 0.6synthesis · 0.4equivalence predicate · 0.4fuzzing · 0.2directed synthesis · 0.2dynamic race detection · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Synthesizing replacement classesabstractWe present a new technique for automatically synthesizing replacement classes. The technique starts with an original class O and a potential replacement class R, then uses R to synthesize a new class that implements the same interface and provides the same functionality as O. Critically, our technique works with a synthe- sized inter-class equivalence predicate between the states of O and R. It uses this predicate to ensure that original and synthesized methods leave corresponding O and R objects in equivalent states. The predicate therefore enables the technique to synthesize individual replacement methods in isolation while still obtain- ing a replacement class that leaves the original and replacement objects in equivalent states after arbitrarily long method invocation sequences. We have implemented the technique as part of a tool, named Mask, and evaluated it using open-source Java classes. The results highlight the effectiveness of Mask in synthesizing replacement classes. Malavika Samak, Deokhwan Kim, Martin C. Rinard |
Proc. ACM Program. Lang. | 1 |
| 2017 | Optimizing Big-Data Queries Using Program SynthesisabstractClassical query optimization relies on a predefined set of rewrite rules to re-order and substitute SQL operators at a logical level. This paper proposes Blitz, a system that can synthesize efficient query-specific operators using automated program reasoning. Blitz uses static analysis to identify sub-queries as potential targets for optimization. For each sub-query, it constructs a template that defines a large space of possible operator implementations, all restricted to have linear time and space complexity. Blitz then employs program synthesis to instantiate the template and obtain a data-parallel operator implementation that is functionally equivalent to the original sub-query up to a bound on the input size. Matthias Schlaipfer, Kaushik Rajan, Akash Lal, Malavika Samak |
SOSP | 4 |
| 2016 | Directed synthesis of failing concurrent executionsabstractDetecting concurrency-induced bugs in multithreaded libraries can be challenging due to the intricacies associated with their manifestation. This includes invocation of multiple methods, synthesis of inputs to the methods to reach the failing location, and crafting of thread interleavings that cause the erroneous behavior. Neither fuzzing-based testing techniques nor over-approximate static analyses are well positioned to detect such subtle defects while retaining high accuracy alongside satisfactory coverage. Malavika Samak, Omer Tripp, Murali Krishna Ramanathan |
OOPSLA | 1 |
| 2015 | Synthesizing racy testsabstractSubtle concurrency errors in multithreaded libraries that arise because of incorrect or inadequate synchronization are often difficult to pinpoint precisely using only static techniques. On the other hand, the effectiveness of dynamic race detectors is critically dependent on multithreaded test suites whose execution can be used to identify and trigger races. Usually, such multithreaded tests need to invoke a specific combination of methods with objects involved in the invocations being shared appropriately to expose a race. Without a priori knowledge of the race, construction of such tests can be challenging. In this paper, we present a lightweight and scalable technique for synthesizing precisely these kinds of tests. Given a multithreaded library and a sequential test suite, we describe a fully automated analysis that examines sequential execution traces, and produces as its output a concurrent client program that drives shared objects via library method calls to states conducive for triggering a race. Experimental results on a variety of well-tested Java libraries yield 101 synthesized multithreaded tests in less than four minutes. Analyzing the execution of these tests using an off-the-shelf race detector reveals 187 harmful races, including several previously unreported ones. Our implementation, named NARADA, and the results of our experiments are available at http://www.csa.iisc.ernet.in/~sss/tools/narada. Malavika Samak, Murali Krishna Ramanathan, Suresh Jagannathan |
PLDI | 1 |
| 2015 | Synthesizing tests for detecting atomicity violationsabstractUsing thread-safe libraries can help programmers avoid the complexities of multithreading. However, designing libraries that guarantee thread-safety can be challenging. Detecting and eliminating atomicity violations when methods in the libraries are invoked concurrently is vital in building reliable client applications that use the libraries. While there are dynamic analyses to detect atomicity violations, these techniques are critically dependent on effective multithreaded tests. Unfortunately, designing such tests is non-trivial. In this paper, we design a novel and scalable approach for synthesizing multithreaded tests that help detect atomicity violations. The input to the approach is the implementation of the library and a sequential seed testsuite that invokes every method in the library with random parameters. We analyze the execution of the sequential tests, generate variable lock dependencies and construct a set of three accesses which when interleaved suitably in a multithreaded execution can cause an atomicity violation. Subsequently, we identify pairs of method invocations that correspond to these accesses and invoke them concurrently from distinct threads with appropriate objects to help expose atomicity violations. We have incorporated these ideas in our tool, named Intruder, and applied it on multiple open-source Java multithreaded libraries. Intruder is able to synthesize 40 multithreaded tests across nine classes in less than two minutes to detect 79 harmful atomicity violations, including previously unknown violations in thread-safe classes. We also demonstrate the effectiveness of Intruder by comparing the results with other approaches designed for synthesizing multithreaded tests. Malavika Samak, Murali Krishna Ramanathan |
ESEC/SIGSOFT FSE | 1 |
| 2014 | Multithreaded test synthesis for deadlock detectionabstractDesigning and implementing thread-safe multithreaded libraries can be a daunting task as developers of these libraries need to ensure that their implementations are free from concurrency bugs, including deadlocks. The usual practice involves employing software testing and/or dynamic analysis to detect deadlocks. Their effectiveness is dependent on well-designed multithreaded test cases. Unsurprisingly, developing multithreaded tests is significantly harder than developing sequential tests for obvious reasons. Malavika Samak, Murali Krishna Ramanathan |
OOPSLA | 1 |
| 2014 | Trace driven dynamic deadlock detection and reproductionabstractDynamic analysis techniques have been proposed to detect potential deadlocks. Analyzing and comprehending each potential deadlock to determine whether the deadlock is feasible in a real execution requires significant programmer effort. Moreover, empirical evidence shows that existing analyses are quite imprecise. This imprecision of the analyses further void the manual effort invested in reasoning about non-existent defects. Malavika Samak, Murali Krishna Ramanathan |
PPoPP | 1 |
| 2014 | Omen+: a precise dynamic deadlock detector for multithreaded Java librariesabstractDesigning thread-safe libraries without concurrency defects can be a challenging task. Detecting deadlocks while invoking methods in these libraries concurrently is hard due to the possible number of method invocation combinations, the object assignments to the parameters and the associated thread interleavings. In this paper, we describe the design and implementation of OMEN+ that takes a multithreaded library as the input and detects true deadlocks in a scalable manner. We achieve this by automatically synthesizing relevant multithreaded tests and analyze the associated execution traces using a precise deadlock detector. We validate the usefulness of OMEN+ by applying it on many multithreaded Java libraries and detect a number of deadlocks even in documented thread-safe libraries. The tool is available for free download at http://www.csa.iisc.ernet.in/~sss/tool/omenplus.html. Malavika Samak, Murali Krishna Ramanathan |
SIGSOFT FSE | 1 |