• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Control-Flow Analysis of Higher-Order Languages (1991)

Cached

  • Download as a PDF

Download Links

  • [repository.readscheme.org]
  • [repository.readscheme.org]
  • [repository.readscheme.org]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Olin Shivers
Citations:267 - 9 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@TECHREPORT{Shivers91control-flowanalysis,
    author = {Olin Shivers},
    title = {Control-Flow Analysis of Higher-Order Languages},
    institution = {},
    year = {1991}
}

Years of Citing Articles

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

representing the official policies, either expressed or implied, of ONR or the U.S. Government. Keywords: data-flow analysis, Scheme, LISP, ML, CPS, type recovery, higher-order functions, functional programming, optimising compilers, denotational semantics, nonstandard Programs written in powerful, higher-order languages like Scheme, ML, and Common Lisp should run as fast as their FORTRAN and C counterparts. They should, but they don’t. A major reason is the level of optimisation applied to these two classes of languages. Many FORTRAN and C compilers employ an arsenal of sophisticated global optimisations that depend upon data-flow analysis: common-subexpression elimination, loop-invariant detection, induction-variable elimination, and many, many more. Compilers for higherorder languages do not provide these optimisations. Without them, Scheme, LISP and ML compilers are doomed to produce code that runs slower than their FORTRAN and C counterparts. The problem is the lack of an explicit control-flow graph at compile time, something which traditional data-flow analysis techniques require. In this dissertation, I present a technique for recovering the control-flow graph of a Scheme program at compile time. I give examples of how this information can be used to perform several data-flow analysis optimisations, including copy propagation, induction-variable elimination, useless-variable elimination, and type recovery. The analysis is defined in terms of a non-standard semantic interpretation. The denotational semantics is carefully developed, and several theorems establishing the correctness of the semantics and the implementing algorithms are proven. iii ivTo my parents, Julia and Olin. v viContents

Citations

1 Waters 89] Richard C. Waters. Optimization of series expressions, part I: User's manual for the series macro package - Lab - 1982
1 Waters 89b] Richard C. Waters. Optimization of series expressions, part II: Overview of the theory and implementation - Lab - 1989
1 Wijngaarden 66] A. van Wijngaarden. Recursive definition of syntax and semantics - Lab - 1989
1 Richard C. Waters. Optimization of series expressions, part II: Overview of the theory and implementation - Lab - 1989
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University