VLDB 2026 Research / reviewers in the wild / expert
James C. Corbett
dblp:42/5495
· DBLP profile ↗
27ranked-venue papers
15as first author
0since 2021 · last 2013
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 19 · 12 first-authorSystems, architecture and hardware · 3 · 1 first-authorTheory of computation · 3 · 1 first-authorDatabases, data management, data science and information retrieval · 2Applied, interdisciplinary, general and emerging 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.
| Computer architecture, parallel and distributed computing, and storage systems
9 papers |
Distributed systems · 84% Embedded and real-time systems · 8% Cloud and datacenter computing · 5% | |
| Software engineering, system software, and programming languages
14 papers |
Program verification · 54% Program analysis · 25% Concurrent programming · 14% |
Topics — the 30 heaviest of 36, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Distributed systems
distributed database |
0.3 | 2 | 2013 | Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013 Spanner: Google's Globally-Distributed Database · OSDI 2012 |
Distributed systems
consensus |
0.2 | 1 | 2013 | Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013 |
Distributed systems
replication |
0.2 | 1 | 2013 | Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013 |
Distributed systems › replication › update propagation
synchronous replication |
0.2 | 1 | 2013 | Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013 |
Program verification
model checking |
0.1 | 7 | 2000 | Using shape analysis to reduce finite-state models of concurrent Java programs · ACM Trans. Softw. Eng. Methodol. 2000 Bandera: a source-level interface for model checking Java programs · ICSE 2000 Bandera: extracting finite-state models from Java source code · ICSE 2000 |
Embedded and real-time systems
real-time system analysis |
0.1 | 3 | 1998 | Analyzing Partially-Implemented Real-Time Systems · IEEE Trans. Software Eng. 1998 Analyzing Partially-Implemented Real-Time Systems · ICSE 1997 Automated Derivation of Time Bounds in Uniprocessor Concurrent Systems · IEEE Trans. Software Eng. 1994 |
Program analysis › specification mining
finite-state automaton inference |
0.0 | 2 | 2000 | Bandera: extracting finite-state models from Java source code · ICSE 2000 Constructing Compact Models of Concurrent Java Programs · ISSTA 1998 |
Distributed systems › distributed coordination and fault tolerance
consensus and replication |
0.0 | 1 | 2012 | Spanner: Google's Globally-Distributed Database · OSDI 2012 |
Program verification › model checking
state space reduction |
0.0 | 2 | 2000 | Using shape analysis to reduce finite-state models of concurrent Java programs · ACM Trans. Softw. Eng. Methodol. 2000 Evaluating Deadlock Detection Methods for Concurrent Software · IEEE Trans. Software Eng. 1996 |
Program analysis
static analysis |
0.0 | 2 | 2000 | Using shape analysis to reduce finite-state models of concurrent Java programs · ACM Trans. Softw. Eng. Methodol. 2000 Evaluating Deadlock Detection Methods for Concurrent Software · IEEE Trans. Software Eng. 1996 |
Electronic design automation
timing analysis |
0.0 | 3 | 1996 | Timing Analysis of Ada Tasking Programs · IEEE Trans. Software Eng. 1996 A Practical Technique for Bounding the Time Between Events in Concurrent Real-Time Systems · ISSTA 1993 Automated Derivation of Time Bounds in Uniprocessor Concurrent Systems · IEEE Trans. Software Eng. 1994 |
Program analysis › static analysis › pointer analysis
shape analysis |
0.0 | 1 | 2000 | Using shape analysis to reduce finite-state models of concurrent Java programs · ACM Trans. Softw. Eng. Methodol. 2000 |
Program verification › model checking
finite-state verification |
0.0 | 1 | 1999 | Patterns in Property Specifications for Finite-State Verification · ICSE 1999 |
Requirements engineering and software design › specification
specification patterns |
0.0 | 1 | 1999 | Patterns in Property Specifications for Finite-State Verification · ICSE 1999 |
Automated reasoning and model checking
temporal logic specification |
0.0 | 1 | 1999 | Patterns in Property Specifications for Finite-State Verification · ICSE 1999 |
Programming languages and type systems › concurrent programming languages
ada tasking |
0.0 | 1 | 1996 | Timing Analysis of Ada Tasking Programs · IEEE Trans. Software Eng. 1996 |
Concurrent programming
deadlock detection |
0.0 | 1 | 1996 | Evaluating Deadlock Detection Methods for Concurrent Software · IEEE Trans. Software Eng. 1996 |
Program verification › model checking
partial order reduction |
0.0 | 1 | 1996 | Evaluating Deadlock Detection Methods for Concurrent Software · IEEE Trans. Software Eng. 1996 |
Program verification › model checking
symbolic model checking |
0.0 | 1 | 1996 | Evaluating Deadlock Detection Methods for Concurrent Software · IEEE Trans. Software Eng. 1996 |
Concurrent programming
concurrency analysis |
0.0 | 1 | 1994 | Towards Scalable Compositional Analysis · SIGSOFT FSE 1994 |
Concurrent programming › concurrency bugs › deadlock
deadlock analysis |
0.0 | 1 | 1994 | An Empirical Evaluation of Three Methods for Deadlock Analysis of Ada Tasking Programs · ISSTA 1994 |
Program verification
modular verification |
0.0 | 1 | 1994 | Towards Scalable Compositional Analysis · SIGSOFT FSE 1994 |
Program verification › model checking
state space exploration |
0.0 | 1 | 1994 | Modeling and Analysis of Real-Time Ada Tasking Programs · RTSS 1994 |
Concurrent programming › concurrency semantics
trace equivalence |
0.0 | 1 | 1994 | Towards Scalable Compositional Analysis · SIGSOFT FSE 1994 |
Embedded and real-time systems › real-time analysis
real-time program analysis |
0.0 | 1 | 1994 | Modeling and Analysis of Real-Time Ada Tasking Programs · RTSS 1994 |
Embedded and real-time systems
real-time scheduling |
0.0 | 1 | 1993 | A Practical Technique for Bounding the Time Between Events in Concurrent Real-Time Systems · ISSTA 1993 |
Concurrent programming
concurrency bugs |
0.0 | 1 | 2000 | Using shape analysis to reduce finite-state models of concurrent Java programs · ACM Trans. Softw. Eng. Methodol. 2000 |
Program verification › concurrent program verification
multithreaded program verification |
0.0 | 1 | 2000 | Bandera: a source-level interface for model checking Java programs · ICSE 2000 |
Program analysis
source code analysis |
0.0 | 1 | 2000 | Bandera: extracting finite-state models from Java source code · ICSE 2000 |
Program analysis
concurrent system analysis |
0.0 | 1 | 1991 | Automated Analysis of Concurrent Systems With the Constrained Expression Toolset · IEEE Trans. Software Eng. 1991 |
Methods — techniques the papers use, named apart from their topics
truetime · 0.2regular expressions · 0.1graphical interval logic · 0.1pattern-based specification · 0.0ada · 0.0model construction · 0.0schedulability analysis · 0.0shape analysis · 0.0finite-state model extraction · 0.0static pointer analysis · 0.0timing property verification · 0.0mathematical modeling · 0.0inequality-necessary conditions · 0.0semi-decision procedure · 0.0linear programming · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2013 | Spanner: Google's Globally Distributed DatabaseabstractSpanner is Google’s scalable, multiversion, globally distributed, and synchronously replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This article describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: nonblocking reads in the past, lock-free snapshot transactions, and atomic schema changes, across all of Spanner. James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost 0001, J. J. Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson C. Hsieh, Sebastian Kanthak, Eugene Kogan, Alexander Lloyd, Sergey Melnik 0001, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Ruth Wang, Dale Woodford |
ACM Trans. Comput. Syst. | 1 |
| 2012 | Spanner: Google's Globally-Distributed Database
James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost 0001, J. J. Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson C. Hsieh, Sebastian Kanthak, Eugene Kogan, Alexander Lloyd, Sergey Melnik 0001, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Ruth Wang, Dale Woodford |
OSDI | 1 |
| 2011 | Megastore: Providing Scalable, Highly Available Storage for Interactive Services
Jason Baker, Chris Bond, James C. Corbett, J. J. Furman, Andrey Khorlin, James Larson, Jean-Michel Leon, Alexander Lloyd, Vadim Yushprakh |
CIDR | 3 |
| 2002 | Expressing checkable properties of dynamic systems: the Bandera Specification Language
James C. Corbett, Matthew B. Dwyer, John Hatcliff, Robby |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2000 | Bandera: extracting finite-state models from Java source codeabstractFinite-state verification techniques, such as model checking, have shown promise as a cost-effective means for finding defects in hardware designs. To date, the application of these techniques to software has been hindered by several obstacles. Chief among these is the problem of constructing a finite-state model that approximates the executable behavior of the software system of interest. Current best-practice involves hand-construction of models which is expensive (prohibitive for all but the smallest systems), prone to errors (which can result in misleading verification results), and difficult to optimize (which is necessary to combat the exponential complexity of verification algorithms). James C. Corbett, Matthew B. Dwyer, John Hatcliff, Shawn Laubach, Corina Pasareanu, Robby, Hongjun Zheng |
ICSE | 1 |
| 2000 | Bandera: a source-level interface for model checking Java programsabstractDespite emerging tool support for assertion-checking and testing of object-oriented programs, providing convincing evidence of program correctness remains a difficult challenge. This is especially true for multi-threaded programs. Techniques for reasoning about finite-state systems have been developing rapidly over the past decade and have the potential to form the basis of powerful software validation theologies.We have developed the Bandera toolset [1] to harness the power of existing model checking tools to apply them to reason about correctness requirements of Java programs. Bandera provides tool support for defining and managing collections of requirements for a program, for extracting compact finite-state models of the program to enable tractable analysis, and for displaying analysis results to the user through a debugger-like interface. This paper describes and illustrates the use of Bandera's source-level user interface for model checking Java programs. James C. Corbett, Matthew B. Dwyer, John Hatcliff, Robby |
ICSE | 1 |
| 2000 | Benchmarking Finite-State Verifiers
George S. Avrunin, James C. Corbett, Matthew B. Dwyer |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2000 | Using shape analysis to reduce finite-state models of concurrent Java programsabstractFinite-state verification (e.g., model checking) provides a powerful means to detect concurrency errors, which are often subtle and difficult to reproduce. Nevertheless, widespread use of this technology by developers is unlikely until tools provide automated support for extracting the required finite-state models directly from program source. Unfortunately, the dynamic features of modern languages such as Java complicate the construction of compact finite-state models for verification. In this article, we show how shape analysis, which has traditionally been used for computing alias information in optimizers, can be used to greatly reduce the size of finite-state models of concurrent Java programs by determining which heap-allocated variables are accessible only by a single thread, and which shared variables are protected by locks. We also provide several other state-space reductions based on the semantics of Java monitors. A prototype of the reductions demonstrates their effectiveness. James C. Corbett |
ACM Trans. Softw. Eng. Methodol. | 1 |
| 1999 | Patterns in Property Specifications for Finite-State VerificationabstractArticle Patterns in property specifications for finite-state verification Share on Authors: Matthew B. Dwyer Kansas State University, Department of Computing and Information Sciences, Manhattan, KS Kansas State University, Department of Computing and Information Sciences, Manhattan, KSView Profile , George S. Avrunin University of Massachusetts, Department of Mathematics and Statistics, Amherst, MA University of Massachusetts, Department of Mathematics and Statistics, Amherst, MAView Profile , James C. Corbett University of Hawai'i, Department of Information and Computer Science, Honolulu, HI University of Hawai'i, Department of Information and Computer Science, Honolulu, HIView Profile Authors Info & Claims ICSE '99: Proceedings of the 21st international conference on Software engineeringMay 1999 Pages 411–420https://doi.org/10.1145/302405.302672Online:16 May 1999Publication History 956citation2,118DownloadsMetricsTotal Citations956Total Downloads2,118Last 12 Months172Last 6 weeks21 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 Matthew B. Dwyer, George S. Avrunin, James C. Corbett |
ICSE | 3 |
| 1999 | A Formal Study of Slicing for Multi-threaded Programs with JVM Concurrency Primitives
John Hatcliff, James C. Corbett, Matthew B. Dwyer, Stefan Sokolowski, Hongjun Zheng |
SAS | 2 |
| 1998 | Constructing Compact Models of Concurrent Java ProgramsabstractFinite-state verification technology (e.g., model checking) provides a powerful means to detect concurrency errors, which are often subtle and difficult to reproduce. Nevertheless, widespread use of this technology by developers is unlikely until tools provide automated support for extracting the required finite-state models directly from program source. In this paper, we explore the extraction of compact concurrency models from Java code. In particular, we show how static pointer analysis, which has traditionally been used for computing alias information in optimizers, can be used to greatly reduce the size of finite-state models of concurrent Java programs. James C. Corbett |
ISSTA | 1 |
| 1998 | Analyzing Partially-Implemented Real-Time SystemsabstractMost analysis methods for real-time systems assume that all the components of the system are at roughly the same stage of development and can be expressed in a single notation, such as a specification or programming language. There are, however, many situations in which developers would benefit from tools that could analyze partially-implemented systems: those for which some components are given only as high-level specifications while others are fully implemented in a programming language. In this paper, we propose a method for analyzing such partially-implemented real-time systems. We consider real-time concurrent systems for which some components are implemented in Ada and some are partially specified using regular expressions and graphical interval logic (GIL), a real-time temporal logic. We show how to construct models of the partially-implemented systems that account for such properties as run-time overhead and scheduling of processes, yet support tractable analysis of nontrivial programs. The approach can be fully automated, and we illustrate it by analyzing a small example. George S. Avrunin, James C. Corbett, Laura K. Dillon |
IEEE Trans. Software Eng. | 2 |
| 1997 | Analyzing Partially-Implemented Real-Time SystemsabstractWe propose a method for analyzing partially-implemented real-time systems.Here we consider real-time concurrent systems for which some components are implemented in Ada and some are partially specified using regular expressions and Graphical Interval Logic (GIL), a real-time temporal logic.We show how to construct models of the partiallyimplemented systems that account for such properties as run-time overhead and scheduling of processes, yet support tractable analysis of nontrivial programs.The approach can be fully automated, and we illustrate it by analyzing a small example. George S. Avrunin, James C. Corbett, Laura K. Dillon |
ICSE | 2 |
| 1996 | Constructing Abstract Models of Concurrent Real-Time SoftwareabstractConcurrent real-time software is used in many safety-critical applications. Assuring the quality of such software requires the use of formal methods. Before a program can be analyzed formally, however, we must construct a mathematical model that captures the aspects of the program we want to verify. In this paper, we show how to construct mathematical models of concurrent real-time software that are suitable for analyzing the program's timing properties. Our approach differs from schedulability analysis in that we do not assume that the software has a highly restricted structure (e.g., a set of periodic tasks). Also, unlike most more abstract models of real-time systems, we account for essential properties of real implementations, such as resource constraints and run-time overhead. James C. Corbett |
ISSTA | 1 |
| 1996 | Evaluating Deadlock Detection Methods for Concurrent SoftwareabstractStatic analysis of concurrent programs has been hindered by the well-known state explosion problem. Although many different techniques have been proposed to combat this state explosion, there is little empirical data comparing the performance of the methods. This information is essential for assessing the practical value of a technique and for choosing the best method for a particular problem. In this paper, we carry out an evaluation of three techniques for combating the state explosion problem in deadlock detection: reachability searching with a partial-order state-space reduction, symbolic model checking and inequality-necessary conditions. We justify the method used for the comparison, and carefully analyze several sources of potential bias. The results of our evaluation provide valuable data on the kinds of programs to which each technique might best be applied. Furthermore, we believe that the methodological issues we discuss are of general significance in comparison of analysis techniques. James C. Corbett |
IEEE Trans. Software Eng. | 1 |
| 1996 | Timing Analysis of Ada Tasking ProgramsabstractConcurrent real-time software is increasingly used in safety-critical embedded systems. Assuring the quality of such software requires the rigor of formal methods. In order to analyze a program formally, we must first construct a mathematical model of its behavior. In this paper, we consider the problem of constructing such models for concurrent real-time software. In particular, we provide a method for building mathematical models of real-time Ada tasking programs that are accurate enough to verify interesting timing properties, and yet abstract enough to yield a tractable analysis on nontrivial programs. Our approach differs from schedulability analysis in that we do not assume that the software has a highly restricted structure (e.g. a set of periodic tasks). Also, unlike most abstract models of real-time systems, we account for essential properties of real implementations, such as resource constraints and run-time overhead. James C. Corbett |
IEEE Trans. Software Eng. | 1 |
| 1995 | Using Integer Programming to Verify General Safety and Liveness Properties
James C. Corbett, George S. Avrunin |
Formal Methods Syst. Des. | 1 |
| 1994 | An Empirical Evaluation of Three Methods for Deadlock Analysis of Ada Tasking ProgramsabstractStatic analysis of Ada tasking programs has been hindered by the well known state explosion problem that arises in the verification of concurrent systems. Many different techniques have been proposed to combat this state explosion. All proposed methods excel on certain kinds of systems, but there is little empirical data comparing the performance of the methods. In this paper, we select one representative from each of three very different approaches to the state explosion problem: partial-orders (representing state-space reductions), symbolic model checking (representing OBDD-based approaches), and inequality necessary conditions (representing integer programming-based approaches). We apply the methods to several scalable concurrency examples from the literature and to one real Ada tasking program. The results of these experiments are presented and their significance is discussed. James C. Corbett |
ISSTA | 1 |
| 1994 | Modeling and Analysis of Real-Time Ada Tasking ProgramsabstractProposes a model for real-time Ada tasking programs that naturally represents such features as processor sharing, priority preemption, and process suspension. We describe a semi-decision procedure for proving properties of the model that uses linear programming to determine the feasibility of paths explored during a state-space search of the program. We demonstrate the feasibility of this procedure by applying a prototype analyzer to several examples.> James C. Corbett |
RTSS | 1 |
| 1994 | Towards Scalable Compositional AnalysisabstractDue to the state explosion problem, analysis of large concurrent programs will undoubtedly require compositional techniques. Existing compositional techniques are based on the idea of replacing complex subsystems with simpler processes with the same interfaces to their environments, and using the simpler processes to analyze the full system. Most algorithms for proving equivalence between two processes, however, require enumerating the states of both processes. When part of a concurrent system consists of many highly coupled processes, it may not be possible to decompose the system into components that are both small enough to enumerate and have simple interfaces with their environments. In such cases, analysis of the systems by standard methods will be infeasible. In this paper, we describe a technique for proving trace equivalence of deterministic and divergence-free systems without enumerating their states. (For deterministic systems, essentially all the standard notions of process... James C. Corbett, George S. Avrunin |
SIGSOFT FSE | 1 |
| 1994 | Practical Algorithms for Online Routing on Fixed and Reconfigurable Meshes
Martin C. Herbordt, James C. Corbett, Charles C. Weems, John Spalding |
J. Parallel Distributed Comput. | 2 |
| 1994 | Automated Derivation of Time Bounds in Uniprocessor Concurrent SystemsabstractThe successful development of complex real-time systems depends on analysis techniques that can accurately assess the timing properties of those systems. This paper describes a technique for deriving upper and lower bounds on the time that can elapse between two given events in an execution of a concurrent software system running on a single processor under arbitrary scheduling. The technique involves generating linear inequalities expressing conditions that must be satisfied by all executions of such a system and using integer programming methods to find appropriate solutions to the inequalities. The technique does not require construction of the state space of the system and its feasibility has been demonstrated by using an extended version of the constrained expression toolset to analyze the timing properties of some concurrent systems with very large state spaces.> George S. Avrunin, James C. Corbett, Laura K. Dillon, Jack C. Wileden |
IEEE Trans. Software Eng. | 2 |
| 1993 | A Practical Technique for Bounding the Time Between Events in Concurrent Real-Time SystemsabstractShowing that concurrent systems satisfy timing constraints on their behavior is difficult, but may be essential for critical applications. Most methods are based on some form of reachability analysis and require construction of a state space of size that is, in general, exponential in the number of components in the concurrent system. In an earlier paper with L. K. Dillon and J. E. Wileden, we described a technique for finding bounds on the time between events without enumerating the state space, but the technique applies chiefly to the case of logically concurrent systems executing on a uniprocessor, in which events do not overlap in time. In this paper, we extend that technique to obtain upper bounds on the time between events in maximally parallel concurrent systems. Our method does not require construction of the state space and the results of preliminary experiments show that, for at least some systems with large state spaces, it is quite tractable. We also briefly describe the application of our method to the case in which there are multiple processors, but several processes run on each processor. James C. Corbett, George S. Avrunin |
ISSTA | 1 |
| 1991 | A Note on Some Languages in Uniform ACC0
David A. Mix Barrington, James C. Corbett |
Theor. Comput. Sci. | 2 |
| 1991 | Automated Analysis of Concurrent Systems With the Constrained Expression ToolsetabstractThe constrained expression approach to analysis of concurrent software systems can be used with a variety of design and programming languages and does not require a complete enumeration of the set of reachable states of the concurrent system. The construction of a toolset automating the main constrained expression analysis techniques and the results of experiments with that toolset are reported. The toolset is capable of carrying out completely automated analyses of a variety of concurrent systems, starting from source code in an Ada-like design language and producing system traces displaying the properties represented bv the analysts queries. The strengths and weaknesses of the toolset and the approach are assessed on both theoretical and empirical grounds.> George S. Avrunin, Ugo A. Buy, James C. Corbett, Laura K. Dillon, Jack C. Wileden |
IEEE Trans. Software Eng. | 3 |
| 1990 | Message-Passing Algorithms for a SIMD Torus with CoteriesabstractThis paper describes the results of an investigation into routing algorithms to be used when programming the CAAPP (Content Addressable Array Parallel Processor) [19], a SIMD mesh-connected array processor enhanced with the coterie network, a mechanism similar to reconfigurable buses. We will show that the coterie network gives the CAAPP a capability far beyond solely meshconnected processors; in fact, the performance of routing on many classes of permutations is more comparable to the Connection Machine which has a dedicated hypercube routing network. Most of the current routing algorithms for meshconnected array processors (with N PEs in an n \\Theta n Martin C. Herbordt, Charles C. Weems, James C. Corbett |
SPAA | 3 |
| 1989 | On the Relative Complexity of Some Languages in NC
David A. Mix Barrington, James C. Corbett |
Inf. Process. Lett. | 2 |