Attribute grammars as a functional programming paradigm
Proc. of a conference on Functional programming languages and computer architecture
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Handbook of logic in computer science (vol. 3)
Shortcut deforestation in calculational form
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Warm fusion: deriving build-catas from recursive definitions
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Algebra of programming
A calculational fusion system HYLO
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
Attribute grammars in the functional style
Proceedings of the IFIP TC2 WG2.4 working conference on Systems implementation 2000 : languages, methods and tools: languages, methods and tools
Breadth-first numbering: lessons from a small exercise in algorithm design
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Using circular programs to deforest in accumulating parameters
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Introduction to Functional Programming
Introduction to Functional Programming
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Calculating functional programs
Algebraic and coalgebraic methods in the mathematics of program construction
Free theorems in the presence of seq
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fast and loose reasoning is morally correct
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lightweight fusion by fixed point promotion
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Generating Software from Specifications
Generating Software from Specifications
Tools and libraries to model and manipulate circular programs
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Proving correctness via free theorems: the case of the destroy/build-rule
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Shortcut fusion rules for the derivation of circular and higher-order monadic programs
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Free theorems for functional logic programs
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Semantics and pragmatics of new shortcut fusion rules
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Syntactic Language Extension via an Algebra of Languages and Transformations
Electronic Notes in Theoretical Computer Science (ENTCS)
Strictification of circular programs
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Shortcut fusion rules for the derivation of circular and higher-order programs
Higher-Order and Symbolic Computation
Program and aspect metrics for MATLAB
ICCSA'12 Proceedings of the 12th international conference on Computational Science and Its Applications - Volume Part IV
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Banana Algebra: Compositional syntactic language extension
Science of Computer Programming
Hi-index | 0.00 |
Circular programs are a powerful technique to express multiple traversal algorithms as a single traversal function in a lazy setting. In this paper, we present a shortcut deforestation technique to calculate circular programs. The technique we propose takes as input the composition of two functions, such that the first builds an intermediate structure and some additional context information which are then processed by the second one, to produce the final result. Our transformation into circular programs achieves intermediate structure deforestation and multiple traversal elimination. Furthermore, the calculated programs preserve the termination properties of the original ones.