A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
Communications of the ACM
Correspondence between ALGOL 60 and Church's Lambda-notation: part I
Communications of the ACM
The next 700 programming languages
Communications of the ACM
Compilation and delayed evaluation in APL
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Expression continuity and the formal differentiation of algorithms
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Experience with an applicative string processing language
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Program improvement by internal specialization
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
High level operations in automatic programming
Proceedings of the ACM SIGPLAN symposium on Very high level languages
ACM '77 Proceedings of the 1977 annual conference
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
A generative, nested-sequential basis for general purpose programming languages.
A generative, nested-sequential basis for general purpose programming languages.
Infinite structures in programming languages
Infinite structures in programming languages
On FP languages combining forms
ACM SIGPLAN Notices
Efficient interpretation of synchronizable series expressions
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
A transformational approach to the derivation of hardware algorithms from recurrence equations
Proceedings of the 1988 ACM/IEEE conference on Supercomputing
Making languages more powerful by removing limitations
Conference proceedings on Formal methods in software development
Automatic transformation of series expressions into loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Programming with Streams in a Pascal-Like Language
IEEE Transactions on Software Engineering
Constraints to stop higher-order deforestation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Grammars for functional languages
CSC '86 Proceedings of the 1986 ACM fourteenth annual conference on Computer science
The operational versus the conventional approach to software development
Communications of the ACM
Listlessness is better than laziness: Lazy evaluation and garbage collection at compile-time
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Toward an algebra of nondeterministic programs
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
An applicative compiler for a parallel machine
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
Operational specification languages
ACM '83 Proceedings of the 1983 annual conference on Computers : Extending the human resource
A tutorial on the universality and expressiveness of fold
Journal of Functional Programming
Hi-index | 0.02 |
An important feature of the applicative style is the use of operators that package common patterns of computation. For example, the list operator map applies a function to every element of a list. Practical use of this style has been hampered by the fact that it can be very inefficient to execute. One remedy for this situation is to use source-to-source program transformation to convert applicative style programs to more efficient equivalents. This paper examines how list operators can be used to guide the transformation process. It describes a small set of list operators that possess a “complete” set of transformation rules, allowing transformations to be performed very efficiently. Whereas most previous transformation methods resemble proofs, this transformation method resembles algebraic manipulation.