| Amr Sabry and Matthias Felleisen. Is continuation-passing useful for data flow analysis? In Vivek Sarkar, editor, Proceedings of the ACM SIGPLAN'94 Conference on Programming Languages Design and Implementation, SIGPLAN Notices (to appear), Orlando, Florida, June 1994. ACM Press. |
....connections between security in process calculi and low level code. CPS translation has been studied in the context of program analysis [10, 23] Sabry and Felleisen observed that increased precision in some CPS data flow analyses is due to duplication of analysis along di#erent execution paths [29]. They also note that some analyses confuse continuations when applied to CPS programs. Our type system distinguishes linear from non linear continuations to avoid confusing calls with returns. More recently, Damian and Danvy showed that CPS translation can improve binding time analysis in ....
Amr Sabry and Matthias Felleisen. Is continuation-passing useful for data flow analysis? In Proc. SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 1--12, 1994.
....CPS transformation of ow information for control ow analyes. Muylaert Filho and Burn studied CPS transformation as a means of improving strictness analysis [28] Sabry and Felleisen observed that some analyses confuse continuations when applied to CPS programs, decreasing their precision [39]. Our type system distinguishes linear from nonlinear continuations to avoid confusing calls with returns. Linear continuations appear to be a higher order analog to postdominators in a control ow graph. Algorithms for determining postdominators (see Muchnick s text [27] might yield ....
Sabry, A. and M. Felleisen: 1994, `Is Continuation-Passing Useful for Data Flow Analysis?'. In: Proc. SIGPLAN '94 Conference on Programming Language Design and Implementation. pp. 1-12.
....highlighted in the present work also appear in other metalanguages. For example, Talcott uses letexpressions to specify computational steps [64] Sabry and Felleisen demonstrate how a let based intermediate language (called A normal forms) can give benefits similar to CPS in dataflow analysis [58, 59]. Moggi also gave a computational calculus c . c is essentially a call byvalue calculus extended with equations that capture program equivalences holding under arbitrary monadic effects. It is straightforward to adapt our evaluation order independent presentation based on ml to a ....
....than by CPS transforming the program before partial evaluation. Our framework achieves this effect by extending the operational semantics of specialization with the let.assoc rule. This development 36 matches contemporary work on determining the effect of the CPS transformation on flow analysis [51, 59]: enriching a direct style calculus can yield analyses with an added precision that matches the extra precision obtained by the relocation of contexts performed by the CPS transformation. Section 6 shows how the theory of monads captures the essence of controlbased binding time improvements. This ....
Amr Sabry and Matthias Felleisen. Is continuation-passing useful for data flow analysis? In Vivek Sarkar, editor, Proceedings of the ACM SIGPLAN'94 Conference on Programming Languages Design and Implementation, SIGPLAN Notices, Vol. 29, No 6, pages 1--12, Orlando, Florida, June 1994. ACM Press.
....connections between security in process calculi and low level code. CPS translation has been studied in the context of program analysis [14, 27] Sabry and Felleisen observed that increased precision in some CPS data flow analyses is due to duplication of analysis along di#erent execution paths [33]. They also note that some analyses confuse continuations when applied to CPS programs. Our type system distinguishes linear from nonlinear continuations to avoid confusing calls with returns. More recently, Damian and Danvy showed that CPS translation can improve binding time analysis in ....
Sabry, A. and M. Felleisen: 1994, `Is Continuation-Passing Useful for Data Flow Analysis?'. In: Proc. SIGPLAN '94 Conference on Programming Language Design and Implementation. pp. 1--12.
....the time stamps technique may not be extended to non tail recursive analyses. We show how the time stamps technique can be extended to a flow analysis of higher order languages which 8 Damian has a non tail recursive formulation. In their paper on CPS versus direct style in program analysis [16], Sabry and Felleisen also suggest using a memoization technique for computing the result of their constant propagation for a higher order language in direct style. The constant propagation analysis has a non compositional, non tail recursive definition. Indeed, in order to model the analysis of a ....
Sabry, A. and M. Felleisen, Is continuation-passing useful for data flow analysis?, in: V. Sarkar, editor, Proceedings of the ACM SIGPLAN'94 Conference on Programming Languages Design and Implementation, SIGPLAN Notices, Vol. 29, No 6 (1994), pp. 1--12.
....semantics. In the early 90s, Muylaert Filho and Burn s work [20] was providing further indication of the value of the CPS transformation for abstract interpretation when Sabry and Felleisen entered the scene. In their stunning article Is continuation passing useful for data flow analysis [31], Sabry and Felleisen showed that for constant propagation, analyzing a direct style program and analyzing its CPS counterpart yields incomparable results. They showed that CPS might increase precision by duplicating continuations, and also that CPS might decrease precision by confusing return ....
....of this rule non trivially by providing a local improvement which is also a global improvement. Before moving on to the rest of this article, let us briefly get back to Sabry and Felleisen s observation that any improvement in precision provided by CPS is solely due to continuation duplication [31]. True as this observation may be for data flow analysis, we have just shown that it does not necessarily hold for other analyses such as BTA. Let us also point out that the CPS transformation leads to binding time improvements for conditional expressions. Indeed, the case rule makes conditional ....
[Article contains additional citation context not shown here]
Amr Sabry and Matthias Felleisen. Is continuation-passing useful for data flow analysis? In Vivek Sarkar, editor, Proceedings of the ACM SIGPLAN'94 Conference on Programming Languages Design and Implementation, SIGPLAN Notices, Vol. 29, No 6, pages 1--12, Orlando, Florida, June 1994. ACM Press.
....connections between security in process calculi and low level code. CPS translation has been studied in the context of program analysis [10, 23] Sabry and Felleisen observed that increased precision in some CPS data flow analyses is due to duplication of analysis along di#erent execution paths [29]. They also note that some analyses confuse continuations when applied to CPS programs. Our type system distinguishes linear from non linear continuations to avoid confusing calls with returns. More recently, Damian and Danvy showed that CPS translation can improve binding time analysis in ....
Amr Sabry and Matthias Felleisen. Is continuation-passing useful for data flow analysis? In Proc. SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 1--12, 1994.
.... analysis framework using abstract interpretation that can handle both mono and polyvariance [Stefanescu and Zhou 1994] Sabry and Felleisen compare the results of closure analysis for programs written in direct style with the results from analyzing their continuation passing style transforms [Sabry and Felleisen 1994]. Flanagan and Felleisen have formulated closure analysis using Anormal forms; this technique may offer a way to avoid some of the complexity associated with our occurrence closures [Flanagan and Felleisen 1995] Heintze analyzed programs using constraints on sets of program values in his ....
Sabry, A. and Felleisen, M. 1994. Is continuation-passing useful for data flow analysis? In Proc. ACM SIGPLAN '94 Conf. on Programming Language Design and Implementation, pp. 1--12.
....structures are first class, they can be used by the computation language to represent mutable cells. Pointer equality tests are problematic in a distributed environment in which objects may migrate among machines. To simplify the presentation, we also assume programs are written in A normal form [FSDF93, SF94]. Thus, the results of all expressions are named, and arguments in calls to functions and primitives are either constants, variables, or abstractions. L s coordination language supports the creation of multiple threads of control and multiple address spaces. An address space defines a new logical ....
Amr Sabry and Matthias Felleisen. Is Continuation Passing Useful for Data Flow Analysis? In ACM Symposium on Programming Language Design and Implementation, pages 1--12, 1994.
....languages such as the one of Section 2 are currently being investigated as an alternative to CPS. Flanagan et al. address the problem of compiling with and without continuations [12] Finally, to have or not to have continuations can influence the precision of flow analyses, as studied elsewhere [5, 24]. Acknowledgements Karoline Malmkjaer kindly confirmed the BNF of CPS terms using abstract interpretation [17] Frank Pfenning demonstrated his Elf system [20] by checking the contents of the figures. I am also grateful to Andrzej Filinski, John Hatcliff, and Julia Lawall for their interaction. ....
Amr Sabry and Matthias Felleisen. Is continuation-passing useful for data flow analysis? In Vivek Sarkar, editor, Proceedings of the ACM SIGPLAN'94 Conference on Programming Languages Design and Implementation, SIGPLAN Notices (to appear), Orlando, Florida, June 1994. ACM Press.
.... S rensen z Motivation Continuation passing style (CPS) translations of typed calculi have appeared throughout the literature since the work of Meyer and Wand [13] Applications, too numerous to be listed exhaustively here, include compilation, transformation, and analysis of typed languages [1, 5, 9, 15, 16, 17, 19], embedding of classical logics in intuitionistic logics [11, 14] techniques to infer strong normalization from weak normalization in pure type systems [20, 22] and the construction of looping combinators in inconsistent logical pure type systems [6] The range of these applications have been ....
A. Sabry and M. Felleisen. Is continuation passing useful for data-flow analysis? In Programming Language Design and Implementation, 1994.
....highlighted in the present work also appear in other metalanguages. For example, Talcott uses letexpressions to specify computational steps [64] Sabry and Felleisen demonstrate how a let based intermediate language (called A normal forms) can give benefits similar to CPS in dataflow analysis [58, 59]. Moggi also gave a computational calculus c . c is essentially a call byvalue calculus extended with equations that capture program equivalences holding under arbitrary monadic effects. It is straightforward to adapt our evaluation order independent presentation based on ml to a ....
....than by CPS transforming the program before partial evaluation. Our framework achieves this effect by extending the operational semantics of specialization with the let.assoc rule. This development matches contemporary work on determining the effect of the CPS transformation on flow analysis [51, 59]: enriching a direct style calculus can yield analyses with an added precision that matches the extra precision obtained by the relocation of contexts performed by the CPS transformation. Section 6 shows how the theory of monads captures the essence of controlbased binding time improvements. This ....
Amr Sabry and Matthias Felleisen. Is continuation-passing useful for data flow analysis? In Vivek Sarkar, editor, Proceedings of the ACM SIGPLAN'94 Conference on Programming Languages Design and Implementation, SIGPLAN Notices, Vol. 29, No 6, pages 1--12, Orlando, Florida, June 1994. ACM Press.
.... cube. 1 Introduction Continuation passing style (CPS) translations of typed calculi have appeared throughout the literature since the work of Meyer and Wand [45] Applications, too numerous to be listed exhaustively here, include compilation [1, 25] transformation [14, 49] and analysis [58, 59, 65] of typed programming languages, construction of semantics definitions for languages with jumps [56, 61] exceptions, and concurrency primitives [26] embedding of classical logics in intuitionistic logics [31, 48] techniques to infer strong normalization from weak normalization in typed calculi ....
A. Sabry and M. Felleisen. Is continuation passing useful for data-flow analysis? In Proceedings of Programming Language Design and Implementation, 1994.
....with the contributions presented here. Shivers[20] presents a general model for control flow analysis in Scheme via abstract interpretation of a denotational semantics. The analysis must first translate source expressions to CPS terms; this translation affects the results computed by the analysis[16]. Deriving an efficient implementation from the semantics is unintuitive and requires deviating from the semantic specification (e.g. the time stamp approximation [21] The choice of a denotational semantics makes it difficult in general to understand the complexity of implementations directly ....
Amr Sabry and Matthias Felleisen. Is Continuation Passing Useful for Data Flow Analysis. In ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 1--12, June 1994.
....version of 0CFA. Palsberg and Schwartzbach [1995] use a constraint based closure analysis similar to ours to support safety analysis. Stefanescu and Zhou [1994] have formulated a generalized closure analysis framework using abstract interpretation that can handle both mono and polyvariance. Sabry and Felleisen [1994] compare the ACM Transactions on Programming Languages Lightweight Closure Conversion Delta 37 results of closure analysis for programs written in direct style with the results from analyzing their continuation passing style transforms. Flanagan and Felleisen [1995] have formulated closure ....
Sabry, A. and Felleisen, M. 1994. Is continuation-passing useful for data flow analysis? In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation. ACM, New York, 1--12.
....version of 0CFA. Palsberg and Schwartzbach [1995] use a constraint based closure analysis similar to ours to support safety analysis. Stefanescu and Zhou [1994] have formulated a generalized closure analysis framework using abstract interpretation that can handle both mono and polyvariance. Sabry and Felleisen [1994] compare the results of closure analysis for programs written in direct style with the results from analyzing their continuation passing style transforms. ACM Transactions on Programming Languages Lightweight Closure Conversion Delta 37 Flanagan and Felleisen [1995] have formulated closure ....
Sabry, A. and Felleisen, M. 1994. Is continuation-passing useful for data flow analysis? In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation. ACM, New York, 1--12.
....with Kelsey [July 93] and Shivers [May 93] and in discussions with Burn at FPCA 93 [June 93] We suspect that many others who use the CPS transformation subscribe to the same conjecture. 120 peared in a paper presented at the Conference on Programming Language Design and Implementation [86, 87]. 6.1 Constant Propagation by Abstract Interpretation For the analysis of programs, we assume the programs to be in A normal form, and all the bound variables to be unique, e.g. if (x 1 :M 1 ) and (x 2 :M 2 ) are two distinct procedures in a program, then x 1 6= x 2 . The restricted subset is ....
Sabry, A. and Felleisen, M. Is Continuation-Passing Useful for Data Flow Analysis ? Technical Report TR94-223, Rice University (1994). 156
....with Kelsey [July 93] and Shivers [May 93] and in discussions with Burn at FPCA 93 [June 93] We suspect that many others who use the CPS transformation subscribe to the same conjecture. 120 peared in a paper presented at the Conference on Programming Language Design and Implementation [86, 87]. 6.1 Constant Propagation by Abstract Interpretation For the analysis of programs, we assume the programs to be in A normal form, and all the bound variables to be unique, e.g. if (x 1 :M 1 ) and (x 2 :M 2 ) are two distinct procedures in a program, then x 1 6= x 2 . The restricted subset is ....
Sabry, A. and Felleisen, M. Is continuation-passing useful for data flow analysis? In Proceedings of the ACM Sigplan Conference on Programming Language Design and Implementation (1994). To appear.
....with Kelsey [July 93] and Shivers [May 93] and in discussions with Burn at FPCA 93 [June 93] We suspect that many others who use the CPS transformation subscribe to the same conjecture. 120 peared in a paper presented at the Conference on Programming Language Design and Implementation [86, 87]. 6.1 Constant Propagation by Abstract Interpretation For the analysis of programs, we assume the programs to be in A normal form, and all the bound variables to be unique, e.g. if (x 1 :M 1 ) and (x 2 :M 2 ) are two distinct procedures in a program, then x 1 6= x 2 . The restricted subset is ....
Sabry, A. and Felleisen, M. Is Continuation-Passing Useful for Data Flow Analysis ? Technical Report TR94-223, Rice University (1994). 156
....with Kelsey [July 93] and Shivers [May 93] and in discussions with Burn at FPCA 93 [June 93] We suspect that many others who use the CPS transformation subscribe to the same conjecture. 120 peared in a paper presented at the Conference on Programming Language Design and Implementation [86, 87]. 6.1 Constant Propagation by Abstract Interpretation For the analysis of programs, we assume the programs to be in A normal form, and all the bound variables to be unique, e.g. if (x 1 :M 1 ) and (x 2 :M 2 ) are two distinct procedures in a program, then x 1 6= x 2 . The restricted subset is ....
Sabry, A. and Felleisen, M. Is continuation-passing useful for data flow analysis? In Proceedings of the ACM Sigplan Conference on Programming Language Design and Implementation (1994). To appear.
....nil. The key property of terms in A normal form is that each intermediate value is explicitly named and where the order of execution follows the lexical nesting of let expressions. The use of A normal forms facilitates the compile time analysis of programs since every intermediate value is named [22], and it simplifies the definition of abstract machines [9] a fact that we exploit in the development of abstract machines below. M 2 a : x (Terms) j (let (x V ) M ) j (let (x (future M ) M ) j (let (x (car y) M ) j (let (x (cdr y) M ) j (let (x (if y M M ) M ) j (let (x (apply y z) ....
Sabry, A., and Felleisen, M. Is continuation-passing useful for data flow analysis. In PLDI (1994), pp. 1--12.
....set of basic constants (numbers, booleans) The key property of terms in A normal form is that each intermediate value is explicitly named and that the order of execution follows the lexical nesting of let expressions. The use of A normal forms facilitates the compile time analysis of programs [29], and it simplifies the definition of abstract machines [11] We work with the usual conventions and terminology of the lambda calculus when discussing syntactic issues. In particular, the substitution operation M [x V ] replaces all free occurrences of x within M by V , X 0 denotes the set of ....
Sabry, A., and Felleisen, M. Is continuation-passing useful for data flow analysis. In PLDI (1994), 1--12.
....that each intermediate value is explicitly named and that the order of execution follows the lexical nesting of let expressions. The use of A normal forms thus simplifies the formulation of the semantics and facilitates the compile time analysis of programs since every intermediate value is named [20]. Values are either simple values or heap allocated values. Simple values are either variables or locations. Locations do not occur in source programs; they are only created during program evaluation. Heap allocated values include procedures (x: M ) pairs of values (cons v v) and basic constants. ....
....the lexical nesting of let expressions [9] control transfer is accomplished in a simple manner. Also, since every intermediate value in our language is named, we only need to record variable value associations, and avoid the additional complexity of labeling each expression in the program [20]. Jagannathan and Weeks further complicate their rewriting semantics using labels of expressions within their state representation instead of the actual expressions themselves. Therefore, a state does not completely represent an intermediate stage of a computation and cannot be further evaluated ....
Sabry, A., and Felleisen, M. Is continuation-passing useful for data flow analysis. In Proceedings of the ACM Sigplan Conference on Programming Language Design and Implementation (1994), pp. 1--12.
....derive various data flow analyzers from the standard semantics using the method of abstract interpretation. Section 5 presents all the formal theorems, which are discussed from a practical perspective in Section 6. For full proofs, we refer the reader to the technical report version of our paper [15]. 2 : Syntax and Semantics Our source language is a simple extension of the language of the calculus. It corresponds to the core of typical higher order languages like Scheme, Lisp, and ML. The set of terms includes values, applications, let expressions, and conditionals; the set of syntactic ....
Sabry, A. and Felleisen, M. Is ContinuationPassing Useful for Data Flow Analysis? Technical Report TR94-223, Rice University (1994).
No context found.
Amr Sabry and Matthias Felleisen. Is continuation-passing useful for data flow analysis? In Vivek Sarkar, editor, Proceedings of the ACM SIGPLAN'94 Conference on Programming Languages Design and Implementation, SIGPLAN Notices (to appear), Orlando, Florida, June 1994. ACM Press.
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