Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

James B. Saxe

dblp:95/1805 · DBLP profile ↗
← Back
19ranked-venue papers
3as first author
0since 2021 · last 2005
—ORCID · none

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

Theory of computation · 12 · 3 first-authorSoftware engineering, systems software and programming languages · 6Systems, architecture and hardware · 2Graphics, computer vision, multimedia, augmented reality and games · 1Applied, interdisciplinary, general and emerging computing · 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.

Theoretical computer science
8 papers
Automated reasoning and model checking · 78% Logic in computer science · 13% Computational geometry · 5%
Software engineering, system software, and programming languages
3 papers
Program verification · 81% Debugging and program repair · 19%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Interconnection networks and networks-on-chip · 54% Cloud and datacenter computing · 29% Electronic design automation · 6%
Computer networks
2 papers
Internet architecture and protocols · 62% Routing and switching · 38%

Topics — the 30 heaviest of 34, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program verification › deductive verification
extended static checking
0.122005
Simplify: a theorem prover for program checking · J. ACM 2005
Extended Static Checking for Java · PLDI 2002
Program verification › deductive verification
verification condition generation
0.122002
Extended Static Checking for Java · PLDI 2002
Avoiding exponential explosion: generating compact verification conditions · POPL 2001
Debugging and program repair
error localization
0.112005
Simplify: a theorem prover for program checking · J. ACM 2005
Program verification
theorem proving
0.112005
Simplify: a theorem prover for program checking · J. ACM 2005
Automated reasoning and model checking
decision procedures
0.112005
Simplify: a theorem prover for program checking · J. ACM 2005
Automated reasoning and model checking › deduction
quantified reasoning
0.112005
Simplify: a theorem prover for program checking · J. ACM 2005
Automated reasoning and model checking
theorem proving
0.122003
Theorem Proving Using Lazy Proof Explication · CAV 2003
Extended Static Checking for Java · PLDI 2002
Logic in computer science
proof theory
0.012003
Theorem Proving Using Lazy Proof Explication · CAV 2003
Automated reasoning and model checking › model checking
compositional model checking
0.012000
Induction in Compositional Model Checking · CAV 2000
Automated reasoning and model checking
model checking
0.012000
Induction in Compositional Model Checking · CAV 2000
Interconnection networks and networks-on-chip › network scheduling
switch scheduling
0.021993
High Speed Switch Scheduling for Local Area Networks · ACM Trans. Comput. Syst. 1993
High Speed Switch Scheduling for Local Area Networks · ASPLOS 1992
Cloud and datacenter computing › datacenter network
bandwidth reservation
0.011993
High Speed Switch Scheduling for Local Area Networks · ACM Trans. Comput. Syst. 1993
Program verification
deductive verification
0.012001
Avoiding exponential explosion: generating compact verification conditions · POPL 2001
Program verification › predicate transformers
weakest precondition
0.012001
Avoiding exponential explosion: generating compact verification conditions · POPL 2001
Internet architecture and protocols
local area network
0.011992
High Speed Switch Scheduling for Local Area Networks · ASPLOS 1992
Routing and switching
switch architecture
0.011992
High Speed Switch Scheduling for Local Area Networks · ASPLOS 1992
Computational geometry
convex hull
0.011987
A Linear Time Algorithm for Computing the Voronoi Diagram of a Convex Polygon · STOC 1987
Computational geometry › convex hull
three-dimensional convex hull
0.011987
A Linear Time Algorithm for Computing the Voronoi Diagram of a Convex Polygon · STOC 1987
Computational geometry
voronoi diagram
0.011987
A Linear Time Algorithm for Computing the Voronoi Diagram of a Convex Polygon · STOC 1987
Internet architecture and protocols
quality of service
0.011993
High Speed Switch Scheduling for Local Area Networks · ACM Trans. Comput. Syst. 1993
Internet architecture and protocols › resource reservation
bandwidth reservation
0.011992
High Speed Switch Scheduling for Local Area Networks · ASPLOS 1992
Electronic design automation
high-level synthesis
0.011981
Optimizing Synchronous Systems · FOCS 1981
Processor architecture and microarchitecture › parallel computer organization
systolic array design
0.011981
Optimizing Synchronous Systems · FOCS 1981
Integrated circuit design
VLSI design
0.011981
Optimizing Synchronous Systems · FOCS 1981
Computational complexity
boolean function complexity
0.011981
Parity, Circuits, and the Polynomial-Time Hierarchy · FOCS 1981
Computational complexity
circuit complexity
0.011981
Parity, Circuits, and the Polynomial-Time Hierarchy · FOCS 1981
Computational complexity › circuit complexity › constant-depth circuits
constant-depth circuit lower bounds
0.011981
Parity, Circuits, and the Polynomial-Time Hierarchy · FOCS 1981
Computational complexity › boolean function complexity
parity function
0.011981
Parity, Circuits, and the Polynomial-Time Hierarchy · FOCS 1981
Computational complexity › complexity classes
polynomial hierarchy
0.011981
Parity, Circuits, and the Polynomial-Time Hierarchy · FOCS 1981
Computational complexity
relativization
0.011981
Parity, Circuits, and the Polynomial-Time Hierarchy · FOCS 1981

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

