article
Free Access

Control flow analysis in scheme

Published:01 June 1988Publication History

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

  1. Dragon Aho, Ullman. Principles of Compiler Design. Addison-Wesley (1977). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Hecht Hecht, Matthew S, Data Flow Analysis of Computer Programs. American Elsevier (New York, 1977). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Declarative Steele, Guy L. Lambda: The Ultimate Declarative. AI Memo 379. M1T AI Lab (Cambridge, November 1976). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Rabbit Guy L. Steele. Rabbit: A Compiler for Scheme. AI-TR-474. MIT AI Lab (Cambridge, May 1978). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. LetS Waters, Richard C. LETS: an Expressional Loop Notation. AI Memo 680. MIT AI Lab (Cambridge, October 1982).Google ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. Hudak2 Hudak, Paul. Collecting Interpretations of Expressions (Preliminary Version). Research Report YALEU/DCS/RR-497. Yale University (August 1986).Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Control flow analysis in scheme

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 23, Issue 7
        Proceedings of the SIGPLAN '88 conference on Programming language design and implementation
        July 1988
        338 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/960116
        Issue’s Table of Contents
        • cover image ACM Conferences
          PLDI '88: Proceedings of the ACM SIGPLAN 1988 conference on Programming language design and implementation
          June 1988
          338 pages
          ISBN:0897912691
          DOI:10.1145/53990

        Copyright © 1988 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 June 1988

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!