The art of Prolog: advanced programming techniques
The art of Prolog: advanced programming techniques
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Handbook of theoretical computer science (vol. B)
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Journal of the ACM (JACM)
A Transformation System for Lazy Functional Logic Programs
FLOPS '99 Proceedings of the 4th Fuji International Symposium on Functional and Logic Programming
Proceedings of the Third International Conference on Algebraic and Logic Programming
A Guide for Manual Construction of Difference-List Procedures
Applications of Declarative Programming and Knowledge Management
Hi-index | 0.00 |
Modern multi-paradigm declarative languages integrate features from functional, logic, and concurrent programming. Since programs in these languages make extensive use of list-processing functions, we consider of much interest the development of list-processing optimization techniques. In this work, we consider the adaptation of the well-known difference-lists transformation from the logic programming paradigm to our integrated setting. Unfortunately, the use of differencelists is impractical due to the absence of non-strict equality in lazy (call-by-name) languages. Despite all, we have developed a novel, stepwise transformation which achieves a similar effect over functional logic programs. We also show a simple and practical approach to incorporate the optimization into a real compiler. Finally, we have conducted a number of experiments which show the practicality of our proposal.