Application of lattice algebra to loop optimization
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The theory of parsing, translation, and compiling
The theory of parsing, translation, and compiling
Programming languages and their compilers: Preliminary notes
Programming languages and their compilers: Preliminary notes
Mechanical translation of set theoretic problem specifications into efficient RAM code-A case study
Journal of Symbolic Computation
A categorized bibliography on incremental computation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Symbolic analysis for parallelizing compilers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Future directions in program transformations
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Some Observations Concerning Formal Differentiation of Set Theoretic Expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Finite Differencing of Computable Expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficiency by Incrementalization: An Introduction
Higher-Order and Symbolic Computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generalized common subexpressions in very high level languages
POPL '77 Proceedings of the 4th 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
Symbolic evaluation and the global value graph
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Transformational programming: applications to algorithms and systems
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Inductively computable constructs in very high level languages
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Rule Ordering in Bottom-Up Fixpoint Evaluation of Logic Programs
IEEE Transactions on Knowledge and Data Engineering
Computational Divided Differencing and Divided-Difference Arithmetics
Higher-Order and Symbolic Computation
Optimizing aggregate array computations in loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Higher-Order and Symbolic Computation
Core role-based access control: efficient implementations by transformations
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Generating incremental implementations of object-set queries
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Formal integration: A program transformation technique
Computer Languages
Hi-index | 0.02 |
We explore the notion of an induction variable in the context of a set-theoretic programming langugage. An appropriate definition, we believe, involves both the necessity that changes in the variable around a loop be easily computable and that they be small. We attempt to justify these requirements and show why they are independent assumptions. Next the question of what operators on sets play the role of +, − and * for arithmetic languages is explored, and several theorems allowing us recursively to detect induction variables in a loop are given. It is shown that most of the usual set operations do fit nicely into the theory and help form induction variables. The reason most variables fail to be induction variables concerns the structure of control flow, more than it does the operators applied.