Principles of functional programming
Principles of functional programming
Functional programming using standard ML
Functional programming using standard ML
A bibliography on partial evaluation
ACM SIGPLAN Notices
Program verification: the very idea
Communications of the ACM
Functional programming: practice and theory
Functional programming: practice and theory
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
Proving Theorems about LISP Functions
Journal of the ACM (JACM)
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Social processes and proofs of theorems and programs
Communications of the ACM
Communications of the ACM
Inductive methods for proving properties of programs
Communications of the ACM
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
A Discipline of Programming
A Theory of Programming Language Semantics
A Theory of Programming Language Semantics
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
Mathematical Theory of Computation
Mathematical Theory of Computation
Journal of Systems and Software
Hi-index | 0.00 |
Functional modelling [17,29] enables functional reasoning methods to be applied to programs written in imperative languages. It is, however, the view of many workers [4, 24] that it is not the notation in which a program is written, but the sheer size of a program which prohibits the application of reasoning and proof techniques.The beauty of Projection is that simple aspects of programs have correspondingly simple models, irrespective of the size and complexity of the overall imperative program.We describe the Projection technique, showing how it allows for the manageable application of functional language technology to 'real' imperative programs. We demonstrate how Projection may facilitate the development of a proof of a program in terms of its constituents and how Projection may allow programmers to select the safety-critical sections of programs for particular attention.We briefly discuss the connection between Projection and Slicing, introduced by Weiser [34,35], and give examples of the functional programming techniques made available to imperative programmers by virtue of functional modelling. Specifically, we use formal proof [23, 24, 4], Transformation [5, 9] and Partial Evaluation [14, 16, 31]. We claim that the Projection of functional models lends itself to the analysis and proof of existing computer software written in imperative programming languages.