Systematic software development using VDM
Systematic software development using VDM
The Z notation: a reference manual
The Z notation: a reference manual
Copying and Swapping: Influences on the Design of Reusable Software Components
IEEE Transactions on Software Engineering
Component-based software using RESOLVE
ACM SIGSOFT Software Engineering Notes
Experience report: using RESOLVE/C++ for commercial software
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Performance specification of software components
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
Object-Oriented Software Construction
Object-Oriented Software Construction
Computer
Reasoning about Software-Component Behavior
ICSR-6 Proceedings of the 6th International Conerence on Software Reuse: Advances in Software Reusability
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Direct reasoning
Back to the future: revisiting precise program verification using SMT solvers
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The 1st verified software competition: experience report
FM'11 Proceedings of the 17th international conference on Formal methods
Heaps and data structures: a challenge for automated provers
CADE'11 Proceedings of the 23rd international conference on Automated deduction
An efficient decision procedure for imperative tree data structures
CADE'11 Proceedings of the 23rd international conference on Automated deduction
Building a push-button RESOLVE verifier: Progress and challenges
Formal Aspects of Computing
State based ownership, reentrance, and encapsulation
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Dynamic frames: support for framing, dependencies and sharing without restrictions
FM'06 Proceedings of the 14th international conference on Formal Methods
A case study in verification of embedded network software
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Specification engineering and modular verification using a web-integrated verifying compiler
Proceedings of the 34th International Conference on Software Engineering
Hi-index | 0.00 |
While the use of pointers can be minimized by language mechanisms for data abstraction, alias avoidance and control, and disciplined software development techniques, ultimately, any verifying compiler effort must be able to verify code that makes use of them. Additionally, in order to scale, the verification machinery of such a compiler must use specifications to reason about components. This paper follows a natural question that arises from combining these ideas: can the general machinery of specification-based component verification also be used to verify code that uses instances of types that are more traditionally built-in, such as arrays and pointers? This paper answers the question in the affirmative by presenting a Location_Linking_Template, a concept that captures pointer behavior, and uses it to verify the code of a simple data abstraction realized using pointers. In this deployment, pointers have a specification like any other component. We also note that the concept can be extended and realized so that different systems can plug in alternative implementations to give programmers the flexibility to choose, e.g., manual memory management or automatic garbage collection depending on their performance concerns.