Derek C. Oppen

dblp:36/2612 · DBLP profile ↗
← Back
15ranked-venue papers
8as first author
0since 2021 · last 1983
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6 · 2 first-authorTheory of computation · 6 · 4 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 1 first-authorDatabases, data management, data science and information retrieval · 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.

Theoretical computer science
8 papers
Automated reasoning and model checking · 64% Computational complexity · 15% Logic in computer science · 13%
Software engineering, system software, and programming languages
6 papers
Program verification · 65% Compilers and program optimization · 22% Programming languages and type systems · 8%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Distributed systems · 100%

Topics — the 21 heaviest of 25, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Automated reasoning and model checking
decision procedures
0.061980
Reasoning About Recursively Defined Data Structures · J. ACM 1980
Fast Decision Procedures Based on Congruence Closure · J. ACM 1980
Simplification by Cooperating Decision Procedures · ACM Trans. Program. Lang. Syst. 1979
Distributed systems › middleware
naming and directory services
0.011983
The Clearinghouse: A Decentralized Agent for Locating Named Objects in a Distributed Environment · ACM Trans. Inf. Syst. 1983
Distributed systems
replication
0.011983
The Clearinghouse: A Decentralized Agent for Locating Named Objects in a Distributed Environment · ACM Trans. Inf. Syst. 1983
Compilers and program optimization
pretty printing
0.011980
Prettyprinting · ACM Trans. Program. Lang. Syst. 1980
Automated reasoning and model checking › decision procedures
congruence closure
0.011980
Fast Decision Procedures Based on Congruence Closure · J. ACM 1980
Automated reasoning and model checking
satisfiability
0.011980
Fast Decision Procedures Based on Congruence Closure · J. ACM 1980
Program verification › program logic
hoare logic
0.011978
Unrestricted Procedure Calls in Hoare's Logic · POPL 1978
Logic in computer science › rewriting
canonical form
0.011978
A Simplifier Based on Efficient Decision Algorithms · POPL 1978
Computational complexity
decidability
0.011978
Reasoning about Recursively Defined Data Structures · POPL 1978
Computational complexity › implicit computational complexity
elementary recursive bounds
0.011978
Reasoning about Recursively Defined Data Structures · POPL 1978
Algorithms and data structures › data structure design
union-find
0.011977
Fast Decision Algorithms Based on Union and Find · FOCS 1977
Program verification
correctness proof
0.011975
An Assertion Language for Data Structures · POPL 1975
Program verification › program logic
hoare axiomatics
0.011975
Proving Assertions about Programs that Manipulate Data Structures · STOC 1975
Program verification › invariant generation
inductive assertions
0.011975
Proving Assertions about Programs that Manipulate Data Structures · STOC 1975
Logic in computer science › formal arithmetic
presburger arithmetic
0.011973
Elementary Bounds for Presburger Arithmetic · STOC 1973
Logic in computer science
quantifier elimination
0.011973
Elementary Bounds for Presburger Arithmetic · STOC 1973
Computational complexity › implicit computational complexity
elementary complexity
0.011980
Reasoning About Recursively Defined Data Structures · J. ACM 1980
Algorithms and data structures › data streams
streaming algorithms
0.011980
Prettyprinting · ACM Trans. Program. Lang. Syst. 1980
Program analysis › static analysis › pointer analysis
aliasing analysis
0.011978
Unrestricted Procedure Calls in Hoare's Logic · POPL 1978
Programming languages and type systems
program manipulation
0.011978
A Simplifier Based on Efficient Decision Algorithms · POPL 1978
Logic in computer science › model theory
decidable theories
0.011973
Elementary Bounds for Presburger Arithmetic · STOC 1973

Methods — techniques the papers use, named apart from their topics

