Proving Theorems about LISP Functions
Journal of the ACM (JACM)
Proving Properties of Complex Data Structures
Journal of the ACM (JACM)
Abstract data types and the development of data structures
Communications of the ACM
Communications of the ACM
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Some extensions to algebraic specifications
Proceedings of an ACM conference on Language design for reliable software
Automatic verification of programs with complex data structure.
Automatic verification of programs with complex data structure.
Mathematical Theory of Computation
Mathematical Theory of Computation
Implementation of resilient, atomic data types
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Abstraction-based software development
Communications of the ACM
Termination orderings for associative-commutative rewriting systems
Journal of Symbolic Computation
Decidability of the purely existential fragment of the theory of term algebras
Journal of the ACM (JACM)
Algorithmic specifications: a constructive specification method for abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Mechanical translation of set theoretic problem specifications into efficient RAM code-A case study
Journal of Symbolic Computation
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Computable values can be classical
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A comparison of four design methods for real-time systems
ICSE '87 Proceedings of the 9th international conference on Software Engineering
Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
IEEE Transactions on Computers
Trace Specifications: Methodology and Models
IEEE Transactions on Software Engineering
A Prototyping Language for Real-Time Software
IEEE Transactions on Software Engineering
m-EVES: A tool for verifying software
ICSE '88 Proceedings of the 10th international conference on Software engineering
Data and Time Abstraction Techniques for Analyzing Multilevel Concurrent Systems
IEEE Transactions on Software Engineering
TEAM: a support environment for testing, evaluation, and analysis
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Functional Refinement and Nested Objects for Object-Oriented Design
IEEE Transactions on Software Engineering
AUTO STAR—a software development system
ACM SIGPLAN Notices
Software development process from natural language specification
ICSE '89 Proceedings of the 11th international conference on Software engineering
Cecil: A Sequencing Constraint Language for Automatic Static Analysis Generation
IEEE Transactions on Software Engineering
Parallel tree pattern matching
Journal of Symbolic Computation
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formal methods in transformational derivation of programs
Conference proceedings on Formal methods in software development
Design of a text formatter with AUTO STAR
ACM SIGAda Ada Letters
Interprocedural static analysis of sequencing constraints
ACM Transactions on Software Engineering and Methodology (TOSEM)
The design and implementation of hierarchical software systems with reusable components
ACM Transactions on Software Engineering and Methodology (TOSEM)
ACM Transactions on Computer Systems (TOCS)
Ada 9X: from abstraction-oriented to object-oriented
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
The ASTOOT approach to testing object-oriented programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
The effect of data structures on the logical complexity of programs
Communications of the ACM
Daistish: systematic algebraic testing for OO programs in the presence of side-effects
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
User interface development and software environments: the Chiron-1 system
ICSE '91 Proceedings of the 13th international conference on Software engineering
Abstract types have existential types
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
ICSE '85 Proceedings of the 8th international conference on Software engineering
ICSE '85 Proceedings of the 8th international conference on Software engineering
Reasoning About Recursively Defined Data Structures
Journal of the ACM (JACM)
Journal of the ACM (JACM)
PLEASE:Predictable Logic based ExecutAble SpeCifications
CSC '86 Proceedings of the 1986 ACM fourteenth annual conference on Computer science
Automatically Checking an Implementation against Its Formal Specification
IEEE Transactions on Software Engineering
ACM Computing Surveys (CSUR)
An Abstract Type for Statistics Collection in Simula
ACM Transactions on Programming Languages and Systems (TOPLAS)
Data Abstraction, Implementation, Specification, and Testing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Data Type Specification: Parameterization and the Power of Specification Techniques
ACM Transactions on Programming Languages and Systems (TOPLAS)
Final Data Types and Their Specification
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parameterized Specifications: Parameter Passing and Implementation with Respect to Observability
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program design by informal English descriptions
Communications of the ACM
A Fortran programming methodology based on data abstraction
Communications of the ACM
ACM SIGPLAN Notices
Executable specifications with quantifiers in the FASE system
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Final data type specifications: a new data type specification method
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Expressiveness of the operation set of a data abstraction
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On proving inductive properties of abstract data types
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular verification of concurrent programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Integrating Formal Methods into the Development Process
IEEE Software
Using Term Rewriting to Verify Software
IEEE Transactions on Software Engineering
Modular Verification of Data Abstractions with Shared Realizations
IEEE Transactions on Software Engineering
An Informal Formal Method for Systematic JUnit Test Case Generation
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
Caddie an interactive design environment
ISCA '83 Proceedings of the 10th annual international symposium on Computer architecture
Application of axiomatic methods to a specification analyser
ICSE '84 Proceedings of the 7th international conference on Software engineering
ICSE '81 Proceedings of the 5th international conference on Software engineering
Formal specification and verification of a connection establishment protocol
SIGCOMM '81 Proceedings of the seventh symposium on Data communications
Pragmatic techniques for program analysis and verification
ICSE '79 Proceedings of the 4th international conference on Software engineering
FP with data abstraction and strong typing
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Programming with concrete data structures and sequential algorithms
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Specification and implementation of resilient, atomic data types
Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
Action and transaction skeletons:: High level language constructs for database transactions
Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
Specification of abstract data types with partially defined operations
ICSE '82 Proceedings of the 6th international conference on Software engineering
An ADATM compatible specification language
ACM '81 Proceedings of the ACM '81 conference
Towards a practical specification language
ACM '81 Proceedings of the ACM '81 conference
Module: An encapsulation mechanism for specifying and implementing abstract data types
ACM '80 Proceedings of the ACM 1980 annual conference
Logical Structure Specification and data type definition
ACM '79 Proceedings of the 1979 annual conference
An extension to algebraic specifications to incorporate state behavior
ACM '79 Proceedings of the 1979 annual conference
An abstract software specification technique based on structural recursion
ACM SIGPLAN Notices
Procedural specifications and implementations for abstract data types
ACM SIGPLAN Notices
Specifications of Majster's traversable stack and Veloso's traversable stack
ACM SIGPLAN Notices
Rapid prototyping: in the OBJ executable specification language
Proceedings of the workshop on Rapid prototyping
ACM SIGSOFT Software Engineering Notes
More thoughts on specification and verification
ACM SIGSOFT Software Engineering Notes
AIDS to hierarchical specification structuring and reusing theorems in AFFIRM-85
ACM SIGSOFT Software Engineering Notes - Proceedings of VERkshop III -- a formal verification workshop
A model for software design facilitating man-machine interface variations
ACM SIGCHI Bulletin
Relational analysis of algebraic datatypes
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Proving correctness of highly-concurrent linearisable objects
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Systematic derivation of complementary specifications
VLDB '81 Proceedings of the seventh international conference on Very Large Data Bases - Volume 7
The axioms strike back: testing with concepts and axioms in C++
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
From grammars and automata to algebras and coalgebras
CAI'11 Proceedings of the 4th international conference on Algebraic informatics
Checking formal specifications by testing
IW-FM'99 Proceedings of the 3rd Irish conference on Formal Methods
Software requirements and specifications: A survey of needs and languages
Journal of Systems and Software
Hi-index | 48.28 |
A data abstraction can be naturally specified using algebraic axioms. The virtue of these axioms is that they permit a representation-independent formal specification of a data type. An example is given which shows how to employ algebraic axioms at successive levels of implementation. The major thrust of the paper is twofold. First, it is shown how the use of algebraic axiomatizations can simplify the process of proving the correctness of an implementation of an abstract data type. Second, semi-automatic tools are described which can be used both to automate such proofs of correctness and to derive an immediate implementation from the axioms. This implementation allows for limited testing of programs at design time, before a conventional implementation is accomplished.