Extendible hashing—a fast access method for dynamic files
ACM Transactions on Database Systems (TODS)
Pipelining: a technique for implementing data restructurers
ACM Transactions on Database Systems (TODS)
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Finite Differencing of Computable Expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compilation and delayed evaluation in APL
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Design of Dynamic Data Structures
Design of Dynamic Data Structures
Principles of Database Systems
Principles of Database Systems
Functional Programming
Transformational programming: applications to algorithms and systems
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Access path selection in a relational database management system
SIGMOD '79 Proceedings of the 1979 ACM SIGMOD international conference on Management of data
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Aspects of applicative programming for file systems (Preliminary Version)
Proceedings of an ACM conference on Language design for reliable software
Program optimization based on a non-procedural specification
Program optimization based on a non-procedural specification
Dependence analysis for subscripted variables and its application to program transformations
Dependence analysis for subscripted variables and its application to program transformations
Rule-based transformation of relational queries into iterative programs
SIGMOD '86 Proceedings of the 1986 ACM SIGMOD international conference on Management of data
IEEE Transactions on Computers
A categorized bibliography on incremental computation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A query language and optimization techniques for unstructured data
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
Optimal weighted loop fusion for parallel programs
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
Proceedings of the 14th international conference on Supercomputing
The functional guts of the Kleisli query system
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
International Journal of Parallel Programming
Translating Aggregate Queries into Iterative Programs
VLDB '86 Proceedings of the 12th International Conference on Very Large Data Bases
Kleisli, a functional query system
Journal of Functional Programming
Optimizing aggregate array computations in loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Higher-Order and Symbolic Computation
Program optimizations and transformations in calculation form
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Hi-index | 0.00 |
Stream processing is a basic method of code optimization related to loop fusion that can improve the space and speed of iterative applicative expressions by a process of loop combination. It has been studied before in applications to program improvement and batch oriented database restructuring. Previous attempts at implementation have been either highly restrictive, have required manual intervention, or have involved naive strategies resulting in impractically slow running times. This paper defines a new model for a stream processing problem for handling a wide class of applicative expressions that can be evaluated by looping in an unordered way through a single set or tuple valued argument. This problem is formulated graph theoretically and shown to be NP-Hard, even in the presence of constraints. Two new efficient heuristic algorithms will be presented. The efficiency of these solutions allows stream processing to be applied dynamically as a database query optimization, and as an important component of a high level language optimizer. Our method of stream processing has been implemented and used effectively within the RAPTS transformational programming system.