Proofs and types
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
A formulae-as-type notion of control
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deciding ML typability is complete for deterministic exponential time
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Replacing function parameters by global variables
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
The complexity of type inference for higher-order lambda calculi
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
A simple proof of a theorem of Statman
Theoretical Computer Science
Set-based analysis of ML programs
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Closure analysis in constraint form
ACM Transactions on Programming Languages and Systems (TOPLAS)
Paths, computations and labels in the &lgr;-calculus
RTA-93 Selected papers of the fifth international conference on Rewriting techniques and applications
A type system equivalent to flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
From proof-nets to interaction nets
Proceedings of the workshop on Advances in linear logic
Linear-time subtransitive control flow analysis
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
A modular, polyvariant and type-based closure analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Infinitary control flow analysis: a collecting semantics for closure analysis
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From polyvariant flow information to intersection and union types
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parallel beta reduction is not elementary recursive
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polymorphic splitting: an effective polyvariant flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Undecidability of context-sensitive data-dependence analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Principles of Program Analysis
Principles of Program Analysis
Lambda-My-Calculus: An Algorithmic Interpretation of Classical Natural Deduction
LPAR '92 Proceedings of the International Conference on Logic Programming and Automated Reasoning
Separate Abstract Interpretation for Control-Flow Analysis
TACS '94 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Flow Analysis of Lambda Expressions (Preliminary Version)
Proceedings of the 8th Colloquium on Automata, Languages and Programming
From Hilbert Spaces to Dilbert Spaces: Context Semantics Made Simple
FST TCS '02 Proceedings of the 22nd Conference Kanpur on Foundations of Software Technology and Theoretical Computer Science
Polyvariance, Polymorphism and Flow Analysis
Selected papers from the 5th LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages
Optimizing Lazy Functional Programs Using Flow Inference
SAS '95 Proceedings of the Second International Symposium on Static Analysis
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Declarative Continuations: an Investigation of Duality in Programming Language Semantics
Category Theory and Computer Science
Control-Flow Analysis and Type Systems
SAS '95 Proceedings of the Second International Symposium on Static Analysis
On the Cubic Bottleneck in Subtyping and Flow Analysis
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
From Hilbert space to Dilbert space: context semantics as a language for games and flow analysis
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Modular control-flow analysis with rank 2 intersection types
Mathematical Structures in Computer Science
Higher-order control-flow analysis in retrospect: lessons learned, lessons abandoned
ACM SIGPLAN Notices - Best of PLDI 1979-1999
The circuit value problem is log space complete for P
ACM SIGACT News
Types, potency, and idempotency: why nonlinearity and amnesia make a type system work
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Linear lambda calculus and PTIME-completeness
Journal of Functional Programming
Deciding kCFA is complete for EXPTIME
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Flow Analysis, Linearity, and PTIME
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Science of Computer Programming
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
EigenCFA: accelerating flow analysis with GPUs
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Control-flow analysis of functional programs
ACM Computing Surveys (CSUR)
Logical approximation for program analysis
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
We analyze the computational complexity of kCFA, a hierarchy of control flow analyses that determine which functions may be applied at a given call-site. This hierarchy specifies related decision problems, quite apart from any algorithms that may implement their solutions. We identify a simple decision problem answered by this analysis and prove that in the 0CFA case, the problem is complete for polynomial time. The proof is based on a nonstandard, symmetric implementation of Boolean logic within multiplicative linear logic (MLL). We also identify a simpler version of 0CFA related to η-expansion, and prove that it is complete for logarithmic space, using arguments based on computing paths and permutations. For any fixed k0, it is known that kCFA (and the analogous decision problem) can be computed in time exponential in the program size. For k=1, we show that the decision problem is NP-hard, and sketch why this remains true for larger fixed values of k. The proof technique depends on using the approximation of CFA as an essentially nondeterministic computing mechanism, as distinct from the exactness of normalization. When k=n, so that the "depth" of the control flow analysis grows linearly in the program length, we show that the decision problem is complete for exponential time. In addition, we sketch how the analysis presented here may be extended naturally to languages with control operators. All of the insights presented give clear examples of how straightforward observations about linearity, and linear logic, may in turn be used to give a greater understanding of functional programming and program analysis.