CLU reference manual
Programming in Ada95
ACM Transactions on Programming Languages and Systems (TOPLAS)
Abstraction and verification in Alphard: defining and specifying iteration and generators
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
APL: The Language and Its Usage
APL: The Language and Its Usage
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Automatic Analysis of the Logical Structure of Programs
Automatic Analysis of the Logical Structure of Programs
DATA DRIVEN LOOPS
A generative, nested-sequential basis for general purpose programming languages.
A generative, nested-sequential basis for general purpose programming languages.
Lisp machine manual
Efficient interpretation of synchronizable series expressions
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Automatic programming for streams II: transformational implementation
ICSE '88 Proceedings of the 10th international conference on Software engineering
Efficient high-level iteration with accumulators
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic transformation of series expressions into loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
HOPL-II The second ACM SIGPLAN conference on History of programming languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
History of programming languages---II
Hi-index | 0.00 |
This paper proposes an expressional loop notation (XLoop) based on the ideas described in [16,17] which makes it practical to express loops as compositions of functions. The primary benefit of XLoop is that it brings the powerful metaphor of expressions and decomposability to bear on the domain of loops. Wherever this metaphor can be applied, it makes algorithms much easier to construct, understand, and modify. XLoop applies the expressional metaphor to loops by introducing a new data type series. A series is an ordered one dimensional sequence of data objects. Series are used to represent intermediate results during a computation. Algorithms which would typically be rendered as iterative loops are instead represented as compositions of functions operating on series. For example, the program SUM_VECT computes the sum of the elements in a vector of integers by using ENUM_VECTOR to create a series of the integers in the vector and then using SUM to compute their sum.