| Paul Hudak and Jonathan Young. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, 13(2):269--190, April 1991. |
.... [27, 28] is one of the earliest and most influential of such proposals, although there have been numerous others [7, 12, 34] In fact, it seems clear that the next ANSI standard for FORTRAN, which we shall refer to as FORTRAN 8x, will contain explicit vector operations like those in VECTRAN [5, 26]. Suppose that, instead of a vectorizing FORTRAN compiler, we were to provide FORTRAN 8x compilers for use with vector machines. This would allow programmers to bypass the implicitly sequential semantics of FORTRAN and explicitly code vector algorithms in a language designed for that purpose. ....
PAUL, G., private communication, 1980. ACM Transactions on Programming Languages and Systems, Vol. 9, No. 4, October 1987.
.... It therefore seems, at least at rst sight, necessary to combine the strictness analysis with some kind of collecting interpretation or ow analysis which computes (an approximation to) the set of (strictness properties of) terms which could become bound to those variables during execution [HY91]. For this reason [NN90] uses a non sticky analysis. Burn [Bur91] does use a sticky analysis to annotate applications with evaluation transformer information derived by abstract interpretation, but he appears to propose the use of rather weak ( context free ) annotations for higher order ....
P. Hudak and J. Young. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, 13(2):269-290, April 1991.
....gives every subexpression a name to which the data flow analyzer can associate information about the expression. Without A normalization, the analyzer would typically associate a label with every expression and attach the information about each expression at the corresponding label [53, 72, 92]. The two treatments are identical but the elimination of a separate notion of labels simplifies the analyzers. The second phase of A normalization re orders the expressions to reflect the order in which the interpreters will traverse them. For example, an expression (add1 (let (x V ) 0) would be ....
....a new location from which it is possible to recover x, i.e. new (x; s) 62 dom(s) and x = new ( For brevity, we will usually omit the second argument to new since it is easy to reconstruct from the context. 122 Based on well known ideas from the area of abstract interpretation [16, 53, 72, 92], we derive a data flow analyzer from the previous interpreter. The first step in the derivation is to associate one location with each variable that holds the set of all values to which the variable is bound during the evaluation of the program. Second, we approximate the infinite sets of values, ....
Hudak, P. and Young, J. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, 13, 2 (April 1991) 269--290.
....noting that Kozen and Patron study only well structured programs, i.e. those with while loops but no goto statements, whereas we do not make this restriction. Some transformation correctness proofs have been made for functional languages, especially the work by Wand and colleagues, for example [31], using logical relations. These methods are mathematically rather more sophisticated than those of this paper, which seem more appropriate for traditional intermediate code optimizations. 1.4 Model checking and program analysis This situation has improved with the advent of model checking ....
Paul A. Steckler and Mitchell Wand. Lightweight Closure Conversion. ACM Transactions on Programming Languages and Systems, ACM, 19(1):48--86, January 1997.
....Lambda lifting also considers those of the callees of this lambda abstraction. In the latter sense, lambda lifting can be seen as the transitive closure of closure conversion. Steckler and Wand consider a mix between lambda dropping and closure conversion: so called lightweight closures [44]. Such closures do not hold the free variables that are in scope at the application sites of this closure. A similar concern leads Shao and Appel to consider whether to implement closures in a deep or in a at way [42] 6.4 Analogy with the CPS transformation An analogy can be drawn between ....
Paul A. Steckler and Mitchell Wand. Lightweight closure conversion. ACM Transactions on Programming Languages and Systems, 19(1):48-86, January 1997.
....Lambda lifting also considers those of the callees of this lambda abstraction. In the latter sense, lambda lifting can be seen as the transitive closure of closure conversion. Steckler and Wand consider a mix between lambda dropping and closure conversion: so called lightweight closures [44]. Such closures do not hold the free variables that are in scope at the application sites of this closure. A similar concern leads Shao and Appel to consider whether to implement closures in a deep or in a flat way [42] 6.4 Analogy with the CPS transformation An analogy can be drawn between ....
Paul A. Steckler and Mitchell Wand. Lightweight closure conversion. ACM Transactions on Programming Languages and Systems, 19(1):48--86, January 1997.
.... code motion and strength reduction. Very few formal proofs have been made of correctness of such transformations; one is an unpublished chapter in [18] A few transformation correctness proofs have been made for functional languages, especially the work by Wand and colleagues, for example [24], using methods that are mathematically rather more sophisticated than those of this paper. 1.2 Semantics based program manipulation Much has happened in this eld since the path breaking 1977 Cousot paper [5] and 1980 conference [9] The eld of abstract interpretation [1, 5, 6, 11, 17, 19] ....
Paul A. Steckler and Mitchell Wand. Lightweight Closure Conversion. ACM Transactions on Programming Languages and Systems., ACM, pp. 48-86, January 1997.
....gives every subexpression a name to which the data flow analyzer can associate information about the expression. Without A normalization, the analyzer would typically associate a label with every expression and attach the information about each expression at the corresponding label [9, 14, 16]. The two treatments are identical but the elimination of the labels simplifies the analyzers. The second phase of A normalization re orders the expressions to reflect the order in which the interpreters will traverse them. For example, an expression (add1 (let (x V ) 0) would be rewritten as ....
....: u]i C A hh(let (x [ M) aei : hu; sii ret A Figure 2: Semantic CPS Interpreter transformation: it reifies the continuation of the evaluator to an object that the program text may manipulate. 4 4 Constant Propagation Based on well known ideas from the area of abstract interpretation [4, 9, 14, 16], we derive a data flow analyzer from each of the previous interpreters. The first step in the derivation is to associate one location with each variable that holds the set of all values to which the variable is bound during the evaluation of the program. Second, we approximate the infinite sets ....
Hudak, P. and Young, J. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, 13, 2 (April 1991) 269--290.
....exceptions. Extensional Characterisations We do not have an algorithm independent characterisation of the slice we compute. We would like to investigate whether we can provide a denotational characterisation or a collecting interpretation on a lazy semantics, along the lines of Hudak and Young [33]. 97 Chapter 8 Program Instrumentation and an Implementation Overview The earlier chapters of this thesis presented natural deduction proof systems for the computation of an executable dynamic slice of a higher order program. A naive but labor intensive way of implementing the specification ....
P. Hudak and J. Young. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, 13:269--290, 1991.
....in optimizing compilers [11] However, while there is a well accepted notion of what the loops in a reducible graph are [19] there is less agreement about how the loop nesting forest should be defined for arbitrary graphs. For instance, Steensgaard [18] Sreedhar et al. 17] and Havlak [9] each provide a different definition. Each of these definitions has its advantages and disadvantages. Rather than work with one of these definitions, we introduce an axiomatic definition of a loop nesting forest that all three forests satisfy. We also introduce an equivalent constructive ....
....identifies a different set of loops. Consider the control flow graph shown in Fig. 1(a) In this example, the Sreedhar Gao Lee algorithm [17] identifies a single loop f u; v; w; x g, while Steensgaard s algorithm [18] identifies two loops f u; v; w; x g and f w; x g, while Havlak s algorithm [9] identifies three loops f u; v; w; x g, f w; x; v g and f x; v g. The loops identified by Havlak s algorithm actually depend on the order in which vertices are visited during depth first search; in the above example, we assume that vertex u is visited before v. Which of these definitions is the ....
[Article contains additional citation context not shown here]
Paul Havlak. Nesting of reducible and irreducible loops. ACM Transactions on Programming Languages and Systems, 19(4):557--567, July 1997.
....used in optimizing compilers [12] However, while there is a well accepted notion of what the loops in a reducible graph are [21] there is less agreement about how the loop nesting forest should be defined for arbitrary graphs. For instance, Steensgaard [20] Sreedhar et al. 19] and Havlak [10] each provide a different definition. Each of these definitions has its advantages and disadvantages. Rather than work with one of these definitions, we introduce an axiomatic definition of a loop nesting forest that all three forests satisfy. We also introduce an equivalent constructive ....
....identifies a different set of loops. Consider the control flow graph shown in Fig. 1(a) In this example, the Sreedhar Gao Lee algorithm [19] identifies a single loop f u; v; w; x g, while Steensgaard s algorithm [20] identifies two loops f u; v; w; x g and f w; x g, while Havlak s algorithm [10] identifies three loops f u; v; w; x g, f w; x; v g and f x; v g. The loops identified by Havlak s algorithm actually depend on the order in which vertices are visited during depth first search; in the above example, we assume that vertex u is visited before v. The notion of a loop s headers, ....
[Article contains additional citation context not shown here]
Paul Havlak. Nesting of reducible and irreducible loops. ACM Transactions on Programming Languages and Systems, 19(4):557--567, July 1997.
....need to be overcome if we take this approach. There is a well accepted notion of a loop nesting forest for reducible graphs [22] but there is less agreement about how the loop nesting forest should be defined for arbitrary graphs. For instance, Steensgaard [21] Sreedhar et al. 20] and Havlak [10] each provide a different definition. We show that these seemingly very different definitions can all be expressed in a common framework that helps illustrate the commonality and similarity between these loop nesting forests. We study the properties shared by the family of loop nesting forests ....
....stronger properties than those implied by the above definitions. 3.2 Loop Nesting Forests: A Constructive Characterization We now present a constructive scheme for generating a family of loop nesting forests. The following definition generalizes definitions due to Steensgaard [21] and Havlak [10], by abstracting the header function. Consider any header function H : 2 V (G) 2 V (G) such that for every non empty X, OE 6= H(X) UnDominated(X) We will show that this identifies a collection of loops satisfying Definition 1. Consider SCC(G) the collection of non trivial strongly ....
[Article contains additional citation context not shown here]
Paul Havlak. Nesting of reducible and irreducible loops. ACM Transactions on Programming Languages and Systems, 19(4):557--567, July 1997.
....for higher order languages. Since procedures are data, both control flow and data flow information must be computed simultaneously. Work in # This work supported by NSF grant CCR 9623753. the last several years, however, has made flow analyses a more viable tool for program transformations [5, 12, 26], including compiler optimizations [2, 4, 17, 18, 23] A flow analysis is either monovariant or polyvariant. A monovariant analysis uses a single abstract evaluation context to model the evaluation of an expression. Thus, a single abstract value is associated with each expression in the program. ....
....some or all call sites inlined. The contour set and loop map represent the inlining context, and the role of each will be explained together with the algorithm. Given a program e,thevalueofI[ e ] ## is the inlined program. The target language of the inlining algorithm is a closure converted [26] variant of the source. Closure conversion is required, since procedures may be inlined outside of the lexical scope of their free variables. The behavior of the function I depends first on the form of input expression. Constants and variables are mapped to themselves. A begin expression is ....
Paul A. Steckler and Mitchell Wand. Lightweight closure conversion. ACM Transactions on Programming Languages and Systems, 19(1):48--86, 1997.
....for higher order languages. Since procedures are data, both control flow and data flow information must be computed simultaneously. Work in This work supported by NSF grant CCR 9623753. the last several years, however, has made flow analyses a more viable tool for program transformations [5, 12, 26], including compiler optimizations [2, 4, 17, 18, 23] A flow analysis is either monovariant or polyvariant. A monovariant analysis uses a single abstract evaluation context to model the evaluation of an expression. Thus, a single abstract value is associated with each expression in the program. A ....
....some or all call sites inlined. The contour set and loop map represent the inlining context, and the role of each will be explained together with the algorithm. Given a program e, the value of I[ e] is the inlined program. The target language of the inlining algorithm is a closure converted [26] variant of the source. Closure conversion is required, since procedures may be inlined outside of the lexical scope of their free variables. The behavior of the function I depends first on the form of input expression. Constants and variables are mapped to themselves. A begin expression is ....
Paul A. Steckler and Mitchell Wand. Lightweight closure conversion. ACM Transactions on Programming Languages and Systems, 19(1):48--86, 1997.
....systems do not consider operations on shared variables, nor are they applicable to programs with higher order procedures that may initiate such operations. The formal underpinnings of our interpretation technique are similar to those underlying formal optimization frameworks devised for functional [3, 17] and logic programming [11] languages. Insofar as we use abstract interpretation [10] as an optimization tool for higher order languages, our work also bears close resemblance to type recovery and flow analysis algorithms developed for languages such as Scheme [18, 30, 31] and to alias and ....
Paul Hudak and Jonathan Young. A Collecting Interpretation of Expressions. ACM Transactions on Programming Languages and Systems, pages 269--290, April 1991.
....gives every subexpression a name to which the data flow analyzer can associate information about the expression. Without A normalization, the analyzer would typically associate a label with every expression and attach the information about each expression at the corresponding label [53, 72, 92]. The two treatments are identical but the elimination of a separate notion of labels simplifies the analyzers. The second phase of A normalization re orders the expressions to reflect the order in which the interpreters will traverse them. For example, an expression (add1 (let (x V ) 0) would ....
....new location from which it is possible to recover x, i.e. new (x; s) 62 dom(s) and x = new Gamma1 ( For brevity, we will usually omit the second argument to new since it is easy to reconstruct from the context. 122 Based on well known ideas from the area of abstract interpretation [16, 53, 72, 92], we derive a data flow analyzer from the previous interpreter. The first step in the derivation is to associate one location with each variable that holds the set of all values to which the variable is bound during the evaluation of the program. Second, we approximate the infinite sets of values, ....
Hudak, P. and Young, J. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, 13, 2 (April 1991) 269--290.
.... giving all of the possible shapes of structured data at a given label [12, 20] ffl Linear relationships amongst integer valued variables (e.g. x = y Gamma z) at a given label [16, 21] Typically, the construction of an analyzer begins with a so called concrete or collecting semantics [11, 18] in which programs are assigned meanings of the form C 2 Label (State) where (State) is the powerset of program states. Then, from the collecting semantics, a program analyzer (that is, an algorithm for computing S from the program text) is derived in such a way that each element of ....
Paul Hudak and Jonathan Young. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, 13(2):269--190, April 1991.
.... It therefore seems, at least at first sight, necessary to combine the strictness analysis with some kind of collecting interpretation or flow analysis which computes (an approximation to) the set of (strictness properties of) terms which could become bound to those variables during execution [HY91]. For this reason [NN90] uses a non sticky analysis. Burn [Bur91] does use a sticky analysis to annotate applications with evaluation transformer information derived by abstract interpretation, but he appears to propose the use of rather weak ( context free ) annotations for higher order ....
P. Hudak and J. Young. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, 13(2):269--290, April 1991.
....0 ) then = 0 . 5.1 Related work Locality issues in Distributed Poly ML are addressed in [11] where a global data ow analysis to detect local channels is presented. The syntactic approach to data ow analysis used there built upon earlier work for sequential languages, for example, 12] and [13]. Such global analyses, contrary to the type based analysis designed here, are inherently non compositional. That work uses a language that is similar to ours and it does a reachability analysis that detects some cases of mutable objects that go to processors di erent where they were declared but ....
Paul Steckler and Mitchell Wand. Lightweight closure conversion. ACM Transactions on Programming Languages and Systems, 19(1):48-46, January 1997.
No context found.
Paul Hudak and Jonathan Young. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, 13(2):269--190, April 1991.
No context found.
P. Hudak and J. Young. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, Vol. 13, No. 2, April 1991, 269--290.
No context found.
P. Hudak and J. Young. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, Vol. 13, No. 2, April 1991, 269--290.
No context found.
Paul N. Hilfinger. An Ada package for dimensional analysis. ACM Transactions on Programming Languages and Systems, 10(2):189-- 203, April 1988.
No context found.
Paul Havlak. Nesting of reducible and irreducible loops. ACM Transactions on Programming Languages and Systems, 19(4):557--567, July 1997.
No context found.
P. Hudak and J. Young. Collecting interpretations of expressions. ACM Transactions on Programming Languages and Systems, Vol. 13, No. 2, April 1991, 269--290. 18 A Modular Implementation of Partial Evaluation
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC