Efficient demand-driven evaluation. Part 1
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Pascal user manual and report; 3rd ed.
Pascal user manual and report; 3rd ed.
Programming with sets; an introduction to SETL
Programming with sets; an introduction to SETL
Convergent term rewriting systems can be used for program transformation
on Programs as data objects
Listlessness is better than laziness II: composing listless functions
on Programs as data objects
Iteration and abstract data types
ACM SIGPLAN Notices
Efficient interpretation of synchronizable series expressions
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Automatic translation of FORTRAN programs to vector form
ACM Transactions on Programming Languages and Systems (TOPLAS)
Common LISP: the language
An APL compiler
Mapping a single-assignment language onto the Warp systolic array
Proc. of a conference on Functional programming languages and computer architecture
An introduction to the theory of lists
Proceedings of the NATO Advanced Study Institute on Logic of programming and calculi of discrete design
Seque: a programming language for manipulating sequences
Computer Languages
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Software pipelining: an effective scheduling technique for VLIW machines
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Efficient high-level iteration with accumulators
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Effect of Data Abstraction on Loop Programming Techniques
IEEE Transactions on Software Engineering
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
ICON Programmng Language
APL: The Language and Its Usage
APL: The Language and Its Usage
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
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
Rewriting systems on FP expressions that reduce the number of sequences they yield
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Applicative style programming, program transformation, and list operators
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Optimization of Series Expressions: Part I: User''s Manual for the Series Macro Package
Optimization of Series Expressions: Part I: User''s Manual for the Series Macro Package
Small-scale software components
ACM SIGSOFT Software Engineering Notes
Toward a design apprentice: supporting reuse and evolution in software design
ACM SIGSOFT Software Engineering Notes
Safe fusion of functional expressions
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
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
Compiling nested data-parallel programs for shared-memory multiprocessors
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
To nreverse when consing a list or by pointer manipulation, to avoid it; that is the question
ACM SIGPLAN Lisp Pointers
First-class synchronization barriers
Proceedings of the first ACM SIGPLAN international conference on Functional programming
From recursion to iteration: what are the optimizations?
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Optimizing aggregate array computations in loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
The anatomy of a loop: a story of scope and control
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Design and implementation of 812: A declarative data-parallel language
Computer Languages
Data flow fusion with series expressions in Haskell
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
The HERMIT in the stream: fusing stream fusion's concatMap
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
The benefits of programming in a functional style are well known. In particular, algorithms that are expressed as compositions of functions operating on sequences/vectors/streams of data elements are easier to understand and modify than equivalent algorithms expressed as loops. Unfortunately, this kind of expression is not used anywhere near as often as it could be, for at least three reasons: (1) most programmers are less familiar with this kind of expression than with loops; (2) most programming languages provide poor support for this kind of expression; and (3) when support is provided, it is seldom effcient.In any programming language, the second and third problems can be largely solved by introducing a data type called series, a comprehensive set of procedures operating on series, and a preprocessor (or compiler extension) that automatically converts most series expressions into efficient loops. A set of restrictions specifies which series expressions can be optimized. If programmers stay within the limits imposed, they are guaranteed of high efficiency at all times.A common Lisp macro package supporting series has been in use for some time. A prototype demonnstrates that series can be straightforwardly supported in Pascal.