EDBT 2026 Demo / reviewers in the wild / expert
John Hatcliff
dblp:52/5739
· DBLP profile ↗
68ranked-venue papers
16as first author
13since 2021 · last 2025
0009-0001-3782-7082ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 54 · 14 first-author · 11 since 2021Theory of computation · 13 · 2 first-author · 2 since 2021Security and privacy · 2Applied, interdisciplinary, general and emerging computing · 2Systems, architecture and hardware · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Proof Engineering in Logika: Synergistically Integrating Automated and Semi-automated Program Verification
Stefan Hallerstede, Robby, John Hatcliff, Jason Belt, David S. Hardin |
FMICS | 3 |
| 2025 | End-to-End Formal Methods Integrated Development with SysMLv2 Using HAMR
John Hatcliff, Jason Belt, Robby, Clint McKenzie, Catalina Liang |
FMICS | 1 |
| 2025 | A mechanized semantics for component-based systems in the HAMR AADL runtime
Stefan Hallerstede, John Hatcliff |
Sci. Comput. Program. | 2 |
| 2025 | Automated property-based testing from AADL component contracts
John Hatcliff, Jason Belt, Robby, Jacob Legg, Danielle Stewart, Todd Carpenter |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2025 | Logika: the Sireum verification framework
Robby, John Hatcliff, Jason Belt |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2024 | Logika: The Sireum Verification Framework
Robby, John Hatcliff, Jason Belt |
FMICS | 2 |
| 2023 | Automated Property-Based Testing from AADL Component Contracts
John Hatcliff, Jason Belt, Robby, Jacob Legg, Danielle Stewart, Todd Carpenter |
FMICS | 1 |
| 2023 | Model-driven development for the seL4 microkernel using the HAMR framework
Jason Belt, John Hatcliff, Robby, John Shackleton, Jim Carciofini, Todd Carpenter, Eric Mercer, Isaac Amundson, Junaid Babar, Darren D. Cofer, David S. Hardin, Karl Hoech, Konrad Slind, Ihor Kuz, Kent McLeod |
J. Syst. Archit. | 2 |
| 2022 | Formalization of the AADL Run-Time Services
John Hatcliff, Jérôme Hugues, Danielle Stewart, Lutz Wrage |
ISoLA (2) | 1 |
| 2022 | Mechanization of a Large DSML: An Experiment with AADL and CoqabstractDomain-Specific Modeling Languages (DSMLs) rely on model-based techniques to deliver tailored languages to meet specific needs, such as system modeling, formal verification, and code generation. A DSML has specific static and dynamic behavior rules that must be properly assessed before processing the model. The definition of these rules remains a challenge. Meta-modeling techniques usually lack the foundational elements required to fully express behavioral semantics. In this context, using an interactive theorem prover provides a mathematical foundation with which the semantics of a DSML can be defined. This includes an abstract syntax tree, typing rules, and derivation of an executable simulator. In this paper, we report on an ongoing effort to capture the SAE AADL language using Coq along with specific analysis capabilities. Our contribution provides an unambiguous semantics for a large set of the language and can be used as a foundation to build rich analysis capabilities. Jérôme Hugues, Lutz Wrage, John Hatcliff, Danielle Stewart |
MEMOCODE | 3 |
| 2022 | Specification and Verification of Timing Properties in Interoperable Medical SystemsabstractTo support the dynamic composition of various devices/apps into a medical system at point-of-care, a set of communication patterns to describe the communication needs of devices has been proposed. To address timing requirements, each pattern breaks common timing properties into finer ones that can be enforced locally by the components. Common timing requirements for the underlying communication substrate are derived from these local properties. The local properties of devices are assured by the vendors at the development time. Although organizations procure devices that are compatible in terms of their local properties and middleware, they may not operate as desired. The latency of the organization network interacts with the local properties of devices. To validate the interaction among the timing properties of components and the network, we formally specify such systems in Timed Rebeca. We use model checking to verify the derived timing requirements of the communication substrate in terms of the network and device models. We provide a set of templates as a guideline to specify medical systems in terms of the formal model of patterns. A composite medical system using several devices is subject to state-space explosion. We extend the reduction technique of Timed Rebeca based on the static properties of patterns. We prove that our reduction is sound and show the applicability of our approach in reducing the state space by modeling two clinical scenarios made of several instances of patterns. Mahsa Zarneshan, Fatemeh Ghassemi, Ehsan Khamespanah, Marjan Sirjani, John Hatcliff |
Log. Methods Comput. Sci. | 5 |
| 2021 | HAMR: An AADL Multi-platform Code Generation Toolset
John Hatcliff, Jason Belt, Robby, Todd Carpenter |
ISoLA | 1 |
| 2021 | Slang: The Sireum Programming Language
Robby, John Hatcliff |
ISoLA | 2 |
| 2018 | A Unified Approach for Modeling, Developing, and Assuring Critical Systems
John Hatcliff, Brian R. Larson, Jason Belt, Robby, Yi Zhang 0051 |
ISoLA (1) | 1 |
| 2018 | Model-Based Development for High-Assurance Embedded Systems
Robby, John Hatcliff, Jason Belt |
ISoLA (1) | 2 |
| 2017 | SAFE and Secure: Deeply Integrating Security in a New Hazard AnalysisabstractSafety-critical system engineering and traditional safety analyses have for decades been focused on problems caused by natural or accidental phenomena. Security analyses, on the other hand, focus on preventing intentional, malicious acts that reduce system availability, degrade user privacy, or enable unauthorized access. In the context of safety-critical systems, safety and security are intertwined, e.g., injecting malicious control commands may lead to system actuation that causes harm. Despite this intertwining, safety and security concerns have traditionally been designed and analyzed independently of one another, and examined in very different ways. In this work we examine a new hazard analysis technique---Systematic Analysis of Faults and Errors (SAFE)---and its deep integration of safety and security concerns. This is achieved by explicitly incorporating a semantic framework of error "effects" that unifies an adversary model long used in security contexts with a fault/error categorization that aligns with previous approaches to hazard analysis. This categorization enables analysts to separate the immediate, component-level effects of errors from their cause or precise deviation from specification. Sam Procter, Eugene Y. Vasserman, John Hatcliff |
ARES | 3 |
| 2017 | Focused Certification of an Industrial Compilation and Static Verification Toolchain
Robby, John Hatcliff, Yannick Moy, Pierre Courtieu |
SEFM | 3 |
| 2015 | Towards Assurance for Plug & Play Medical Systems
Andrew L. King, Lu Feng 0001, Sam Procter, Sanjian Chen, Oleg Sokolsky, John Hatcliff, Insup Lee 0001 |
SAFECOMP | 6 |
| 2014 | An architecturally-integrated, systems-based hazard analysis for medical applicationsabstractMedical devices are increasingly being developed not as standalone units but as network-aware machines that can be integrated via high-assurance middleware and coordinated with software into clinically useful applications for Medical Application Platforms (MAP apps). While this concept is still emerging, both regulators and vendors recognize that these apps can be as powerful as purpose-built medical devices, and they are struggling to understand the appropriate techniques to support risk assessment and safety claims. Before being approved for market, the reliability of medical devices is typically ascertained by performing one of a number of hardware-centric, reliability-focused analyses. However, these techniques are not a good fit for the combined hardware and software systems that are defined by MAP apps, nor is their emphasis on reliability appropriate when the end goal is safety. In this work, we tailor a modern, systems-based hazard analysis technique (STAMP / STPA) to the domain of MAP apps by leveraging our prior work in safety-critical systems engineering for medical software. We also build on our previously developed AADL-based language and tooling for the semi-formal modeling of MAP app architectures to provide a proof-of-concept tool that aids the transition between design and analysis. This tool takes as input an architectural model annotated with both new and re-purposed constructs from AADL (as well as its error modeling annex) and produces as output a report in our proposed format. We ground our approach by using a clinically-sourced scenario that serves as a motivating example: we provide an annotated architectural model and hazard analysis report that serve as exemplars of our technique and tooling. Sam Procter, John Hatcliff |
MEMOCODE | 2 |
| 2013 | Explicating symbolic execution (xSymExe): an evidence-based verification frameworkabstractPrevious applications of symbolic execution (Sym-Exe) have focused on bug-finding and test-case generation. However, SymExe has the potential to significantly improve usability and automation when applied to verification of software contracts in safety-critical systems. Due to the lack of support for processing software contracts and ad hoc approaches for introducing a variety of over/under-approximations and optimizations, most SymExe implementations cannot precisely characterize the verification status of contracts. Moreover, these tools do not provide explicit justifications for their conclusions, and thus they are not aligned with trends toward evidence-based verification and certification. We introduce the concept of explicating symbolic execution (xSymExe) that builds on a strong semantic foundation, supports full verification of rich software contracts, explicitly tracks where over/under-approximations are introduced or avoided, precisely characterizes the verification status of each contractual claim, and associates each claim with explications for its reported verification status. We report on case studies in the use of Bakar Kiasan, our open source xSymExe tool for Spark Ada. John Hatcliff, Robby, Patrice Chalin, Jason Belt |
ICSE | 1 |
| 2012 | Bakar Alir: Supporting Developers in Construction of Information Flow Contracts in SPARKabstractThis tool paper describes the design and implementation of an interactive environment for discovering and browsing information flow in SPARK programs. SPARK is a subset of Ada that has been used in a number of industrial contexts for implementing certified safety and security critical systems. SPARK requires explicit specification of information flow properties in the form of procedure contracts. To write such contracts, developers need to understand the data and control dependencies in the program. Our tool Bakar Alir, implemented as an Eclipse Plug-in, utilizes classic slicing and chopping techniques to assist developers in writing information flow contracts. Hariharan Thiagarajan, John Hatcliff, Jason Belt, Robby |
SCAM | 2 |
| 2012 | Challenges and Research Directions in Medical Cyber-Physical SystemsabstractMedical cyber-physical systems (MCPS) are life-critical, context-aware, networked systems of medical devices. These systems are increasingly used in hospitals to provide high-quality continuous care for patients. The need to design complex MCPS that are both safe and effective has presented numerous challenges, including achieving high assurance in system software, intoperability, context-aware intelligence, autonomy, security and privacy, and device certifiability. In this paper, we discuss these challenges in developing MCPS, some of our work in addressing them, and several open research issues. Insup Lee 0001, Oleg Sokolsky, Sanjian Chen, John Hatcliff, Eunkyoung Jee, BaekGyu Kim, Andrew L. King, Margaret Mullen-Fortino, Soojin Park, Alex Roederer, Krishna K. Venkatasubramanian |
Proc. IEEE | 4 |
| 2010 | Precise and Automated Contract-Based Reasoning for Verification and Certification of Information Flow Properties of Programs with Arrays
Torben Amtoft, John Hatcliff, Edwin Rodríguez |
ESOP | 2 |
| 2010 | A type-centric framework for specifying heterogeneous, large-scale, component-oriented, architectures
Georg Jung, John Hatcliff |
Sci. Comput. Program. | 2 |
| 2008 | Specification and Checking of Software Contracts for Conditional Information Flow
Torben Amtoft, John Hatcliff, Edwin Rodríguez, Robby, Jonathan Hoag, David A. Greve |
FM | 2 |
| 2008 | Contract-Based Reasoning for Verification and Certification of Secure Information Flow Policies in Industrial Workflows
John Hatcliff |
ICFEM | 1 |
| 2007 | A type-centric framework for specifying heterogeneous, large-scale, component-oriented, architecturesabstractMaintaining integrity, consistency, and enforcing conformance in architectures of large-scale systems requires specification and enforcement of many different forms of structural constraints. While type systems have proved effective for enforcing structural constraints in programs and data structures, most architectural modeling frameworks include only weak notions of typing or rely on first-order logic constraint languages that have steep learning curves and that become unwieldy when scaling to large systems. Georg Jung, John Hatcliff |
GPCE | 2 |
| 2007 | Towards A Case-Optimal Symbolic Execution Algorithm for Analyzing Strong Properties of Object-Oriented ProgramsabstractRecent work has demonstrated that symbolic execution techniques can serve as a basis for formal analysis capable of automatically checking heap-manipulating software components against strong interface specifications. In this paper, we present an enhancement to existing symbolic execution algorithms for object-oriented programs that significantly improves upon the algorithms currently implemented in Bogor/Kiasan and JPF. To motivate and justify the new strategy for handling heap data in our enhanced approach, we present a significant empirical study of the performance of related algorithms and an interesting case counting analysis of the heap shapes that can appear in several widely used Java data structure packages. Xianghua Deng, Robby, John Hatcliff |
SEFM | 3 |
| 2007 | A correlation framework for the CORBA component model
Georg Jung, John Hatcliff |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2007 | Slicing concurrent Java programs using Indus and Kaveri
Venkatesh Prasad Ranganath, John Hatcliff |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2007 | A new foundation for control dependence and slicing for modern program structuresabstractThe notion of control dependence underlies many program analysis and transformation techniques. Despite being widely used, existing definitions and approaches to calculating control dependence are difficult to apply directly to modern program structures because these make substantial use of exception processing and increasingly support reactive systems designed to run indefinitely. This article revisits foundational issues surrounding control dependence, and develops definitions and algorithms for computing several variations of control dependence that can be directly applied to modern program structures. To provide a foundation for slicing reactive systems, the article proposes a notion of slicing correctness based on weak bisimulation, and proves that some of these new definitions of control dependence generate slices that conform to this notion of correctness. This new framework of control dependence definitions, with corresponding correctness results, is even able to support programs with irreducible control flow graphs. Finally, a variety of properties show that the new definitions conservatively extend classic definitions. These new definitions and algorithms form the basis of the Indus Java slicer, a publicly available program slicer that has been implemented for full Java. Venkatesh Prasad Ranganath, Torben Amtoft, Anindya Banerjee 0001, John Hatcliff, Matthew B. Dwyer |
ACM Trans. Program. Lang. Syst. | 4 |
| 2006 | Kiasan: A Verification and Test-Case Generation Framework for Java Based on Symbolic ExecutionabstractBest program practices in software engineering emphasize software components that are loosely coupled and can be independently developed by different vendors. While these approaches improve the process of software development, however, they present a number of challenges involving reasoning about the correctness of individual components as well as their integration. Design-by-contract reasoning offers a promising approach to reason about software components by requiring software contracts that describe the behaviors of the components. This allows one to focus at satisfying the contract of each component, i.e., it allows compositional reasoning. In this paper, we present Kiasan, a technique that combines symbolic execution, model checking, theorem proving, and constraint solving to support design-by-contract reasoning of object-oriented software. There are a number of interesting tradeoffs between Kiasan other approaches such as ESC/Java. While checking in Kiasan is sometime more expensive, Kiasan can check much stronger behavioral properties of object-oriented software including properties/software that makes extensive use of heap-allocated data. In addition, Kiasan naturally generates counter examples, visualization of code effects, and JUnit test cases that are driven by code and user-supplied specifications. We present Kiasan and describe how it is implemented on top of the Bogor framework. Furthermore, we present a case study in which Kiasan is applied to a variety of examples and we discuss insights gained from our experience. Xianghua Deng, Robby, John Hatcliff |
ISoLA | 3 |
| 2006 | Domain-specific Model Checking Using The Bogor FrameworkabstractModel checking has proven to be an effective technology for verification and debugging in hardware and more recently in software domains. We believe that recent trends in both the requirements for software systems and the processes by which systems are developed suggest that domain-specific model checking engines may be more effective than general purpose model checking tools. To overcome limitations of existing tools which tend to be monolithic and non-extensible, we have developed an extensible and customizable model checking framework called Bogor. In this tutorial, we give an overview of (a) Bogor's direct support for modeling object-oriented designs and implementations, (b) its facilities for extending and customizing its modeling language and algorithms to create domain-specific model checking engines, and (c) pedagogical materials that we have developed to describe the construction of model checking tools built on top of the Bogor infrastructure Robby, Matthew B. Dwyer, John Hatcliff |
ASE | 3 |
| 2006 | Evaluating the Effectiveness of Slicing for Model Reduction of Concurrent Object-Oriented Programs
Matthew B. Dwyer, John Hatcliff, Matthew Hoosier, Venkatesh Prasad Ranganath, Robby, Todd Wallentine |
TACAS | 2 |
| 2006 | Why you should definitely read this special section
Hubert Garavel, John Hatcliff |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2006 | Checking JML specifications using an extensible software model checking framework
Robby, Edwin Rodríguez, Matthew B. Dwyer, John Hatcliff |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2006 | TACAS 2003 Special Issue - Preface
Hubert Garavel, John Hatcliff |
Theor. Comput. Sci. | 2 |
| 2005 | Building Your Own Software Model Checker Using the Bogor Extensible Model Checking Framework
Matthew B. Dwyer, John Hatcliff, Matthew Hoosier, Robby |
CAV | 2 |
| 2005 | Extending JML for Modular Specification and Verification of Multi-threaded Programs
Edwin Rodríguez, Matthew B. Dwyer, Cormac Flanagan, John Hatcliff, Gary T. Leavens, Robby |
ECOOP | 4 |
| 2005 | A New Foundation for Control-Dependence and Slicing for Modern Program Structures
Venkatesh Prasad Ranganath, Torben Amtoft, Anindya Banerjee 0001, Matthew B. Dwyer, John Hatcliff |
ESOP | 5 |
| 2005 | Kaveri: Delivering the Indus Java Program Slicer to Eclipse
Ganeshan Jayaraman, Venkatesh Prasad Ranganath, John Hatcliff |
FASE | 3 |
| 2005 | Translating Java for Multiple Model Checkers: The Bandera Back-End
Radu Iosif, Matthew B. Dwyer, John Hatcliff |
Formal Methods Syst. Des. | 3 |
| 2004 | Pruning Interference and Ready Dependence for Slicing Concurrent Java Programs
Venkatesh Prasad Ranganath, John Hatcliff |
CC | 2 |
| 2004 | Cadena: An Integrated Development Environment for Analysis, Synthesis, and Verification of Component-Based Systems
Adam Childs, Jesse Greenwald, Venkatesh Prasad Ranganath, Xianghua Deng, Matthew B. Dwyer, John Hatcliff, Georg Jung, Prashant Shanti, Gurdip Singh |
FASE | 6 |
| 2004 | A Correlation Framework for the CORBA Component Model
Georg Jung, John Hatcliff, Venkatesh Prasad Ranganath |
FASE | 2 |
| 2004 | A Case Study in Domain-Customized Model Checking for Real-Time Component Software
Matthew Hoosier, Matthew B. Dwyer, Robby, John Hatcliff |
ISoLA | 4 |
| 2004 | SyncGen: An Aspect-Oriented Framework for Synchronization
Xianghua Deng, Matthew B. Dwyer, John Hatcliff, Masaaki Mizuno |
TACAS | 3 |
| 2004 | Checking Strong Specifications Using an Extensible Software Model Checking Framework
Robby, Edwin Rodríguez, Matthew B. Dwyer, John Hatcliff |
TACAS | 4 |
| 2004 | Verifying Atomicity Specifications for Concurrent Object-Oriented Software Using Model-Checking
John Hatcliff, Robby, Matthew B. Dwyer |
VMCAI | 1 |
| 2004 | Exploiting Object Escape and Locking Information in Partial-Order Reductions for Concurrent Object-Oriented Programs
Matthew B. Dwyer, John Hatcliff, Robby, Venkatesh Prasad Ranganath |
Formal Methods Syst. Des. | 2 |
| 2003 | Space Reductions for Model Checking Quasi-Cyclic Systems
Matthew B. Dwyer, Robby, Xianghua Deng, John Hatcliff |
EMSOFT | 4 |
| 2003 | Cadena: An Integrated Development, Analysis, and Verification Environment for Component-based SystemsabstractThe use of component models such as Enterprise Java Beans and the CORBA Component Model (CCM) in application development is expanding rapidly. Even in real-time safety/mission-critical domains, component-based development is beginning to take hold as a mechanism for incorporating non-functional aspects such as real-time, quality-of-service, and distribution. To form an effective basis for development of such systems, we believe that support for reasoning about correctness properties of component-based designs is essential. In this paper, we present Cadena - an integrated environment for building and modeling CCM systems. Cadena provides facilities for defining component types using CCM IDL, specifying dependency information and transition System semantics for these types, assembling systems from CCM components, visualizing various dependence relationships between components, specifying and verifying correctness properties of models of CCM systems derived from CCM IDL, component assembly information, and Cadena specifications, and producing CORBA stubs and skeletons implemented in Java. We are applying Cadena to avionics applications built using Boeing's Bold Stroke framework. John Hatcliff, Xianghua Deng, Matthew B. Dwyer, Georg Jung, Venkatesh Prasad Ranganath |
ICSE | 1 |
| 2003 | Slicing and partial evaluation of CORBA component model designs for avionics systemabstractThe use of component models such as Enterprise Java Beans and the CORBA Component Model (CCM) in application development is expanding rapidly. Even in real-time safety-critical and mission-critical domains, component-based development is beginning to take hold as a mechanism for in-corporating non-functional aspects such as real-time, quality-of-service, and distribution. John Hatcliff, William Deng, Matthew B. Dwyer, Georg Jung, Venkatesh Prasad Ranganath, Robby |
PEPM | 1 |
| 2003 | Bogor: an extensible and highly-modular software model checking frameworkabstractModel checking is emerging as a popular technology for reasoning about behavioral properties of a wide variety of software artifacts including: requirements models, architectural descriptions, designs, implementations, and process models. The complexity of model checking is well-known, yet cost-effective analyses have been achieved by exploiting, for example, naturally occurring abstractions and semantic properties of a target software artifact. semantic properties of target software artifacts. Adapting a model checking tool to exploit this kind of domain knowledge often requires in-depth knowledge of the tool's implementation.We believe that with appropriate tool support, domain experts will be able to develop efficient model checking-based analyses for a variety of software-related models. To explore this hypothesis, we have developed Bogor, a model checking framework with an extensible input language for defining domain-specific constructs and a modular interface design to ease the optimization of domain-specific state-space encodings, reductions and search algorithms. We present the pattern-oriented design of Bogor and discuss our experiences adapting it to efficiently model check Java programs and event-driven component-based designs. Robby, Matthew B. Dwyer, John Hatcliff |
ESEC / SIGSOFT FSE | 3 |
| 2002 | Invariant-based specification, synthesis, and verification of synchronization in concurrent programsabstractConcurrency is used in modern software systems as a means of addressing performance, availability, and reliability requirements. The collaboration of multiple independently executing components is fundamental to meeting such requirements and such collaboration is realized by synchronizing component execution.Using current technologies developers are faced with a tension between correct synchronization and performance. Developers can be confident when simple forms of synchronization are used, for example, locking all accesses to shared data. Unfortunately, such simple approaches can result in significant run-time overhead, and, in fact, there are many cases in which such simple approaches cannot implement required synchronization policies. Implementing more sophisticated (and less constraining) synchronization policies may improve run-time performance and satisfy synchronization requirements, but fundamental difficulties in reasoning about concurrency make it difficult to assess their correctness.This paper describes an approach to automatically synthesizing complex synchronization implementations from formal high-level specifications. Moreover, the generated coded is designed to be processed easily by software model-checking tools such as Bandera. This enables the generated synchronization solutions to be verified for important system correctness properties. We believe this is an effective approach because the tool-support provided makes it simple to use, it has a solid semantic foundation, it is language independent, and we have demonstrated that it is powerful enough to solve numerous challenging synchronization problems. Xianghua Deng, Matthew B. Dwyer, John Hatcliff, Masaaki Mizuno |
ICSE | 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. | 3 |
| 2001 | Using the Bandera Tool Set to Model-Check Properties of Concurrent Java Software
John Hatcliff, Matthew B. Dwyer |
CONCUR | 1 |
| 2001 | Tool-Supported Program Abstraction for Finite-State VerificationabstractNumerous researchers have reported success in reasoning about properties of small programs using finite-state verification techniques. We believe, as do most researchers in this area, that in order to scale those initial successes to realistic programs, aggressive abstraction of program data will be necessary. Furthermore, we believe that to make abstraction-based verification usable by non-experts significant tool support will be required. In this paper we describe how several different program analysis and transformation techniques are integrated into the Bandera toolset to provide facilities for abstracting Java programs to produce compact, finite-state models that are amenable to verification for example via model checking. We illustrate the application of Bandera's abstraction facilities to analyze a realistic multi-threaded Java program. Matthew B. Dwyer, John Hatcliff, Roby Joehanes, Shawn Laubach, Corina Pasareanu, Robby, Hongjun Zheng, Willem Visser |
ICSE | 2 |
| 2001 | An induction principle for pure type systems
Gilles Barthe, John Hatcliff, Morten Heine Sørensen |
Theor. Comput. Sci. | 2 |
| 2001 | Weak normalization implies strong normalization in a class of non-dependent pure type systems
Gilles Barthe, John Hatcliff, Morten Heine Sørensen |
Theor. Comput. Sci. | 2 |
| 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 | 3 |
| 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 | 3 |
| 1999 | Slicing Software for Model Construction
Matthew B. Dwyer, John Hatcliff |
PEPM | 2 |
| 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 | 1 |
| 1997 | Thunks and the lambda-CalculusabstractThirty-five years ago, thunks were used to simulate call-by-name under call-by-value in Algol 60. Twenty years ago, Plotkin presented continuation-based simulations of call-by-name under call-by-value and vice versa in the λ-calculus. We connect all three of these classical simulations by factorizing the continuation-based call-by-name simulation [Cscr ]n with a thunk-based call-by-name simulation [Tscr ] followed by the continuation-based call-by-value simulation [Cscr ]v, extended to thunks.formula hereWe show that [Tscr ] actually satisfies all of Plotkin's correctness criteria for [Cscr ]n (i.e. his Indifference, Simulation and Translation theorems). Furthermore, most of the correctness theorems for [Cscr ]n can now be seen as simple corollaries of the corresponding theorems for [Cscr ]v and [Tscr ]. John Hatcliff, Olivier Danvy |
J. Funct. Program. | 1 |
| 1997 | A Computational Formalization for Partial EvaluationabstractWe formalize a partial evaluator for Eugenio Moggi's computational metalanguage. This formalization gives an evaluation-order independent view of binding-time analysis and program specialization, including a proper treatment of call unfolding. It also enables us to express the essence of ‘control-based binding-time improvements’ for let expressions. Specifically, we prove that the binding-time improvements given by ‘continuation-based specialization’ can be expressed in the metalanguage via monadic laws. John Hatcliff, Olivier Danvy |
Math. Struct. Comput. Sci. | 1 |
| 1994 | A Generic Account of Continuation-Passing StylesabstractWe unify previous work on the continuation-passing style (CPS) transformations in a generic framework based on Moggi's computational met a-language.This framework is used to obtain GPS transformations for a variety of evaluation strategies and to characterize the corresponding administrative reductions and inverse transformations.We establish generic formal connections between operational semantics and equational theories.Formal properties of transformations for specific evaluation orders follow as corollaries.Essentially, we factor transformations through Moggi's computational meta-language.Mapping A-terms into the met a-language captures computational properties (e.g., partiality, strictness) and evaluation order explicitly in both the term and the type structure of the meta-language.The CPS transformation is then obtained by applying a generic transformation from terms and types in the meta-language to CPS terms and types, based on a typed term representation of the continuation monad.We prove an adequacy property for the generic transformation and establish an equational correspondence between the meta-language and CPS terms.These generic results generalize Plotkin's seminal theorems, subsume more recent results, and enable new uses of CPS transformations and their inverses.We discuss how to apply these results to compilation. John Hatcliff, Olivier Danvy |
POPL | 1 |
| 1993 | On the Transformation between Direct and Continuation Semantics
Olivier Danvy, John Hatcliff |
MFPS | 2 |