Abstract
Traditional flow analysis techniques, such as the ones typically employed by optimizing 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.
References
- Dragon Aho, Ullman. Principles of Compiler Design. Addison-Wesley (1977). Google Scholar
Digital Library
- Hecht Hecht, Matthew S, Data Flow Analysis of Computer Programs. American Elsevier (New York, 1977). Google Scholar
Digital Library
- R3-Report J. Rees & W. Clinger, Ed. "The Revised3 Report on the Algorithmic Language Scheme." SIG- PLAN Notices 21 (12) (Dec. 1986), pp. 37-79. Google Scholar
Digital Library
- Declarative Steele, Guy L. Lambda: The Ultimate Declarative. AI Memo 379. M1T AI Lab (Cambridge, November 1976). Google Scholar
Digital Library
- Rabbit Guy L. Steele. Rabbit: A Compiler for Scheme. AI-TR-474. MIT AI Lab (Cambridge, May 1978). Google Scholar
Digital Library
- ORBIT Kranz, David, et al. "Orbit: An Optimizing Compiler for Scheme." Proceedings of SIGPLAN '86 Symposium on Compiler Construction (June 1986), pp. 219-233. Google Scholar
Digital Library
- LetS Waters, Richard C. LETS: an Expressional Loop Notation. AI Memo 680. MIT AI Lab (Cambridge, October 1982).Google Scholar
- YLoop Online documentation for the T3 implementation of the Yloop package is distributed by its current maintainer: Prof. Chris Riesbeck, Yale CS Dept. ([email protected] arpa),Google Scholar
- Hudak1 Hudak, Paul. "A Semantic Model of Reference Counting and its Abstraction." Proceedings of the 1986 ACM Conference on Lisp and Functional Programming (August 1986). Google Scholar
Digital Library
- Hudak2 Hudak, Paul. Collecting Interpretations of Expressions (Preliminary Version). Research Report YALEU/DCS/RR-497. Yale University (August 1986).Google Scholar
- Cousot P. Cousot and R. Cousot. "Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints." 4th ACM Symposium on Principles of Programming Languages (1977), pp. 238-252. Google Scholar
Digital Library
Index Terms
Control flow analysis in scheme





Comments