Dynamic detection of determinism in functional logic languages
PLILP '91 Selected papers of the symposium on Programming language implementation and logic programming
Journal of the ACM (JACM)
Dynamic-Cut with Definitional Trees
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
A Demand Driven Computation Strategy for Lazy Narrowing
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
Proceedings of the Third International Conference on Algebraic and Logic Programming
TOY: A System for Experimenting with Cooperation of Constraint Domains
Electronic Notes in Theoretical Computer Science (ENTCS)
Multi-paradigm declarative languages
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Playing with TOY: constraints and domain cooperation
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Hi-index | 0.00 |
This paper presents the integration of the optimization known as dynamic cut within the functional-logic system TOY. The implementation automatically detects deterministic functions at compile time, and includes in the generated code the test for detecting at run-time the computations that can actually be pruned. The outcome is a much better performance when executing deterministic functions including either or-branches in their definitional trees or extra variables in their conditions, with no serious overhead in the rest of the computations. The paper also proves the correctness of the criterion used for detecting deterministic functions w.r.t. the semantic calculus CRWL.