Proc. of a conference on Functional programming languages and computer architecture
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
A survey and classification of some program transformation approaches and techniques
The IFIP TC2/WG 2.1 Working Conference on Program specification and transformation
An introduction to the theory of lists
Proceedings of the NATO Advanced Study Institute on Logic of programming and calculi of discrete design
Data structures and program transformation
Science of Computer Programming
Functional programming with bananas, lenses, envelopes and barbed wire
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Towards an automated tupling strategy
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Foundations of parallel programming
Foundations of parallel programming
Shortcut deforestation in calculational form
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Deriving structural hylomorphisms from recursive definitions
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Rules and strategies for transforming functional and logic programs
ACM Computing Surveys (CSUR)
Algebra of programming
Formal derivation of efficient parallel programs by construction of list homomorphisms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Tupling calculation eliminates multiple data traversals
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
A calculational fusion system HYLO
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
Parallelization in calculational forms
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
New Generation Computing
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Introduction to Functional Programming
Introduction to Functional Programming
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Parallelization via Context Preservatio
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Deterministic second-order patterns
Information Processing Letters
Strongly Typed Rewriting For Coupled Software Transformation
Electronic Notes in Theoretical Computer Science (ENTCS)
Coupled Transformation of Schemas, Documents, Queries, and Constraints
Electronic Notes in Theoretical Computer Science (ENTCS)
A bottom-up approach to understand functional programs
Proceedings of The Fourth International C* Conference on Computer Science and Software Engineering
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Structural recursion for querying ordered graphs
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
The world of program optimization and transformation takes on a new fascination when viewed through the lens of program calculation. Unlike the traditional fold/unfold approach to program transformation on arbitrary programs, the calculational approach imposes restrictions on program structures, resulting in some suitable calculational forms such as homomorphisms and mutumorphisms that enjoy a collection of generic algebraic laws for program manipulation. In this tutorial, we will explain the basic idea of program calculation, demonstrate that many program optimizations and transformations, such as the optimization technique known as loop fusion and the parallelization transformation, can be concisely reformalized in calculational form, and show that program transformation in calculational forms is of higher modularity and more suitable for efficient implementation.