| FLANAGAN, C., AND FELLEISEN, M. The semantics of future and its use in program optimizations. In Conference Record of the ACM Symposium on Principles of Programming Languages (San Francisco, California, Jan.). 1995, pp. 209--220. |
.... CBV Big Step Closure Semantics Sestoft 91[Ses91] CBN Small Step Closure Semantics Shivers 91[Shi91] CPS Denotational Closure Semantics Palsberg Schwartzbach 95[PS95] CBV Big Step Closure Semantics Palsberg Schwartzbach 95[PS95] CBN Big Step Closure Semantics Flanagan Felleisen 95[FF95] ANF Small Step Closure Semantics Palsberg 95 [Pal95] b Small Step Substitution Semantics Nielson Nielson 97[NN97] CBV Small Step Closure Semantics Wand Williamson 02[WW02] b Small Step Substitution Semantics Figure 1: 0CFA Soundness Results We do this in the framework of ....
....If F(lab(e) is empty, then by the prediction theorem, e cannot terminate with an abstraction. x 2 Var Variables l; b 2 Lab Labels e : x j (e 1 e 2 ) e) j Expressions v : e) Values r : v j err Results Figure 2: Syntax Our choice of notation (taken from [FF95]) minimizes the profusion of labels (compare [WS99] nevertheless we will omit labels when they are not important. We write e 2 e whenever e occurs as a subexpression of e , i.e. whenever e = C[e] for any context C, including both the empty context and binding contexts. We express our ....
Cormac Flanagan and Matthias Felleisen. The semantics of future and its use in program optimization. In ACM, editor, Proceedings 22nd Annual ACM Symposium on Principles of Programming Languages, pages 209--220, 1995.
....several access patterns Linda[9] supports abstract coordination too. Again, it does not contain algorithmic access patterns. certainly, path expression[4] are related to coordinators. Although they have been designed for synchronization they 5 This definition has been rather sloppy, see [12] and [6] could be extended to describe distributed aspects too. The regular access patterns of coordinators can be expressed by generalized path expressions, the irregular ones can not. Some coordinator features such as collective operations, however, are on a different i.e. more pragmatic level than ....
C. Flanagan and M. Felleisen. The Semantics of Future and Its Use in Program Optimizations. ACM Principles of Programming Languages, 1995.
....to describe the interpretation (or many sorted algebra) of the abstract operations themselves. For inspiration we may look at natural semantics (e.g. 26] structural operational semantics [25] denotational semantics (e.g. 20] the syntax directed frameworks for closure analysis (e.g. [5]) or the semantic frameworks mentioned below. Overview. First we give an account of two level metalanguages and their use for compiler construction; Section 2 then ends with a short guide to the literature. Next we present two level abstract interpretation from a tool maker s perspective; Section ....
C. Flanagan and M. Felleisen. The Semantics of Future and Its Use in Program Optimization. In Proc. POPL '95, pages 209--220. ACM Press, 1995.
.... where Var is an unspecified countably infinite set The succinct formulations of flow logic considered here do not require that all program points are made explicit; so there is no need to place explicit labels on all subexpressions (as in [9] or to convert programs into A normal form (as in [4]) Instead we shall assume that all function abstractions have initially been alpha renamed so as to have distinct formal parameters that are also disjoint from the set of global variables, FV(e ) of the program of interest, e . Often program analysis is formulated as the demand to compute the ....
....the verbose formulations of flow logic that are likely to be needed in order to obtain an efficient implementation. One further principle worth stating is that: ffl explicit program points (in the form of labelling all subexpressions [9] or demanding all expressions to be in A normalform [4]) are needed for verbose formulations but not for succinct specifications. For the succinct formulations considered in this paper we merely assumed that all function abstractions had initially been alpha renamed so as to have distinct formal parameters that were also distinct from the global ....
C. Flanagan and M. Felleisen. The semantics of future and its use in program optimization. In Proc. POPL '95, pages 209--220. ACM Press, 1995.
....or to build exact flow graphs [10] in order to facilitate the analysis. A further consequence is that programs may retain their ordinary syntax (rather than being translated into special intermediate forms like A normal form where all subexpressions are explicitly named using a let construct [8]) Finally, we prefer small step structural operational semantics over big step natural semantics due to the ability to express the correctness for the analysis of non terminating programs. The reader unfamiliar with closure analysis will appreciate the gentle introduction to 0 CFA analysis ....
....a phenomenon common in program analysis, where there is no need to analyse unreachable fragments, but is different from the perspective of type inference, where even unreachable fragments must be correctly typed. Some closure analyses (e.g. 11] take the approach adopted here whereas others (e.g. [8]) are more computation oriented and do perform recursive calls in (fn) fun) and (close) rather than in (app) The clauses (bind) and (close) also make use of the correctness relations to express the acceptability of the semantic components embedded in the intermediate expressions. This is ....
[Article contains additional citation context not shown here]
C. Flanagan and M. Felleisen. The semantics of future and its use in program optimization. In Proc. POPL '95, pages 209--220. ACM Press, 1995.
....Weeks [8] study a lambda calculus extended with a spawn construct for creating parallel threads that communicate via first class shared locations, and they present a 0 CFA like analysis with the additional twist that a 1 CFA like approach is used to distinguish processes. Flanagen and Felleisen [6] study a lambda calculus with a future construct for creating parallel threads and they present a set based analysis [7] the precision of the analysis corresponds to that of a 0 CFA analysis. Nielson and Nielson [14] study a subset of CML and present an analysis that predicts the communication ....
C. Flanagan and M. Felleisen. The semantics of Future and its use in program optimization. In Proc. POPL. ACM Press, 1995.
....can be efficient in practice. We intend to validate these conjectures in a realistic implementation and believe the careful use of freeze annotations imposes a small burden on the programmer, but can greatly reduce the overhead incurred in migrating continuation frames. Flanagan and Felleisen [FF95] and Moreau [Mor96b] present a CEK based operational semantics for parallel languages supporting the future construct [Hal85] Unlike the semantics described here, neither of the above papers consider implementation issues or language extensions to handle distributed computation, although Moreau ....
Cormac Flanagan and Matthias Felleisen. The Semantics of Future and Its Use in Program Optimization. In Proceedings of the 12 nd ACM Symposium on Principles of Programming Languages, pages 290--220, 1995.
....another in a virtual topology, or if locations they share reside in a separate heap accessible only to these tasks. Besides the optimizations listed above, one can imagine other optimizations more closely allied with a particular program methodology or abstraction. For example, touch elimination[9] is a potentially important optimization in programs that use futures exclusively for synchronization and task creation. In the absence of this optimization, strict operations must explicitly check their arguments to see if they are bound to a placeholder object of the kind yielded by future ....
Cormac Flanagan and Matthias Felleisen. The Semantics of Future and Its Use in Program Optimization. In ACM 22 nd Annual Symposium on Principles of Programming Languages, January 1995.
....and fixes the order of evaluation. It is similar to CPS, but the representation of control is not made explicit at the source level. Like conversion to CPS, A normalization simplifies the source language and is an appropriate move in some contexts, e.g. for the static analysis of programs [11]. It is inappropriate, however, for a one semester course in compiler construction. Assigning a temporary location to every intermediate value, e.g. thetest part of a conditional, is unnecessary and results in the generation of poor code unless the pass that 10 assigns locations to variables is ....
Cormac Flanagan and Matthias Felleisen. The semantics of future and its use in program optimization. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 209--220, 1995.
....there may be blocking of reads in the read phase and of writes in the write phase. This is the case when the access actually belongs to the next phase of the same access type. In addition to blocking, mutual exclusion of accesses is guaranteed for all write accesses. Readers familiar with futures [5] and I structures might see some similarity here. Coordinators extend the implicit void normalize(vectorSection s, processGroup gr) f double partial=0.0; coordinator double sum(write(each(gr,1) read(each(gr,1) calculating partial norm for(int j = s.lower( j = s.upper( j ) ....
C. Flanagan and M. Felleisen. The Semantics of Future and Its Use in Program Optimizations. ACM Principles of Programming Languages, 1995.
....not provide linguistic extensions to delimit the effect of a migration operation. Rather than devising separate coordination and computation sublanguages, Olden specifies parallelism using continuationcapturing operations based on futures [12] and lazy task creation [17] Flanagan and Felleisen [9] and Moreau [18] present a CEK based operational semantics for parallel languages supporting the future construct [12] Unlike the semantics described here, neither of the above reports consider implementation issues or language extensions to handle distributed computation. Jagannathan and Weeks ....
C. Flanagan and M. Felleisen, The Semantics of Future and Its Use in Program Optimization, in Proceedings of the 12 nd ACM Symposium on Principles of Programming Languages, 1995, pp. 290--220.
....oe can be as large as the work w, resulting in a running time of O(log(pd) Delta (w=p d) which is not work efficient. However, since synchronizations are expensive in any implementation, there has been considerable work in reducing the number of synchronizations using compile time analysis [19, 15, 35, 36, 25]. We plan to explore the use of such methods to improve the running time of our implementation. The implementation described for the scheduling algorithm assumes that a constant fraction of the processors are assigned to the scheduler computation, eliminating them from the work force of the ....
C. Flanagan and M. Felleisen. The semantics of future and its use in program optimizations. In Proc. Symposium on Principles of Programming Languages, pages 209--220, Jan. 1995.
....and fixes the order of evaluation. It is similar to CPS, but the representation of control is not made explicit at the source level. Like conversion to CPS, A normalization simplifies the source language and is an appropriate move in some contexts, e.g. for the static analysis of programs [11]. It is inappropriate, however, for a one semester course in compiler construction. Assigning a temporary location to every intermediate value, e.g. the test part of a conditional, is unnecessary and results in the generation of poor code unless the pass that assigns locations to variables is ....
Cormac Flanagan and Matthias Felleisen. The semantics of future and its use in program optimization. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 209--220, 1995.
....of the closure representing the cons cell. While lists can be encoded, a more pragmatic implementation would need to include them. Flanagan and Felleisen also gave a cost augmented operational semantics for a language with futures, defining the total work and the mandatory work of a computation [8]. However, none of these related the costs of the modelled language to those in machine models. Nikhil introduce the P RISC [24] abstract machine for implementing Id, a speculative language. The machine, however, is not meant as a formal model and does not fully define the interprocess ....
Cormac Flanagan and Mattias Felleisen. The semantics of future and its use in program optimization. In Proceedings 22nd ACM Symposium on Principles of Programming Languages, pages 209--220, 1995.
....new tasks, but the scheduler may elect to evaluate any of them. One task only is mandatory; all the others are speculative. A task with legitimacy is mandatory if leads to the initial legitimacy 0 in the current world W , which is written ;W 0 . Figure 8 defines the relation n;m ds [6] to denote reductions that involve n steps among which m are mandatory. According to the evaluation relation eval ds , a program is said to be divergent, i.e. its value is , if it leads to an infinite transition sequence that regularly often contains mandatory transitions. The soundness of the ....
....This paper builds upon previous work about annotations for parallelism in functional languages. For a long time, research has focused on implementation issues and efficient designs [15, 3, 28, 14, 13, 11, 18] Parallelism by annotations has been formalised recently only. Flanagan and Felleisen [6] have defined the semantics of future in a purely functional language. The author [19, 20] has proposed a semantic framework for continuations and sideeffects in a language with the annotations pcall, fork, and future. This paper is the first to present a formal semantics for futures, side effect, ....
[Article contains additional citation context not shown here]
Cormac Flanagan and Matthias Felleisen. The Semantics of Future and Its Use in Program Optimization. In POPL'95. Also in Technical Reports 238, 239, Rice University, 1994.
....results [12, 10, 11] by devising a new criterion for invoking continuations, which preserves the sequential semantics and provides parallelism for upward uses. Another annotation for parallelism is future [7] its semantics in a purely function language was stated by Flanagan and Felleisen [5]. They use this semantics to statically analyse programs in order to perform a touch optimisation , i.e. to remove the touch operator when it can be predicted at compile time that its argument is never a placeholder. We could apply similar optimisations to improve programs efficiency by ....
Cormac Flanagan and Matthias Felleisen. The Semantics of Future and Its Use in Program Optimization. In Proceedings of the Twenty Second Annual ACM SIGACTSIGPLAN Symposium on Principles of Programming Languages, January 1995.
....g, respectively. Proof: Lemma 2 relates the DAG g to the P CEK(q) computation, where q = p log p. There are w=q d steps, and each step takes O(log p) time. 2 7 Related Work and Discussion Several researchers have used cost augmented semantics for automatic time analysis or definitional purposes [29, 30, 31, 27, 33, 14]. Hudak and Anderson [21] used partially ordered multisets (pomsets) to model the dependences in various implementations of the calculus. Because of the relationship between partially ordered sets and DAGs, these are quite similar in concept to our DAGS. For our bounds, however, we also need to ....
Cormac Flanagan and Mattias Felleisen. The semantics of future and its use in program optimization. In Proceedings 22nd ACM Symposium on Principles of Programming Languages, pages 209--220, 1995.
.... late eighties saw the apparition of syntactic theories , a new semantic framework which allows equational reasoning on programs using non functional features like first class continuations and state [10, 11, 12, 44] Those frameworks were later extended to take into account parallel evaluation [9, 14, 29, 30]. The purpose of this paper is to present a syntactic theory that allows the user to perform equational reasoning on programs using dynamic binding. Our contribution is fivefold. First, from the dynamic environment passing translation, we construct an inverse translation. Using Sabry and ....
.... and resumable ones as in Common Lisp [43, 34] Fourth, we refine our evaluation function in the strategy called deep binding , which facilitates the creation and restoration of dynamic environments (Section 7) Fifth, we extend our framework to parallel evaluation, based on the future construct [14, 17, 30]. In Section 8, we define a parallel evaluation function which also relies on the deep binding technique. Before deriving our calculus, we further motivate our work by describing three broad categories of use of dynamic binding: conciseness, control delimiters, and distributed computing. Let us ....
[Article contains additional citation context not shown here]
Cormac Flanagan and Matthias Felleisen. The Semantics of Future and Its Use in Program Optimization. In Proceedings of the Twenty Second Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, January 1995.
.... Using MrSpidey, the programmer can tune a program so that its value set invariants accurately characterize its execution behavior, thus enabling numerous program optimizations that depend on these invariants, including variant check elimination [8, 16, 27, 1, 13] synchronization optimization [7], partial evaluation [19] closure analysis [23] dead code elimination and constantfolding. To investigate this potential, we implemented variant check elimination as part of MrSpidey. Preliminary results indicate that the resulting tool expedites the production of e#cient programs. We intend to ....
Flanagan, C., and Felleisen, M. The semantics of future and its use in program optimizations. In Principles of Programming Languages (1995), pp. 209--220.
....We believe that the low level semantics of the P (CEK) machine is a sound basis for further research into the optimization and implementation of futures. We have used the semantics to derive a provably correct program optimization algorithm that removes redundant touch operations from programs [7, 8]. Experiments with the Gambit compiler [4] show that this optimization substantially reduces program execution times on a standard set of benchmarks. Another important application of the low level semantics is as a basis from which to derive a parallel and distributed implementation of Scheme with ....
Flanagan, C., and Felleisen, M. The semantics of future and its use in program optimizations. In POPL (Jan. 1995). 34 C. Flanagan, M. Felleisen
....structure manipulations and non local control operators. Although suitable set constraints for these imperative features can be produced in an ad hoc manner, there is no semantic foundation for these constraints. Thus existing implementations of set based analysis for languages like Scheme and ML [10, 11, 8, 7], which include assignments and non local control operators, are not semantically well founded. We present a simpler derivation of set based analysis than Heintze s. It avoids the complexities and limitations outlined above, and explains the underlying notion of approximation in a clear manner. ....
....in Soft Typing 20 6 Application: Soft Typing from Set Based Analysis The information produced by set based analysis facilitates a variety of optimizations. Examples include partial evaluation [15] escape analysis [18] redundant test elimination [11] closure analysis [21] touch optimization [8, 7], dead code elimination, constant folding and code hoisting. Here, we illustrate how set based analysis applies to soft typing [4, 28, 1, 12, 14] 6.1 Soft Typing The programming language Scheme [2] is a dynamically typed language, which imposes no restrictions on the values that variables or ....
[Article contains additional citation context not shown here]
Flanagan, C., and Felleisen, M. The semantics of future and its use in program optimizations. In Proceedings of the ACM Sigplan Conference on Principles of Programming Languages (1995), pp. 209--220.
.... Using MrSpidey, the programmer can tune a program so that its value set invariants accurately characterize its execution behavior, thus enabling numerous program optimizations that depend on these invariants, including variant check elimination [6, 15, 28, 1, 12] synchronization optimization [7], partial evaluation [19] closure analysis [23] dead code elimination and constant folding. To investigate this potential, we implemented variant check elimination as part of MrSpidey. Preliminary results indicate that the resulting tool expedites the production of efficient programs. We intend ....
Flanagan, C., and Felleisen, M. The semantics of future and its use in program optimizations. In Proceedings of the ACM Sigplan Conference on Principles of Programming Languages (1995), pp. 209--220.
No context found.
FLANAGAN, C., AND FELLEISEN, M. The semantics of future and its use in program optimizations. In Conference Record of the ACM Symposium on Principles of Programming Languages (San Francisco, California, Jan.). 1995, pp. 209--220.
No context found.
FLANAGAN, C., AND FELLEISEN, M. The semantics of future and its use in program optimizations. In Conference Record of the ACM Symposium on Principles of Programming Languages (San Francisco, California, Jan.). 1995, pp. 209--220.
No context found.
C. Flanagan and M. Felleisen. The semantics of future and its use in program optimization. In The 22nd Symposium on Principles of Programming Languages (POPL'95), pages 209-220, San Francisco, California, 1995.
No context found.
Cormac Flanagan and Matthias Felleisen. The semantics of Future and its use in program optimizations. In POPL, pages 209--220, San Francisco, CA, January 1995.
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