Research topics in functional programming
Projection factorisations in partial evaluation
Projection factorisations in partial evaluation
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Communication and concurrency
Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
ICSE '81 Proceedings of the 5th international conference on Software engineering
Techniques for automatic memoization with applications to context-free parsing
Computational Linguistics
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
A bisimulation for type abstraction and recursion
Journal of the ACM (JACM)
Introduction to Algorithms, Third Edition
Introduction to Algorithms, Third Edition
Just do it: simple monadic equational reasoning
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
During the development and maintenance process, a program changes form, often being refined as specifications and implementation decisions are realized. A correctness proof built in parallel with an original program can be extended to a proof of refined program by showing equivalences between the original and refined program. This paper illustrates two examples of property-preserving refinement, partial evaluation and generalization, and explores the correctness-preserving equivalences underpinning those refinement techniques. We plan to explore ways in which the informal reasoning behind these and similar program refinement tasks may be captured to extend the proof for an original program into a proof of the refined program.