Proc. of a conference on Functional programming languages and computer architecture
The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Handbook of theoretical computer science (vol. B)
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
The verifying compiler: A grand challenge for computing research
Journal of the ACM (JACM)
Deforestation: Transforming Programs to Eliminate Trees
ESOP '88 Proceedings of the 2nd European Symposium on Programming
The Use of Metasystem Transition in Theorem Proving and Program Optimization
Proceedings of the 7th Colloquium on Automata, Languages and Programming
Distillation: extracting the essence of programs
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Poitín: Distilling Theorems From Conjectures
Electronic Notes in Theoretical Computer Science (ENTCS)
Towards verification via supercompilation
COMPSAC-W'05 Proceedings of the 29th annual international conference on Computer software and applications conference
Cyclic proofs for first-order logic with inductive definitions
TABLEAUX'05 Proceedings of the 14th international conference on Automated Reasoning with Analytic Tableaux and Related Methods
Extracting the essence of distillation
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Hi-index | 0.01 |
In this paper, we show how our program transformation algorithm called distillation can not only be used for the optimisation of programs, but can also be used to facilitate program verification. Using the distillation algorithm, programs are transformed into a specialised form in which functions are tail recursive, and very few intermediate structures are created. We then show how properties of this specialised form of program can be easily verified by the application of inductive proof rules. We therefore argue that the distillation algorithm is an ideal candidate for inclusion within compilers as it facilitates the two goals of program optimization and verification.