An Introduction to Proving the Correctness of Programs
ACM Computing Surveys (CSUR)
Abstract data types and software validation
Communications of the ACM
Symbolic execution and program testing
Communications of the ACM
A technique for software module specification with examples
Communications of the ACM
Unrestricted procedure calls in Hoare's logic
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Discipline of Programming
A Case Study in Language Design: Euclid
Program Construction, International Summer Schoo
A system for program refinement
ICSE '79 Proceedings of the 4th international conference on Software engineering
Symbolic evaluation of programs: a look at loop analysis
SYMSAC '76 Proceedings of the third ACM symposium on Symbolic and algebraic computation
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Programming as an evolutionary process
ICSE '76 Proceedings of the 2nd international conference on Software engineering
SELECT—a formal system for testing and debugging programs by symbolic execution
Proceedings of the international conference on Reliable software
Automatic verification of programs with complex data structure.
Automatic verification of programs with complex data structure.
Global variable considered harmful
ACM SIGPLAN Notices
Structured programming
A system for program refinement
ICSE '79 Proceedings of the 4th international conference on Software engineering
Language design and analyzability: a retrospective
Software—Practice & Experience
Hi-index | 0.00 |
The Program Development System (PDS) is a collection of programming tools created as an extension of the ECL programming system23. It contains components that assist the programmer in the definition and modular structuring of large programs at different levels of algorithmic abstraction. These components are supplemented by a program analysis package that produces an information pool to be used for such tasks as source-to-source optimization, semi-automated program documentation, fault detection and program verification. This paper describes the core of the analyzing package, the Symbolic Evaluator. In its implementation we have incorporated pragmatic methods for handling data sharing patterns, and for characterizing and reasoning about the behaviour of loops and procedures. The impact of these methods upon program verification techniques is briefly discussed.