Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
ICS '88 Proceedings of the 2nd international conference on Supercomputing
A practical algorithm for exact array dependence analysis
Communications of the ACM
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Array-data flow analysis and its use in array privatization
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Some efficient solutions to the affine scheduling problem: I. One-dimensional time
International Journal of Parallel Programming
Interprocedural may-alias analysis for pointers: beyond k-limiting
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Beyond induction variables: detecting and classifying sequences using a demand-driven SSA form
ACM Transactions on Programming Languages and Systems (TOPLAS)
Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Handbook of formal languages, vol. 1: word, language, grammar
Handbook of formal languages, vol. 1: word, language, grammar
Handbook of formal languages, vol. 3: beyond words
Handbook of formal languages, vol. 3: beyond words
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the representation of finite deterministic 2-tape automata
Theoretical Computer Science
Efficient algorithms for pre* and post* on interprocedural parallel flow graphs
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Monotonic evolution: an alternative to induction variable substitution for dependence analysis
ICS '01 Proceedings of the 15th international conference on Supercomputing
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Reasoning about Program Transformations
Reasoning about Program Transformations
Principles of Program Analysis
Principles of Program Analysis
High Performance Compilers for Parallel Computing
High Performance Compilers for Parallel Computing
Word Processing in Groups
PSLS '95 Proceedings of the International Workshop on Parallel Symbolic Languages and Systems
A Parallelization Framework for Recursive Tree Programs
Euro-Par '98 Proceedings of the 4th International Euro-Par Conference on Parallel Processing
An Automata-Theoretic Approach to Interprocedural Data-Flow Analysis
FoSSaCS '99 Proceedings of the Second International Conference on Foundations of Software Science and Computation Structure, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS'99
Nonuniform Alias Analysis of Recursive Data Structures and Arrays
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
Advanced Functional Programming, Second International School-Tutorial Text
Instance-Wise Reaching Definition Analysis for Recursive Programs using Context-Free Transductions
PACT '98 Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques
Symbolic path simulation in path-sensitive dataflow analysis
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On relations defined by generalized finite automata
IBM Journal of Research and Development
Weighted pushdown systems and their application to interprocedural dataflow analysis
SAS'03 Proceedings of the 10th international conference on Static analysis
Induction variable analysis with delayed abstractions
HiPEAC'05 Proceedings of the First international conference on High Performance Embedded Architectures and Compilers
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
Hi-index | 0.00 |
We introduce a formalism to reason about program properties at an infinite number of runtime control points, called instances. Infinite sets of instances are represented by rational languages. This framework gives a formal foundation to the well known concept of iteration vectors, extending it to recursive programs with any structured control flow (nested loops and recursive calls). We also extend the concept of induction variables to recursive programs. For a class of monoid-based data structures, including arrays and trees, induction variables capture the exact memory location accessed at every step of the execution. This compile-time characterization is computed in polynomial time as a rational function. Applications include dependence and region analysis for array and tree algorithms, array expansion, and automatic parallelization of recursive programs.