EDBT 2026 Demo / reviewers in the wild / expert
Greg Nelson
dblp:54/4359
· DBLP profile ↗
24ranked-venue papers
8as first author
0since 2021 · last 2006
0000-0002-8524-5909ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 14 · 3 first-authorTheory of computation · 5 · 3 first-authorArtificial intelligence and machine learning · 2 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 1 first-authorSystems, architecture and hardware · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 first-authorHuman-computer interaction and ubiquitous computing · 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
12 papers |
Compilers and program optimization · 34% Program verification · 34% Concurrent programming · 16% | |
| Theoretical computer science
11 papers |
Automated reasoning and model checking · 69% Logic in computer science · 17% Graph algorithms and graph theory · 9% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Distributed systems · 65% Interconnection networks and networks-on-chip · 35% |
Topics — the 30 heaviest of 43, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization
code generation |
0.1 | 2 | 2006 | Denali: A practical algorithm for generating optimal code · ACM Trans. Program. Lang. Syst. 2006 Denali: A Goal-directed Superoptimizer · PLDI 2002 |
Compilers and program optimization › compiler optimization
superoptimization |
0.1 | 2 | 2006 | Denali: A practical algorithm for generating optimal code · ACM Trans. Program. Lang. Syst. 2006 Denali: A Goal-directed Superoptimizer · PLDI 2002 |
Program verification › deductive verification
extended static checking |
0.1 | 2 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 Extended Static Checking for Java · PLDI 2002 |
Compilers and program optimization › code generation
instruction selection |
0.1 | 1 | 2006 | Denali: A practical algorithm for generating optimal code · ACM Trans. Program. Lang. Syst. 2006 |
Automated reasoning and model checking
decision procedures |
0.1 | 4 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 Fast Decision Procedures Based on Congruence Closure · J. ACM 1980 Simplification by Cooperating Decision Procedures · ACM Trans. Program. Lang. Syst. 1979 |
Debugging and program repair
error localization |
0.1 | 1 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 |
Program verification
theorem proving |
0.1 | 1 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 |
Automated reasoning and model checking › deduction
quantified reasoning |
0.1 | 1 | 2005 | Simplify: a theorem prover for program checking · J. ACM 2005 |
Concurrent programming
concurrency bugs |
0.0 | 2 | 1997 | Eraser: A Dynamic Data Race Detector for Multithreaded Programs · ACM Trans. Comput. Syst. 1997 Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs · SOSP 1997 |
Concurrent programming › concurrency bug detection
data race detection |
0.0 | 2 | 1997 | Eraser: A Dynamic Data Race Detector for Multithreaded Programs · ACM Trans. Comput. Syst. 1997 Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs · SOSP 1997 |
Program analysis
dynamic analysis |
0.0 | 2 | 1997 | Eraser: A Dynamic Data Race Detector for Multithreaded Programs · ACM Trans. Comput. Syst. 1997 Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs · SOSP 1997 |
Concurrent programming › concurrency bug detection › data race detection
dynamic race detection |
0.0 | 2 | 1997 | Eraser: A Dynamic Data Race Detector for Multithreaded Programs · ACM Trans. Comput. Syst. 1997 Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs · SOSP 1997 |
Program verification
modular verification |
0.0 | 1 | 2002 | Data abstraction and information hiding · ACM Trans. Program. Lang. Syst. 2002 |
Program verification › deductive verification
verification condition generation |
0.0 | 1 | 2002 | Extended Static Checking for Java · PLDI 2002 |
Automated reasoning and model checking
automated theorem proving |
0.0 | 1 | 2002 | Denali: A Goal-directed Superoptimizer · PLDI 2002 |
Automated reasoning and model checking
satisfiability |
0.0 | 2 | 2006 | Denali: A practical algorithm for generating optimal code · ACM Trans. Program. Lang. Syst. 2006 Fast Decision Procedures Based on Congruence Closure · J. ACM 1980 |
Concurrent programming › concurrency bugs
data races |
0.0 | 1 | 1997 | Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs · SOSP 1997 |
Logic in computer science › logic programming › logic programming semantics
fixpoint semantics |
0.0 | 2 | 1994 | Adding Fair Choice to Dijkstra's Calculus · ACM Trans. Program. Lang. Syst. 1994 A Generalization of Dijkstra's Calculus · ACM Trans. Program. Lang. Syst. 1989 |
Interconnection networks and networks-on-chip › switching network › multistage interconnection network
butterfly network |
0.0 | 1 | 1994 | On the fault tolerance of the butterfly · STOC 1994 |
Distributed systems
fault tolerance |
0.0 | 1 | 1994 | On the fault tolerance of the butterfly · STOC 1994 |
Graph algorithms and graph theory
percolation |
0.0 | 1 | 1994 | On the fault tolerance of the butterfly · STOC 1994 |
Graph algorithms and graph theory
random graphs |
0.0 | 1 | 1994 | On the fault tolerance of the butterfly · STOC 1994 |
Logic in computer science › finite model theory
zero-one laws |
0.0 | 1 | 1994 | On the fault tolerance of the butterfly · STOC 1994 |
Automated reasoning and model checking
theorem proving |
0.0 | 1 | 2002 | Extended Static Checking for Java · PLDI 2002 |
Distributed systems
remote procedure call |
0.0 | 1 | 1993 | Network Objects · SOSP 1993 |
Programming languages and type systems
type systems |
0.0 | 1 | 1989 | The Modula-3 Type System · POPL 1989 |
Logic in computer science › semantics
denotational semantics |
0.0 | 1 | 1989 | A Generalization of Dijkstra's Calculus · ACM Trans. Program. Lang. Syst. 1989 |
Programming languages and type systems › object-oriented programming
object-oriented languages |
0.0 | 1 | 1993 | Network Objects · SOSP 1993 |
Program verification › data structure verification
linked data structure verification |
0.0 | 1 | 1983 | Verifying Reachability Invariants of Linked Structures · POPL 1983 |
Programming languages and type systems
language design |
0.0 | 1 | 1989 | The Modula-3 Type System · POPL 1989 |
Methods — techniques the papers use, named apart from their topics
e-graph matching · 0.2theorem proving · 0.2boolean satisfiability solving · 0.1nelson-oppen method · 0.1automated theorem proving · 0.1annotation language · 0.1lockset analysis · 0.0automatic program checking · 0.0random subgraphs · 0.0probabilistic analysis · 0.0happens-before analysis · 0.0binary rewriting · 0.0ordering theory · 0.0fixed point theory · 0.0constraint satisfaction · 0.0constraint solving · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2006 | Denali: A practical algorithm for generating optimal codeabstractThis article presents a design for the Denali-2 superoptimizer, which will generate minimum-instruction-length machine code for realistic machine architectures using automatic theorem-proving technology: specifically, using E-graph matching (a technique for pattern matching in the presence of equality information) and Boolean satisfiability solving.This article presents a precise definition of the underlying automatic programming problem solved by the Denali-2 superoptimizer. It sketches the E-graph matching phase and presents a detailed exposition and proof of soundness of the reduction of the automatic programming problem to the Boolean satisfiability problem. Rajeev Joshi, Greg Nelson, Yunhong Zhou |
ACM Trans. Program. Lang. Syst. | 2 |
| 2005 | Simplify: a theorem prover for program checkingabstractThis article provides a detailed description of the automatic theorem prover Simplify, which is the proof engine of the Extended Static Checkers ESC/Java and ESC/Modula-3. Simplify uses the Nelson--Oppen method to combine decision procedures for several important theories, and also employs a matcher to reason about quantifiers. Instead of conventional matching in a term DAG, Simplify matches up to equivalence in an E-graph, which detects many relevant pattern instances that would be missed by the conventional approach. The article describes two techniques, error context reporting and error localization, for helping the user to determine the reason that a false conjecture is false. The article includes detailed performance figures on conjectures derived from realistic program-checking problems. David Detlefs, Greg Nelson, James B. Saxe |
J. ACM | 2 |
| 2004 | Extended Static Checking for Java
Greg Nelson |
MPC | 1 |
| 2003 | Reasoning about Quantifiers by Matching in the E-graph
Greg Nelson |
CADE | 1 |
| 2002 | Extended Static Checking for JavaabstractSoftware development and maintenance are costly endeavors. The cost can be reduced if more software defects are detected earlier in the development cycle. This paper introduces the Extended Static Checker for Java (ESC/Java), an experimental compile-time program checker that finds common programming errors. The checker is powered by verification-condition generation and automatic theorem-proving techniques. It provides programmers with a simple annotation language with which programmer design decisions can be expressed formally. ESC/Java examines the annotated software and warns of inconsistencies between the design decisions recorded in the annotations and the actual code, and also warns of potential runtime errors in the code. This paper gives an overview of the checker architecture and annotation language and describes our experience applying the checker to tens of thousands of lines of Java programs. Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, Raymie Stata |
PLDI | 4 |
| 2002 | Denali: A Goal-directed SuperoptimizerabstractThis paper provides a preliminary report on a new research project that aims to construct a code generator that uses an automatic theorem prover to produce very high-quality (in fact, nearly mathematically optimal) machine code for modern architectures. The code generator is not intended for use in an ordinary compiler, but is intended to be used for inner loops and critical subroutines in those cases where peak performance is required, no available compiler generates adequately efficient code, and where current engineering practice is to use hand-coded machine language. The paper describes the design of the superoptimizer, and presents some encouraging preliminary results. Rajeev Joshi, Greg Nelson, Keith H. Randall |
PLDI | 2 |
| 2002 | Data abstraction and information hidingabstractThis article describes an approach for verifying programs in the presence of data abstraction and information hiding, which are key features of modern programming languages with objects and modules. This article draws on our experience building and using an automatic program checker, and focuses on the property ofmodular soundness: that is, the property that the separate verifications of the individual modules of a program suffice to ensure the correctness of the composite program. We found this desirable property surprisingly difficult to achieve. A key feature of our methodology for modular soundness is a new specification construct: theabstraction dependency, which reveals which concrete variables appear in the representation of a given abstract variable, without revealing the abstraction function itself. This article discusses in detail two varieties of abstraction dependencies: static and dynamic. The article also presents a new technical definition of modular soundness as a monotonicity property of verifiability with respect to scope and uses this technical definition to formally prove the modular soundness of a programming discipline for static dependencies. K. Rustan M. Leino, Greg Nelson |
ACM Trans. Program. Lang. Syst. | 2 |
| 1998 | An Extended Static Checker for Modular-3
K. Rustan M. Leino, Greg Nelson |
CC | 2 |
| 1997 | Eraser: A Dynamic Data Race Detector for Multi-Threaded ProgramsabstractArticle Eraser: a dynamic data race detector for multi-threaded programs Share on Authors: Stefan Savage Department of Computer Science and Engineering, University of Washington, Seattle Department of Computer Science and Engineering, University of Washington, SeattleView Profile , Michael Burrows Digital Equipment Corporation, Systems Research Center Digital Equipment Corporation, Systems Research CenterView Profile , Greg Nelson Digital Equipment Corporation, Systems Research Center Digital Equipment Corporation, Systems Research CenterView Profile , Patrick Sobalvarro Digital Equipment Corporation, Systems Research Center Digital Equipment Corporation, Systems Research CenterView Profile , Thomas Anderson Computer Science Division, University of California, Berkeley Computer Science Division, University of California, BerkeleyView Profile Authors Info & Claims SOSP '97: Proceedings of the sixteenth ACM symposium on Operating systems principlesOctober 1997 Pages 27–37https://doi.org/10.1145/268998.266641Published:01 October 1997 218citation1,521DownloadsMetricsTotal Citations218Total Downloads1,521Last 12 Months6Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas E. Anderson |
SOSP | 3 |
| 1997 | Eraser: A Dynamic Data Race Detector for Multithreaded ProgramsabstractMultithreaded programming is difficult and error prone. It is easy to make a mistake in synchronization that produces a data race, yet it can be extremely hard to locate this mistake during debugging. This article describes a new tool, called Eraser, for dynamically detecting data races in lock-based multithreaded programs. Eraser uses binary rewriting techniques to monitor every shared-monory reference and verify that consistent locking behavior is observed. We present several case studies, including undergraduate coursework and a multithreaded Web search engine, that demonstrate the effectiveness of this approach. Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas E. Anderson |
ACM Trans. Comput. Syst. | 3 |
| 1995 | An Animation of Euclid's Proposition 47: The Pythagorean TheoremabstractNo abstract available. Steven C. Glassman, Greg Nelson |
SCG | 2 |
| 1995 | Network Objects
Andrew Birrell, Greg Nelson, Susan S. Owicki, Edward Wobber |
Softw. Pract. Exp. | 2 |
| 1994 | On the fault tolerance of the butterflyabstractWe study the robustness of the butterfly network against random static faults. Suppose that each edge of the butterfly is present independently of other edges with probability p. Our main result is that there is a 0-1 law on the existence of a linearsized component. More formally, there is a critical probability p such that for p above p, the faulted butterfly almost surely contains a linear-sized component, whereas for p below p, the faulted butterfly almost surely does not contain a linear-sized component. 1 Introduction Given a graph G, let G=p denote the random subgraph obtained by considering each edge independently and including it in the subgraph with probability p, excluding it with probability 1 \\Gamma p. 1 We call G=p a faulted version of G. A long list of theorems illustrate the basic fact that small changes in p can lead to dramatic changes in the connectivity of G=p. In this paper we add to this list a new theorem that shows the degree of fault-tolerance of the butter... Anna R. Karlin, Greg Nelson, Hisao Tamaki |
STOC | 2 |
| 1994 | Adding Fair Choice to Dijkstra's CalculusabstractThe paper studies the incorporation of a fair nondeterministic choice operator into a generalization of Dijkstra's calculus of guarded commands. The generalization drops the law of the excluded miracle to allow commands that correspond to partial relations. Because of fairness, the new operator is not monotonic for the orderings that are generally used for proving the existence of least fixed points for recursive definitions. To prove the existence of fixed points it is necessary to consider several orderings at once, and to restrict the class of recursive definitions. Manfred Broy, Greg Nelson |
ACM Trans. Program. Lang. Syst. | 2 |
| 1993 | Network ObjectsabstractA network object is an object whose methods can be invoked over a network. This paper describes the design, implementation, and early experience with a network objects system for Modula-3. The system is novel for its overall simplicity. The paper includes a thorough description of realistic marshaling algorithms for network objects. Andrew Birrell, Greg Nelson, Susan S. Owicki, Edward Wobber |
SOSP | 2 |
| 1992 | OOP in Languages Providing Strong, Static Typing (Panel)abstractNo abstract available. David Bulman, S. Tucker Taft, Bertrand Meyer 0001, Greg Nelson, Mike Kilian |
OOPSLA | 4 |
| 1990 | Analog Wetrieval by Constraint Satisfaction
Paul Thagard, Keith J. Holyoak, Greg Nelson, David Gochfeld |
Artif. Intell. | 3 |
| 1989 | The Modula-3 Type SystemabstractThis paper presents an overview of the programming language Modula-3, and a more detailed description of its type system. Luca Cardelli, James E. Donahue, Mick J. Jordan, Bill Kalsow, Greg Nelson |
POPL | 5 |
| 1989 | A Generalization of Dijkstra's CalculusabstractDijsktra's calculus of guarded commands can be generalized and simplified by dropping the law of the excluded miracle. This paper gives a self-contained account of the generalized calculus from first principles through the semantics of recursion. The treatment of recursion uses the fixpoint method from denotational semantics. The paper relies only on the algebraic properties of predicates; individual states are not mentioned (except for motivation). To achieve this, we apply the correspondence between programs and predicates that underlies predicative programming. The paper is written from the axiomatic semantic point of view, but its contents can be described from the denotational semantic point of view roughly as follows: The Plotkin-Apt correspondence between wp semantics and the Smyth powerdomain is extended to a correspondence between the full wp/wlp semantics and the Plotkin powerdomain extended with the empty set. Greg Nelson |
ACM Trans. Program. Lang. Syst. | 1 |
| 1985 | Juno, a constraint-based graphics system
Greg Nelson |
SIGGRAPH | 1 |
| 1983 | Verifying Reachability Invariants of Linked StructuresabstractThe paper introduces a reachability predicate for linear lists, develops the elementary axiomatic theory of the predicate, and illustrates its application to program verification with a formal proof of correctness for a short program that traverses and splices linear lists. Greg Nelson |
POPL | 1 |
| 1980 | Fast Decision Procedures Based on Congruence ClosureabstractThe notion of the congruence closure of a relation on a graph is defined and several algorithms for computing it are surveyed. A simple proof is given that the congruence closure algorithm provides a decision procedure for the quantifier-free theory of equality. A decision procedure is then given for the quantifier-free theory of LISP list structure based on the congruence closure algorithm. Both decision procedures determine the satisfiability of a conjunction of literals of length n in average time O ( n log n ) using the fastest known congruence closure algorithm. It is also shown that if the axiomatization of the theory of list structure is changed slightly, the problem of determining the satisfiability of a conjunction of literals becomes NP-complete. The decision procedures have been implemented in the authors' simplifier for the Stanford Pascal Verifier. Greg Nelson, Derek C. Oppen |
J. ACM | 1 |
| 1979 | Simplification by Cooperating Decision ProceduresabstractA method for combining decision procedures for several theories into a single decision procedure for their combination is described, and a simplifier based on this method is discussed. The simplifier finds a normal form for any expression formed from individual variables, the usual Boolean connectives, the equality predicate =, the conditional function if-then-else, the integers, the arithmetic functions and predicates +, -, and ≤, the Lisp functions and predicates car, cdr, cons, and atom, the functions store and select for storing into and selecting from arrays, and uninterpreted function symbols. If the expression is a theorem it is simplified to the constant true, so the simplifier can be used as a decision procedure for the quantifier-free theory containing these functions and predicates. The simplifier is currently used in the Stanford Pascal Verifier. Greg Nelson, Derek C. Oppen |
ACM Trans. Program. Lang. Syst. | 1 |
| 1977 | Fast Decision Algorithms Based on Union and Find
Greg Nelson, Derek C. Oppen |
FOCS | 1 |