nelson-oppen method · 0.1e-graph matching · 0.1theorem proving · 0.1annotation language · 0.1lazy proof explication · 0.0SAT solving · 0.0statistical matching · 0.0parallel iterative matching · 0.0weakest precondition · 0.0two-stage VC generation · 0.0shortest path · 0.0graph transformation · 0.0reduction · 0.0lower bound proof · 0.0
YearPublicationVenuePosition
2005 Simplify: a theorem prover for program checking
abstract
This 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. ACM3
2005 Generating error traces from verification-condition counterexamples
K. Rustan M. Leino, Todd D. Millstein, James B. Saxe
Sci. Comput. Program.3
2003 Theorem Proving Using Lazy Proof Explication
Cormac Flanagan, Rajeev Joshi, Xinming Ou, James B. Saxe
CAV4
2002 Extended Static Checking for Java
abstract
Software 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
PLDI5
2001 Avoiding exponential explosion: generating compact verification conditions
abstract
Current verification condition (VC) generation algorithms, such as weakest preconditions, yield a VC whose size may be exponential in the size of the code fragment being checked. This paper describes a two-stage VC generation algorithm that generates compact VCs whose size is worst-case quadratic in the size of the source fragment, and is close to linear in practice.This two-stage VC generation algorithm has been implemented as part of the Extended Static Checker for Java. It has allowed us to check large and complex methods that would otherwise be impossible to check due to time and space constraints.
Cormac Flanagan, James B. Saxe
POPL2
2000 Induction in Compositional Model Checking
Kenneth L. McMillan, Shaz Qadeer, James B. Saxe
CAV3
1993 Finding Extrema with Unary Predicates
Feng Gao 0002, Leonidas J. Guibas, David G. Kirkpatrick, William T. Laaser, James B. Saxe
Algorithmica5
1993 Using Transformations and Verification in Circuit Design
James B. Saxe, James J. Horning, John V. Guttag, Stephen J. Garland
Formal Methods Syst. Des.1
1993 High Speed Switch Scheduling for Local Area Networks
abstract
Current technology trends make it possible to build communication networks that can support high-performance distributed computing. This paper describes issues in the design of a prototype switch for an arbitrary topology point-to-point network with link speeds of up to 1 Gbit/s. The switch deals in fixed-length ATM-style cells, which it can process at a rate of 37 million cells per second. It provides high bandwidth and low latency for datagram traffic. In addition, it supports real-time traffic by providing bandwidth reservations with guaranteed latency bounds. The key to the switch's operation is a technique called parallel iterative matching , which can quickly identify a set of conflict-free cells for transmission in a time slot. Bandwidth reservations are accommodated in the switch by building a fixed schedule for transporting cells from reserved flows across the switch; parallel iterative matching can fill unused slots with datagram traffic. Finally, we note that parallel iterative matching may not allocate bandwidth fairly among flows of datagram traffic. We describe a technique called statistical matching , which can be used to ensure fairness at the switch and to support applications with rapidly changing needs for guaranteed bandwidth.
Thomas E. Anderson, Susan S. Owicki, James B. Saxe, Charles P. Thacker
ACM Trans. Comput. Syst.3
1992 High Speed Switch Scheduling for Local Area Networks
abstract
Current technology trends make it possible to build communication networks that can support high performance distributed computing. This paper describes issues in the design of a prototype switch for an arbitrary topology point-to-point network with link speeds of up to one gigabit per second. The switch deals in fixed-length ATM-style cells, which it can process at a rate of 37 million cells per second. It provides high bandwidth and low latency for datagram traffic. In addition, it supports real-time traffic by providing bandwidth reservations with guaranteed latency bounds. The key to the switch''s operation is a technique called iterative matching, which can quickly identify a set of conflict-free cells for transmission in a time slot. Bandwidth reservations are accommodated in the switch by building a fixed schedule for transporting cells from reserved flows across the switch; parallel iterative matching can fill unused slots with datagram traffic. Finally, we note that parallel iterative matching may not allocate bandwidth fairly among flows of datagram traffic. We describe a technique called statistical matching, which can be used to ensure fairness at the switch and to support applications with rapidly changing needs for guaranteed bandwidth.
Thomas E. Anderson, Susan S. Owicki, James B. Saxe, Charles P. Thacker
ASPLOS3
1991 Retiming Synchronous Circuitry
Charles E. Leiserson, James B. Saxe
Algorithmica2
1989 A Linear-Time Algorithm for Computing the Voronoi Diagram of a Convex Polygon
Alok Aggarwal, Leonidas J. Guibas, James B. Saxe, Peter W. Shor
Discret. Comput. Geom.3
1987 A Linear Time Algorithm for Computing the Voronoi Diagram of a Convex Polygon
abstract
We present an algorithm for computing certain kinds of three-dimensional convex hulls in linear time. Using this algorithm, we show that the Voronoi diagram of n points in the plane can be computed in Θ(n) time when these points form the vertices of a convex polygon in, say, counterclockwise order. This settles an outstanding open problem in computational geometry. Our techniques can also be used to obtain linear time algorithms for computing the farthest-point Voronoi diagram and the medial axis of a convex polygon and for deleting a vertex from a general planar Voronoi diagram.
Alok Aggarwal, Leonidas J. Guibas, James B. Saxe, Peter W. Shor
STOC3
1984 Parity, Circuits, and the Polynomial-Time Hierarchy
Merrick L. Furst, James B. Saxe, Michael Sipser
Math. Syst. Theory2
1981 Parity, Circuits, and the Polynomial-Time Hierarchy
abstract
A super-polynomial lower bound is given for the size of circuits of fixed depth computing the parity function. Introducing the notion of polynomial-size, constant-depth reduction, similar results are shown for the majority, multiplication, and transitive closure functions. Connections are given to the theory of programmable logic arrays and to the relativization of the polynomial-time hierarchy.
Merrick L. Furst, James B. Saxe, Michael Sipser
FOCS2
1981 Optimizing Synchronous Systems
abstract
The complexity of integrated-circuit chips produced today makes it feasible to build inexpensive, special-purpose subsystems that rapidly solve sophisticated problems on behalf of a general-purpose host computer. This paper contributes to the design methodology of efficient VLSI algorithms. We present a transformation that converts synchronous systems into more time-efficient, systolic implementations by removing combinational rippling. The problem of determining the optimized system can be reduced to the graph-theoretic single-destination-shortest-paths problem. More importantly from an engineering standpoint, however, the kinds of rippling that can be removed from a circuit at essentially no cost can be easily characterized. For example, if the only global communication in a system is broadcasting from the host computer, the broadcast can always be replaced by local communication.
Charles E. Leiserson, James B. Saxe
FOCS2
1980 Generating Sorted Lists of Random Numbers
abstract
RandomThe empirical testing of a program often calls for generating a set of random numbers and then nnmedmtely sorting them.In this paper we consider the problem of accomplishing that process in a single step.generating a sorted list of random numbers (specifically, reals chosen uniformly from [0, 1]).The method we describe generates the randoms in linear worst-case time, is perfectly random (if it can call a perfectly random generator for a single uniform), and can be described in just a few lines of Algol or Pascal code.If the numbers are not requtred to be generated all at once {but are rather to be used one at a time), then the method can be implemented as a subroutine to produce the "next" number m constant tnne and requires only constant storage Key Words and Phrases: random number generation, sorting, probabilistic methods in algorithm design, linear-time algorithms CR Categories: 5.25, 5.
Jon Louis Bentley, James B. Saxe
ACM Trans. Math. Softw.2
1979 Transforming Static Data Structures to Dynamic Structures (Abridged Version)
abstract
In this paper we will investigate transformations that serve as tools in the design of new data structures. Specifically, we study general methods for converting static structures (in which all elements are known before any searches are performed) to dynamic structures (in which the insertion of a new element can be mixed with searches). We will see three classes of such transformations (each based on a different counting scheme for representing the integers) and then use a combinatorial model to show the optimality of many of the transformations. Issues such as online data structures and deletion of elements are also examined. To demonstrate the applicability of these tools, we will study six new data structures that have been developed by applying the transformations.
James B. Saxe, Jon Louis Bentley
FOCS1
1979 On the number of range queries in k-space
James B. Saxe
Discret. Appl. Math.1