ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
Compiling with continuations
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Is continuation-passing useful for data flow analysis?
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
A correspondence between continuation passing style and static single assignment form
IR '95 Papers from the 1995 ACM SIGPLAN workshop on Intermediate representations
A type system equivalent to flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Safe kernel extensions without run-time checking
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Linear-time subtransitive control flow analysis
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Data flow analysis is model checking of abstract interpretations
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)
A practical and flexible flow analysis for higher-order languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Constraint systems for useless variable elimination
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A semantic model of reference counting and its abstraction (detailed summary)
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
Principles of Program Analysis
Principles of Program Analysis
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Flow Analysis of Lambda Expressions (Preliminary Version)
Proceedings of the 8th Colloquium on Automata, Languages and Programming
LAMBDA: The Ultimate Declarative
LAMBDA: The Ultimate Declarative
Rabbit: A Compiler for Scheme
Orbit: an optimizing compiler for scheme
Orbit: an optimizing compiler for scheme
Compilation by program transformation
Compilation by program transformation
A calculus with polymorphic and polyvariant flow types
Journal of Functional Programming
Principles of Compiler Design (Addison-Wesley series in computer science and information processing)
Principles of Compiler Design (Addison-Wesley series in computer science and information processing)
Relating complexity and precision in control flow analysis
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Deciding kCFA is complete for EXPTIME
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
CFA2: a context-free approach to control-flow analysis
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Exact flow analysis by higher-order model checking
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Hi-index | 0.00 |
Traditional flow analysis techniques, such as the ones typically employed by optimising Fortran compilers, do not work for Scheme-like languages. This paper presents a flow analysis technique --- control flow analysis --- which is applicable to Scheme-like languages. As a demonstration application, the information gathered by control flow analysis is used to perform a traditional flow analysis problem, induction variable elimination. Extensions and limitations are discussed.The techniques presented in this paper are backed up by working code. They are applicable not only to Scheme, but also to related languages, such as Common Lisp and ML.