On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
A fast algorithm for code movement optimisation
ACM SIGPLAN Notices
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Static type inference in a dynamically typed language
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Properties of data flow frameworks: a unified model
Acta Informatica
Dynamic typing in a statically typed language
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
How to analyze large programs efficiently and informatively
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
A variation of Knoop, Rüthing, and Steffen's Lazy Code Motion
ACM SIGPLAN Notices
Complexity of bi-directional data flow analysis
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An elimination algorithm for bidirectional data flow problems using edge placement
ACM Transactions on Programming Languages and Systems (TOPLAS)
Soft typing with conditional types
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
GIVE-N-TAKE—a balanced code placement framework
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Effective partial redundancy elimination
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Optimal code motion: theory and practice
ACM Transactions on Programming Languages and Systems (TOPLAS)
A generalized theory of bit vector data flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A type system equivalent to flow analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The power of assignment motion
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
A simple algorithm for partial redundancy elimination
ACM SIGPLAN Notices
Global optimization by suppression of partial redundancies
Communications of the ACM
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Partial redundancy elimination is not bidirectional
ACM SIGPLAN Notices
Bidirectional data flow analysis: myths and reality
ACM SIGPLAN Notices
Making Type Inference Practical
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Bidirectional Data Flow Analysis in Code Motion: Myth and Reality
SAS '98 Proceedings of the 5th International Symposium on Static Analysis
Flow Logics for Constraint Based Analysis
CC '98 Proceedings of the 7th International Conference on Compiler Construction
Interacting code motion transformations: their impact and their complexity
Interacting code motion transformations: their impact and their complexity
Decoupling classes with inferred interfaces
Proceedings of the 2006 ACM symposium on Applied computing
Heap reference analysis using access graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Bidirectional data-flow analyses, type-systematically
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Hi-index | 0.00 |
Tennenbaum's data flow analysis based formulation of type inferencing is termed bidirectional in the ''Dragon Book''; however, it fails to qualify as a formal data flow framework and is not amenable to complexity analysis. Further, the types discovered are imprecise. Here, we define a formal data flow framework (based on bidirectional data flow analysis) which discovers more precise type information and is amenable to complexity analysis. We compare data flow analyses with the more general constraint-based analyses and observe that data flow analyses represent program analyses without unbounded auxiliary store. We show that if unlimited auxiliary store is allowed then no data flow analysis would need more than two passes; if auxiliary store is disallowed then type inferencing requires bidirectional data flow analysis.