parallel processes · 0.0decision algorithm · 0.0buffering · 0.0replication · 0.0distributed lookup · 0.0satisfiability checking · 0.0quantifier-free theory decision procedure · 0.0nelson-oppen combination · 0.0congruence closure algorithm · 0.0congruence closure · 0.0NP-completeness reduction · 0.0union-find data structure · 0.0hoare logic · 0.0completeness proof · 0.0axioms and inference rules · 0.0axiomatic semantics · 0.0
YearPublicationVenuePosition
1983 The Clearinghouse: A Decentralized Agent for Locating Named Objects in a Distributed Environment
abstract
The problem of naming and locating objects in a distributed environment is considered, and the clearinghouse, a decentralized agent for supporting the naming of these "network-visible" objects, is described.The objects "known" to the clearinghouse are of many types and include workstations, file servers, print servers, mail servers, clearinghouse servers, and human user.All objects known to the clearinghouse are named using the same convention, and the clearinghouse provides information about objects in a uniform fashion, regardless of their type.The clearinghouse also supports aliases.The clearinghouse binds a name to a set of properties of various types.For instance, the name of a user may be associated with the location of his local workstation, mailbox, and nonlocation information such as password and comments.The clearinghouse is decentralized and replicated.That is, instead of one global clearinghouse server, there are many local clearinghouse servers, each storing a copy of a portion of the global database.The totality of services supplied by these clearinghouse servers is called "the clearinghouse."Decentralization and replication increase efficiency, security, and reliability.A request to the clearinghouse to bind a name to its set of properties may originate anywhere in the system and be directed to any clearinghouse server.A clearinghouse client need not be concerned with the question of which clearinghouse server actually contains the binding--the clearinghouse stub in the client in conjunction with distributed clearinghouse servers automatically fmds the mapping ff it exists.Updates to the various copies of a mapping may occur asynchronously and be interleaved with requests for bindings of names to properties; updates to the various copies are not treated as indivisible transactions.Any resulting inconsistency between the various copies is only transient: the clearinghouse automatically arbitrates between conflicting updates to restore consistency.
Derek C. Oppen, Yogen K. Dalal
ACM Trans. Inf. Syst.1
1981 The Logic of Aliasing
Robert Cartwright, Derek C. Oppen
Acta Informatica2
1980 Fast Decision Procedures Based on Congruence Closure
abstract
The 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. ACM2
1980 Reasoning About Recursively Defined Data Structures
abstract
A decision procedure is given for the quantifier-free theory of recursively defined data structures which, for a conjunction of length n, decides its satisfiability in time linear in n.The first-order theory of recursively defined data structures, in particular the first-order theory of LISP list structure (the theory of cons, car, and cdr), is shown to be decidable but not elementary recursive.(This answers an open question posed by John McCarthy.)
Derek C. Oppen
J. ACM1
1980 Complexity, Convexity and Combinations of Theories
Derek C. Oppen
Theor. Comput. Sci.1
1980 Prettyprinting
abstract
An algorithm for prettyprinting is given. For an input stream of length n and an output device with linewidth m , the algorithm requires time O ( n ) and space O ( m ). The algorithm is described in terms of two parallel processes: the first scans the input stream to determine the space required to print logical blocks of tokens; the second uses this information to decide where to break lines of text; the two processes communicate by means of a buffer of size O ( m ). The algorithm does not wait for the entire stream to be input, but begins printing as soon as it has received a full line of input. The algorithm is easily implemented.
Derek C. Oppen
ACM Trans. Program. Lang. Syst.1
1979 Simplification by Cooperating Decision Procedures
abstract
A 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.2
1978 Unrestricted Procedure Calls in Hoare's Logic
abstract
This paper presents a new version of Hoare's logic including generalized procedure call and assignment rules which correctly handle aliased variables. Formal justifications are given for the new rules.
Robert Cartwright, Derek C. Oppen
POPL2
1978 A Simplifier Based on Efficient Decision Algorithms
abstract
We describe a simplifier for use in program manipulation and verification. The simplifier finds a normal form for any expression over the language consisting of individual variables, the usual boolean connectives, the conditional function cond (denoting if-then-else), the integers (numerals), the arithmetic functions and predicates +, - and ≤, the LISP constants, functions and predicates nil, car, cdr, cons and atom, the functions store and select for storing into and selecting from arrays, and uninterpreted function symbols. Individual variables range over the union of the rationals, the set of arrays, the LISP s-expressions and the booleans true and false. The constant, function and predicate symbols take their natural interpretations.The simplifier is complete; that is, it simplifies every valid formula to true. Thus it is also a decision procedure for the quantifier-free theory of rationals, arrays and s-expressions under the above functions and predicates.The organization of the simplifier is based on a method for combining decision algorithms for several theories into a single decision algorithm for a larger theory containing the original theories. More precisely, given a set S of functions and predicates over a fixed domain, a satisfiability program for S is a program which determines the satisfiability of conjunctions of literals (signed atomic formulas) whose predicates and function signs are in S. We give a general procedure for combining satisfiability programs for sets S and T into a single satisfiability program for S ∪ T, given certain conditions on S and T. We show how a satisfiability program for a set S can be used to write a complete simplifier for expressions containing functions and predicates of S as well as uninterpreted function symbols.The simplifier described in this paper is currently used in the Stanford Pascal Verifier.
Charles G. Nelson, Derek C. Oppen
POPL2
1978 Reasoning about Recursively Defined Data Structures
abstract
A decision algorithm is given for the quantifier-free theory of recursively defined data structures which, for a conjunction of length n, decides its satisfiability in time linear in n. The first-order theory of recursively defined data structures, in particular the first-order theory of LISP list structure (the theory of CONS, CAR, CDR), is shown to be decidable but not elementary recursive.
Derek C. Oppen
POPL1
1978 A 2^2^2^pn Upper Bound on the Complexity of Presburger Arithmetic
Derek C. Oppen
J. Comput. Syst. Sci.1
1977 Fast Decision Algorithms Based on Union and Find
Greg Nelson, Derek C. Oppen
FOCS2
1975 An Assertion Language for Data Structures
abstract
In this paper we wish to consider the problem of proving assertions about programs that construct and alter arbitrarily complex data structures. In recent years several papers have been written on the subject of proving assertions about such programs; however, the class of data structures considered has generally been a proper sub-class of the class of all data structures, such as the classes of linear lists or trees. [Burstall 1972] discusses the problem of what he calls Distinct Non-repeating Lists and Distinct Non-repeating Trees. [Kowaltowski 1973] extends Burstall's approach. His approach is likewise basically tree-oriented but is applicable to more general data structures. [Laventhal 1974] restricts his attention to 'simple singly-linked lists', noting the problem of providing 'a complete framework for correctness proofs' if one attempts to handle very general data structures. [Morris 1972] discusses the question of designing a programming language for general data structures in order to facilitate verification of programs written in such a language. [Standish 1973] provides a set of axioms for the class of data structures in which, for instance, two data structures are equal iff they are component-wise equal.
Stephen A. Cook, Derek C. Oppen
POPL2
1975 Proving Assertions about Programs that Manipulate Data Structures
abstract
In this paper we wish to consider the problem of proving assertions about programs that construct and alter data structures. Our method will be to define a suitable assertion language L for data structures, to define a simple programming language L' for constructing and altering data structures, to give axioms and rules of inference (in the style of [Hoare 1969]) which specify the effect of program segments on data structures (described by formulas in L) and finally to prove that these axioms are correct (relative to a formal definition of the semantics of L') and, in a reasonable sense, complete. Thus our intention is to provide a complete theoretical framework for describing arbitrary data structures and proving assertions about programs that manipulate them.
Derek C. Oppen, Stephen A. Cook
STOC1
1973 Elementary Bounds for Presburger Arithmetic
abstract
We consider the first-order theory whose language has as nonlogical symbols the constant symbols 0 and 1, the binary relation symbols = and This theory of integers under addition is commonly called the 'Presburger Arithmetic' and is known to be decidable for truth [Presburger (1929), Hilbert and Bernays (1968)]. We prove here that there exists a decision procedure for this theory, involving quantifier elimination, for which there is a superexponential upper bound on the size of formula produced when all variables have been eliminated.
Derek C. Oppen
STOC1