MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Meanings of Programs]: Semantics of Programming Languages---operational semantics

Download:
Download as a PDF | Download as a PS
by Paul A. Steckler
http://ftp.ccs.neu.edu/pub/people/wand/papers/steckler-wand-97.ps
Add To MetaCart

Abstract:

We consider the problem of lightweight closure conversion, in which multiple procedure call protocols may coexist in the same code. A lightweight closure omits bindings for some of the free variables of the procedure that it represents. Flow analysis is used to match the protocol expected by each procedure and the protocol used at its possible call sites. We formulate the flow analysis as a deductive system that generates a labeled transition system and a set of constraints. We show that any solution to the constraints justifies the resulting transformation. Some of the techniques used are similar to those of abstract interpretation, but others appear to be novel.

Citations

2762 Communication and Concurrency – Milner - 1989
1266 Abstract interpretation : a unified lattice model for the static analysis of programs by construction or approximation of fixpoints – Cousot, Cousot - 1977
952 An axiomatic basis for computer programming – Hoare - 1969
588 Compiling with Continuations – Appel - 1992
402 Assigning meanings to programs – Floyd - 1967
257 The mechanical evaluation of expressions – Landin - 1964
251 Call-by-name, call-by-value and the *-calculus – Plotkin - 1975
231 Control-Flow Analysis of Higher-Order Languages or Taming Lambda – Shivers - 1991
226 A unified approach to global program optimization – Kildall - 1973
205 Orbit: An optimizing compiler for Scheme – Kranz, Kelsey, et al. - 1986
159 ObjectOriented Type Systems – Palsberg, Schwartzbach - 1994
138 Typed closure conversion – Minimide, Morrisett, et al. - 1996
129 RABBIT: A compiler for SCHEME – Steele - 1978
112 closure-passing style – Appel, Jim, et al. - 1989
97 Set Based Program Analysis – Heintze - 1992
97 A flexible approach to interprocedural data flow analysis and programs with recursive data structures – Jones, Muchnick - 1982
82 A compiler for lazy ML – Augustsson - 1984
78 Selective and lightweight closure conversion – Wand, Steckler - 1994
74 Replacing function parameters by global variables. M.Phil – Sestoft - 1988
63 Space-efficient closure representations – Shao, Appel - 1994
46 Analysis and Efficient Implementation of Functional Programs – Sestoft - 1991
41 Safety analysis versus type inference – Palsberg, Schwartzbach - 1995
39 Compilation of functional languages by program transformation – Fradet, Métayer - 1991
38 Specifying the correctness of binding-time analysis – Wand - 1993
36 Correctness of procedure representations in higher-order assembly language – Wand - 1991
27 Flow Analysis of Lambda Expressions – Jones - 1981
26 Type systems for closure conversion – Hannan - 1995
23 Program transformations in a denotational setting – Nielson - 1985
21 Automatic autoprojection of higher-order recursive equations – Bondorf - 1991
21 Set-based analysis for full Scheme and its use in soft-typing – Flanagan, Felleisen - 1995
21 Is continuation-passing useful for data flow analysis – Sabry, Felleisen - 1994
20 An Equational Framework for the Flow Analysis of Higher-Order Functional Programs – Stefanescu, Zhou - 1994
14 Selective thunkification – Steckler, Wand - 1994
8 Abstract analysis and optimization of Scheme – Ayers - 1993
5 Correct Higher-Order Program Transformations – Steckler - 1994
3 Flow analysis of lambda expressions (preliminary version – Jones - 1981
2 Programming Languages Selective and Lightweight Closure Conversion \Delta 39 – Steckler, Wand - 1994
1 Programming Languages Lightweight Closure Conversion \Delta 39 – Nielson - 1985
1 Detecting local channels – Steckler - 1996
1 Tracking available values for lightweight closures (summary – Steckler, Wand - 1994
1 Programming Languages Lightweight Closure Conversion \Delta 39 – Minamide, Morrisett, et al. - 1996