Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Lightweight closure conversion
Steckler P., Wand M. ACM Transactions on Programming Languages and Systems19 (1):48-86,1997.Type:Article
Date Reviewed: Dec 1 1997

In order to enable a compiler to emit fast code, the authors annotate source programs with propositions during a program analysis phase. These propositions later justify certain transformations. While this is a manageable task in the analysis of classical programs, it becomes complex for higher-order programs.

The so-called lightweight closure conversion deserves attention in the field of lexically scoped functional languages. A closure is meant to be a data structure that contains pure code (closed &lgr;-abstraction) and the values of the free variables of the original procedure, the so-called  environment. 

In many cases, a closure need not include all of the free variables of a procedure, because some of the free variables are available at all of the places where the closure might be invoked. These variables are called dynamic because they behave the same as they would if the language used dynamic scope. The incomplete closure is then called a “lightweight” closure. Several examples shed light on the possible introduction of lightweight closures and where they must be prohibited.

In the rest of the paper, the simple language λ i n is presented. It consists of an untyped &lgr;-calculus with integer constants, Boolean constants, conditionals, and primitive operators. It follows the syntax and semantics of the annotations, which are added to the program during the analysis. These annotations may be derived as the solution to a deductive system, for which soundness is proven.

The paper aims at a theoretically oriented audience, in that many proofs and formalisms are included in the well-founded but very technical text.

Reviewer:  A. Bayer Review #: CR120745 (9712-1000)
Bookmark and Share
 
Compilers (D.3.4 ... )
 
 
Operational Semantics (F.3.2 ... )
 
 
Optimization (D.3.4 ... )
 
 
Pre- And Post-Conditions (F.3.1 ... )
 
 
Procedures, Functions, And Subroutines (D.3.3 ... )
 
 
Language Constructs and Features (D.3.3 )
 
  more  
Would you recommend this review?
yes
no
Other reviews under "Compilers": Date
An architecture for combinator graph reduction
Philip John J., Academic Press Prof., Inc., San Diego, CA, 1990. Type: Book (9780124192409)
Feb 1 1992
Crafting a compiler with C
Fischer C., Richard J. J., Benjamin-Cummings Publ. Co., Inc., Redwood City, CA, 1991. Type: Book (9780805321661)
Feb 1 1992
A methodology and notation for compiler front end design
Brown C., Paul W. J. Software--Practice & Experience 14(4): 335-346, 1984. Type: Article
Jun 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy