Proc. of a discussion meeting of the Royal Society of London on Mathematical logic and programming languages
LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Z notation: a reference manual
The Z notation: a reference manual
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Tentative steps toward a development method for interfering programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Trace theory for automatic hierarchical verification of speed-independent circuits
Trace theory for automatic hierarchical verification of speed-independent circuits
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
Regular types for active objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Compositional specification and verification of distributed systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Model checking and modular verification
ACM Transactions on Programming Languages and Systems (TOPLAS)
Inheritance of interface specifications (extended abstract)
IDL '94 Proceedings of the workshop on Interface definition languages
The Larch/Smalltalk interface specification language
ACM Transactions on Software Engineering and Methodology (TOSEM)
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Forcing behavioral subtyping through specification inheritance
Proceedings of the 18th international conference on Software engineering
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Compositional refinement of interactive systems
Journal of the ACM (JACM)
Communications of the ACM
Formal Methods in System Design - Special issue on The First Federated Logic Conference (FLOC'96), part II
A generalized control structure and its formal definition
Communications of the ACM
Program development by stepwise refinement
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Specification and development of interactive systems: focus on streams, interfaces, and refinement
Specification and development of interactive systems: focus on streams, interfaces, and refinement
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Types and programming languages
Types and programming languages
Computer
Lazy Compositional Verification
COMPOS'97 Revised Lectures from the International Symposium on Compositionality: The Significant Difference
Interface Theories for Component-Based Design
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
System-Level Types for Component-Based Design
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
A Proof Technique for Rely/Guarantee Properties
Proceedings of the Fifth Conference on Foundations of Software Technology and Theoretical Computer Science
Modular Program Construction Using Abstractions
Proceedings of the Abstract Software Specifications, 1979 Copenhagen Winter School
A Compositional Rule for Hardware Design Refinement
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
You Assume, We Guarantee: Methodology and Case Studies
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
Synchronous and Bidirectional Component Interfaces
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Alternating Refinement Relations
CONCUR '98 Proceedings of the 9th International Conference on Concurrency Theory
Now you may compose temporal logic specifications
STOC '84 Proceedings of the sixteenth annual ACM symposium on Theory of computing
Least Reflexive Points of Relations
Higher-Order and Symbolic Computation
Chapter I: Notes on structured programming
Structured programming
Proofs of Networks of Processes
IEEE Transactions on Software Engineering
Causality interfaces for actor networks
ACM Transactions on Embedded Computing Systems (TECS)
Mathematical Logic
Modularity vs. reusability: code generation from synchronous block diagrams
Proceedings of the conference on Design, automation and test in Europe
Interface theories with component reuse
EMSOFT '08 Proceedings of the 8th ACM international conference on Embedded software
Multiple Viewpoint Contract-Based Specification and Design
Formal Methods for Components and Objects
EMSOFT '09 Proceedings of the seventh ACM international conference on Embedded software
Software model checking takes off
Communications of the ACM
A framework for comparing models of computation
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Moving from specifications to contracts in component-based design
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
Synchronous interface theories and time triggered scheduling
FMOODS'12/FORTE'12 Proceedings of the 14th joint IFIP WG 6.1 international conference and Proceedings of the 32nd IFIP WG 6.1 international conference on Formal Techniques for Distributed Systems
Independent implementability of viewpoints
Proceedings of the 17th Monterey conference on Large-Scale Complex IT Systems: development, operation and management
Cyber-physical system design contracts
Proceedings of the ACM/IEEE 4th International Conference on Cyber-Physical Systems
Modeling and specification of real-time interfaces with UTP
Theories of Programming and Formal Methods
A modal specification theory for components with data
Science of Computer Programming
Hi-index | 0.00 |
Compositional theories are crucial when designing large and complex systems from smaller components. In this work we propose such a theory for synchronous concurrent systems. Our approach follows so-called interface theories, which use game-theoretic interpretations of composition and refinement. These are appropriate for systems with distinct inputs and outputs, and explicit conditions on inputs that must be enforced during composition. Our interfaces model systems that execute in an infinite sequence of synchronous rounds. At each round, a contract must be satisfied. The contract is simply a relation specifying the set of valid input/output pairs. Interfaces can be composed by parallel, serial or feedback composition. A refinement relation between interfaces is defined, and shown to have two main properties: (1) it is preserved by composition, and (2) it is equivalent to substitutability, namely, the ability to replace an interface by another one in any context. Shared refinement and abstraction operators, corresponding to greatest lower and least upper bounds with respect to refinement, are also defined. Input-complete interfaces, that impose no restrictions on inputs, and deterministic interfaces, that produce a unique output for any legal input, are discussed as special cases, and an interesting duality between the two classes is exposed. A number of illustrative examples are provided, as well as algorithms to compute compositions, check refinement, and so on, for finite-state interfaces.