A Theory of Communicating Sequential Processes
Journal of the ACM (JACM)
Algebraic laws for nondeterminism and concurrency
Journal of the ACM (JACM)
Constructive mathematics and computer programming
Proc. of a discussion meeting of the Royal Society of London on Mathematical logic and programming languages
Communicating sequential processes
Communicating sequential processes
Automatic verification of finite-state concurrent systems using temporal logic specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Abstraction and specification in program development
Abstraction and specification in program development
Writing Larch interface language specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
Report on the Larch shared language
Science of Computer Programming
The foundations of program verification (2nd ed.)
The foundations of program verification (2nd ed.)
Statecharts: A visual formalism for complex systems
Science of Computer Programming
LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A semantics of multiple inheritance
Information and Computation - Semantics of Data Types
Keynote address - data abstraction and hierarchy
OOPSLA '87 Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum)
A simple approach to specifying concurrent systems
Communications of the ACM
Formal Aspects of Computing
An introduction to Z and formal specifications
Software Engineering Journal - Special Section on Z
Tentative steps toward a development method for interfering programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Towards fully abstract semantics for local variables
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
STATEMATE: A Working Environment for the Development of Complex Reactive Systems
IEEE Transactions on Software Engineering
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Design and validation of computer protocols
Design and validation of computer protocols
Programming from specifications
Programming from specifications
Algebraic system specification and development
Algebraic system specification and development
Handbook of theoretical computer science (vol. B)
Handbook of theoretical computer science (vol. B)
Methods and logics for proving programs
Handbook of theoretical computer science (vol. B)
Handbook of theoretical computer science (vol. B)
Operational and algebraic semantics of concurrent processes
Handbook of theoretical computer science (vol. B)
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE
IEEE Transactions on Software Engineering - Special issue: specification and analysis of real-time systems
Code complete: a practical handbook of software construction
Code complete: a practical handbook of software construction
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
A practical theory of programming
A practical theory of programming
Performance assertion checking
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
The structure of typed programming languages
The structure of typed programming languages
Journal of the ACM (JACM)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Object-oriented specification in VDM++
Object-oriented specification case studies
Part I: the RESOLVE framework and discipline: a research synopsis
ACM SIGSOFT Software Engineering Notes
Part II: specifying components in RESOLVE
ACM SIGSOFT Software Engineering Notes
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)
A classical mind
Covariance and contravariance: conflict without a cause
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partial functions and logics: a warning
Information Processing Letters
Toward reliable modular programs
Toward reliable modular programs
Structuring Z specifications with views
ACM Transactions on Software Engineering and Methodology (TOSEM)
Forcing behavioral subtyping through specification inheritance
Proceedings of the 18th international conference on Software engineering
Annotated type and effect systems
ACM Computing Surveys (CSUR)
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Computer program verification: improvements for human reasoning
Computer program verification: improvements for human reasoning
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Verification of sequential and concurrent programs (2nd ed.)
Verification of sequential and concurrent programs (2nd ed.)
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Data groups: specifying the modification of extended state
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The object constraint language: precise modeling with UML
The object constraint language: precise modeling with UML
Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications
IEEE Transactions on Software Engineering
The Unified Modeling Language reference manual
The Unified Modeling Language reference manual
Modelling systems: practical tools and techniques in software development
Modelling systems: practical tools and techniques in software development
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Structural specification-based testing: automated support and experimental evaluation
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Concurrent Processes and Their Syntax
Journal of the ACM (JACM)
Model checking
Acme: architectural description of component-based systems
Foundations of component-based systems
A semantic foundation for specification matching
Foundations of component-based systems
Requirements engineering in the year 00: a research perspective
Proceedings of the 22nd international conference on Software engineering
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Proof, language, and interaction
Safely creating correct subclasses without seeing superclass code
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM Computing Surveys (CSUR)
Program Transformation Systems
ACM Computing Surveys (CSUR)
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
Exception handling: issues and a proposed notation
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Industrial experience with SPARK
ACM SIGAda Ada Letters - special issue on presentations from SIGAda 2000
Calculating sharp adaptation rules
Information Processing Letters - Special issue in honor of Edsger W. Dijkstra
Contract Soundness for object-oriented languages
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Using data groups to specify and check side effects
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Program Verification
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
The Craft of Programming
Petri Net Theory and the Modeling of Systems
Petri Net Theory and the Modeling of Systems
A Discipline of Programming
Korat: automated testing based on Java predicates
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Data abstraction and information hiding
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the Refinement Calculus
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
The verifying compiler: A grand challenge for computing research
Journal of the ACM (JACM)
Computer
Predicate Logic for Software Engineering
IEEE Transactions on Software Engineering
On the Frame Problem in Procedure Specifications
IEEE Transactions on Software Engineering
Java Program Verification via a Hoare Logic with Abrupt Termination
FASE '00 Proceedings of the Third Internationsl Conference on Fundamental Approaches to Software Engineering: Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 2000
A Programming Logic for Sequential Java
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Inheritance and Subtyping in a Parallel Object-Oriented Language
ECOOP '87 Proceedings of the European Conference on Object-Oriented Programming
Architectural Reasoning in ArchJava
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Formal Verification of Ada Programs
Proceedings of the first First International Workshop on Larch
Protective Interface Specifications
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
Local Reasoning about Programs that Alter Data Structures
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
Proceedings of the International Conference on Mathematics of Program Construction, 375th Anniversary of the Groningen University
Gypsy: A language for specification and implementation of verifiable programs
Proceedings of an ACM conference on Language design for reliable software
Abstract State Machines: A Method for High-Level System Design and Analysis
Abstract State Machines: A Method for High-Level System Design and Analysis
The Early Search for Tractable Ways of Reasoning about Programs
IEEE Annals of the History of Computing
Runtime verification of .NET contracts
Journal of Systems and Software - Special issue on: Component-based software engineering
NIMBUS: A Tool for Specification Centered Development
RE '03 Proceedings of the 11th IEEE International Conference on Requirements Engineering
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Report on the programming language Euclid
ACM SIGPLAN Notices
The JFC Swing Tutorial: A Guide to Constructing GUIs, Second Edition
The JFC Swing Tutorial: A Guide to Constructing GUIs, Second Edition
SEFM '04 Proceedings of the Software Engineering and Formal Methods, Second International Conference
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Validated Designs For Object-oriented Systems
Validated Designs For Object-oriented Systems
UML 2.0 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition)
UML 2.0 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition)
Model variables: cleanly supporting abstraction in design by contract: Research Articles
Software—Practice & Experience
How the design of JML accommodates both runtime assertion checking and formal verification
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
Concurrency: State Models And Java Programs
Concurrency: State Models And Java Programs
On the Decidability of Metric Temporal Logic
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
A contextual interpretation of undefinedness for runtime assertion checking
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Logical Foundations of Program Assertions: What do Practitioners Want?
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
A historical perspective on runtime assertion checking in software development
ACM SIGSOFT Software Engineering Notes
HighSpec: a tool for building and checking OZTA models
Proceedings of the 28th international conference on Software engineering
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Variables as Resource in Hoare Logics
LICS '06 Proceedings of the 21st Annual IEEE Symposium on Logic in Computer Science
Modular invariants for layered object structures
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Bogor/Kiasan: A k-bounded Symbolic Execution for Checking Strong Heap Properties of Open Systems
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Resources, concurrency, and local reasoning
Theoretical Computer Science
Observational purity and encapsulation
Theoretical Computer Science
A Sound Assertion Semantics for the Dependable Systems Evolution Verifying Compiler
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Information Hiding and Visibility in Interface Specifications
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Establishing object invariants with delayed types
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Modular verification of higher-order methods with mandatory calls specified by model programs
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Sound reasoning about unchecked exceptions
SEFM '07 Proceedings of the Fifth IEEE International Conference on Software Engineering and Formal Methods
An Overview of Anna, a Specification Language for Ada
IEEE Software
The Larch Family of Specification Languages
IEEE Software
Separation logic, abstraction and inheritance
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Enhancing modular OO verification with separation logic
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ISEC '08 Proceedings of the 1st India software engineering conference
Model-Based Software Testing and Analysis with C#
Model-Based Software Testing and Analysis with C#
Automatic Verification of Combined Specifications: An Overview
Electronic Notes in Theoretical Computer Science (ENTCS)
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Checking Well-Formedness of Pure-Method Specifications
FM '08 Proceedings of the 15th international symposium on Formal Methods
VeriCool: An Automatic Verifier for a Concurrent Object-Oriented Language
FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Regional Logic for Local Reasoning about Global Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
A Unified Framework for Verification Techniques for Object Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Boogie Meets Regions: A Verification Experience Report
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Flexible Immutability with Frozen Objects
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
jStar: towards practical verification for java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
A programming model for concurrent object-oriented programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using formal specifications to support testing
ACM Computing Surveys (CSUR)
Expert C# 2008 Business Objects
Expert C# 2008 Business Objects
A Basis for Verifying Multi-threaded Programs
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Implicit Dynamic Frames: Combining Dynamic Frames and Separation Logic
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Verification of Concurrent Programs with Chalice
Foundations of Security Analysis and Design V
VCC: A Practical System for Verifying Concurrent C
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Modeling time in computing: A taxonomy and a comparative survey
ACM Computing Surveys (CSUR)
Reasoning About Partial Functions in the Formal Development of Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Practical reasoning about invocations and implementations of pure methods
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
Using history invariants to verify observers
ESOP'07 Proceedings of the 16th European conference on Programming
Generalized symbolic execution for model checking and testing
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
CAV'07 Proceedings of the 19th international conference on Computer aided verification
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
An automatic verifier for Java-like programs based on dynamic frames
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
Verification of equivalent-results methods
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Smallfoot: modular automatic assertion checking with separation logic
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
JML’s rich, inherited specifications for behavioral subtypes
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
The verifying compiler, a grand challenge for computing research
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Purity and side effect analysis for java programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Local verification of global invariants in concurrent programs
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Extending JML for modular specification and verification of multi-threaded programs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Reasoning about java programs with aliasing and frame conditions
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Dynamic frames: support for framing, dependencies and sharing without restrictions
FM'06 Proceedings of the 14th international conference on Formal Methods
A polymorphic intermediate verification language: design and logical encoding
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Model-Based design of concurrent programs
CSP'04 Proceedings of the 2004 international conference on Communicating Sequential Processes: the First 25 Years
A local shape analysis based on separation logic
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A verification methodology for model fields
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
IEEE Transactions on Software Engineering
Validity invariants and effects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
A model-driven approach to teaching concurrency
ACM Transactions on Computing Education (TOCE)
Developing verified programs with dafny
Proceedings of the 2013 International Conference on Software Engineering
Subclack: feature-oriented programming with behavioral feature interfaces
Proceedings of the 5th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance
Product-line verification with feature-oriented contracts
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Loop invariants: Analysis, classification, and examples
ACM Computing Surveys (CSUR)
Object ownership in program verification
Aliasing in Object-Oriented Programming
On composing and proving the correctness of reactive behavior
Proceedings of the Eleventh ACM International Conference on Embedded Software
Hi-index | 0.00 |
Behavioral interface specification languages provide formal code-level annotations, such as preconditions, postconditions, invariants, and assertions that allow programmers to express the intended behavior of program modules. Such specifications are useful for precisely documenting program behavior, for guiding implementation, and for facilitating agreement between teams of programmers in modular development of software. When used in conjunction with automated analysis and program verification tools, such specifications can support detection of common code vulnerabilities, capture of light-weight application-specific semantic properties, generation of test cases and test oracles, and full formal program verification. This article surveys behavioral interface specification languages with a focus toward automatic program verification and with a view towards aiding the Verified Software Initiative—a fifteen-year, cooperative, international project directed at the scientific challenges of large-scale software verification.