EDBT 2026 Demo / reviewers in the wild / expert
Devin Coughlin
dblp:19/7249
· DBLP profile ↗
5ranked-venue papers
3as first author
1since 2021 · last 2022
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 2 first-authorArtificial intelligence and machine learning · 1 · 1 first-author · 1 since 2021Databases, data management, data science and information retrieval · 1 · 1 first-author · 1 since 2021Human-computer interaction and ubiquitous computing · 1 · 1 first-author · 1 since 2021
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
3 papers |
Program analysis · 55% Program verification · 31% Software testing · 12% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Performance modeling and evaluation · 100% |
Topics — the 8 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
dynamic analysis |
0.2 | 2 | 2012 | Measuring enforcement windows with symbolic trace interpretation: what well-behaved programs say · ISSTA 2012 Inferred call path profiling · OOPSLA 2009 |
Program verification
invariant verification |
0.2 | 1 | 2014 | Fissile type analysis: modular checking of almost everywhere invariants · POPL 2014 |
Program verification › type-based verification
refinement type checking |
0.2 | 1 | 2014 | Fissile type analysis: modular checking of almost everywhere invariants · POPL 2014 |
Program analysis
type analysis |
0.2 | 1 | 2014 | Fissile type analysis: modular checking of almost everywhere invariants · POPL 2014 |
Program analysis
static analysis |
0.1 | 1 | 2012 | Measuring enforcement windows with symbolic trace interpretation: what well-behaved programs say · ISSTA 2012 |
Program analysis › dynamic analysis
call path profiling |
0.1 | 1 | 2009 | Inferred call path profiling · OOPSLA 2009 |
Performance modeling and evaluation
profiling |
0.1 | 1 | 2009 | Inferred call path profiling · OOPSLA 2009 |
Compilers and program optimization › dynamic optimization
profile-guided optimization |
0.0 | 1 | 2009 | Inferred call path profiling · OOPSLA 2009 |
Methods — techniques the papers use, named apart from their topics
symbolic analysis · 0.2dependent refinement types · 0.2symbolic trace interpretation · 0.1dynamic measurement · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Extracting and Visualizing Wildlife Trafficking Events from Wildlife Trafficking ReportsabstractExperts combating wildlife trafficking manually sift through articles about seizures and arrests, which is time consuming and make identifying trends difficult. We apply natural language processing techniques to automatically extract data from reports published by the Eco Activists for Governance and Law Enforcement (EAGLE). We expanded Python spaCy's pre-trained pipeline and added a custom named entity ruler, which identified 15 fully correct and 36 partially correct events in 15 reports against an existing baseline, which did not identify any fully correct events. The extracted wildlife trafficking events were inserted to a database. Then, we created visualizations to display trends over time and across regions to support domain experts. These are accessible on our website, Wildlife Trafficking in Africa. Devin Coughlin, Maylee Gagnon, Victoria Grasso, Guanyi Mou, Kyumin Lee, Renata Konrad, Patricia Raxter, Meredith Gore |
ASONAM | 1 |
| 2014 | Fissile type analysis: modular checking of almost everywhere invariantsabstractWe present a generic analysis approach to the imperative relationship update problem, in which destructive updates temporarily violate a global invariant of interest. Such invariants can be conveniently and concisely specified with dependent refinement types, which are efficient to check flow-insensitively. Unfortunately, while traditional flow-insensitive type checking is fast, it is inapplicable when the desired invariants can be temporarily broken. To overcome this limitation, past works have directly ratcheted up the complexity of the type analysis and associated type invariants, leading to inefficient analysis and verbose specifications. In contrast, we propose a generic lifting of modular refinement type analyses with a symbolic analysis to efficiently and effectively check concise invariants that hold almost everywhere. The result is an efficient, highly modular flow-insensitive type analysis to optimistically check the preservation of global relationship invariants that can fall back to a precise, disjunctive symbolic analysis when the optimistic assumption is violated. This technique permits programmers to temporarily break and then re-establish relationship invariants--a flexibility that is crucial for checking relationships in real-world, imperative languages. A significant challenge is selectively violating the global type consistency invariant over heap locations, which we achieve via almost type-consistent heaps. To evaluate our approach, we have encoded the problem of verifying the safety of reflective method calls in dynamic languages as a refinement type checking problem. Our analysis is capable of validating reflective call safety at interactive speeds on commonly-used Objective-C libraries and applications. Devin Coughlin, Bor-Yuh Evan Chang |
POPL | 1 |
| 2012 | Measuring enforcement windows with symbolic trace interpretation: what well-behaved programs sayabstractA static analysis design is sufficient if it can prove the property of interest with an acceptable number of false alarms. Ultimately, the only way to confirm that an analysis design is sufficient is to implement it and run it on real-world programs. If the evaluation shows that the design is insufficient, the designer must return to the drawing board and repeat the process--wasting expensive implementation effort over and over again. In this paper, we make the observation that there is a minimal range of code needed to prove a property of interest under an ideal static analysis; we call such a range of code a validation scope. Armed with this observation, we create a dynamic measurement framework that quantifies validation scopes and thus enables designers to rule out insufficient designs at lower cost. A novel attribute of our framework is the ability to model aspects of static reasoning using dynamic execution measurements. To evaluate the flexibility of our framework, we instantiate it on an example property--null dereference errors--and measure validation scopes on real-world programs. We use a broad range of metrics that capture the difficulty of analyzing programs along varying dimensions. We also examine how validation scopes evolve as developers fix null dereference errors and as code matures. We find that bug fixes shorten validation scopes, that longer validation scopes are more likely to be buggy, and that overall validation scopes are remarkably stable as programs evolve. Devin Coughlin, Bor-Yuh Evan Chang, Amer Diwan, Jeremy G. Siek |
ISSTA | 1 |
| 2009 | Program Metamorphosis
Christoph Reichenbach, Devin Coughlin, Amer Diwan |
ECOOP | 2 |
| 2009 | Inferred call path profilingabstractPrior work has found call path profiles to be useful for optimizers and programmer-productivity tools. Unfortunately, previous approaches for collecting path profiles are expensive: they need to either execute additional instructions (to track calls and returns) or they need to walk the stack. The state-of-the-art techniques for call path profiling slow down the program by 7% (for C programs) and 20% (for Java programs). This paper describes an innovative technique that collects minimal information from the running program and later (offline) infers the full call paths from this information. Todd Mytkowicz, Devin Coughlin, Amer Diwan |
OOPSLA | 2 |