9 citations found. Retrieving documents...
S. Jagannathan and A. Wright. E#ective flow analysis for avoiding run-time checks. In Proceedings of the Second International Static Analysis Symposium, volume 983, pages 207--224. Springer-Verlag, 1995.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Compiling with Polymorphic and Polyvariant Flow Types - Turbak, Dimock, Muller, Wells (1997)   (4 citations)  (Correct)

....from local structure. For example, flow analysis is used to guide function and method inlining [PC95, JW96] e#cient function representations [WS94, Ash96] the detection of loops hidden in function calls [Ash96] and type recovery and type check elimination in dynamically typed languages [Shi91b, JW95] As an example of type and flow based optimizations, consider the following ML functions: fun pfoldr p f i [ i,i) pfoldr p f i (x: xs) let val (l,r) pfoldr p f i xs in if (p x) then (f(x,l) r) else (l,f(x,r) end fun test (b, L1, L2, L3) let val even odd = pfoldr (fn x = ....

....subtyping restriction, which only allows coercions phrased in terms of the top level labels of a type. We are interested in analyses that use additional elements in virtual tuples to circumvent the limitations of shallow subtyping, and in implementing (and extending) polymorphic splitting [JW95] There is also evidence that even crude flow analysis can be useful for program optimization [Ash96] One of us (Dimock) is developing a control flow analysis kit that will allow us to experiment with tradeo#s the between benefits and costs of analyses as the precision is varied. Modularity: ....

Suresh Jagannathan and Andrew K. Wright. E#ective flow analysis for avoiding run-time checks. In SAS '95 [SAS95], pages 207--224.


A New Way of Debugging Lisp Programs - Flanagan, Felleisen (1998)   (1 citation)  (Correct)

....also functions as an interactive optimization tool. 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 ....

....on numeric ranges [11] This information is useful for eliminating array bounds checks and for array data dependence analysis. Other program analyses that produce information similar to setbased analysis but which provide alternative cost accuracy tradeo#s could also be adapted for use in MrSpidey [15, 16, 13, 1]. Availability DrScheme, including MrSpidey, is available at http: www.cs.rice.edu CS PLT packages. Acknowledgments We thank Corky Cartwright and Bruce Duba for discussions concerning the philosophy of soft typing; Nevin Heintze for hints on the implementation of set based analysis; and ....

Jagannathan, S., and Wright, A. K. E#ective flow analysis for avoiding run-time checks. In Second International Static Analysis Symposium, LNCS 983 (September 1995), Springer-Verlag, pp. 207--224.


Infinitary Control Flow Analysis: a Collecting Semantics for .. - Nielson, Nielson (1997)   (39 citations)  (Correct)

.... set based analysis [9] touching upon other constraint based analyses [1] and flow analysis [6] Although the fine formulational details differ they are all variations over a theme, producing analyses of di#erent precision: 0 CFA [16] k CFA [16, 10] poly k CFA [10] and polymorphic splitting [11]. We believe that further insight into this multitude of analyses can be gained by applying the general framework of abstract interpretation [2, 3, 4, 12] to the development of closure analyses. To explain our approach let us begin by reviewing the core methodology of abstract interpretation: sem ....

....calls on all closures that are possibly applied. This is 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 ....

[Article contains additional citation context not shown here]

S. Jagannathan and A. Wright. E#ective flow analysis for avoiding run-time checks. In Proc. SAS '95, pages 207--224. SLNCS 983, 1995.


Compiler Construction Using Scheme - Hilsdale, Ashley, Dybvig, Friedman (1995)   (1 citation)  (Correct)

....The following compile time topics have been successfully covered in a follow up course: macro expansion [9] destination driven code generation [10] copy propagation and constant folding [1] register allocation [6] and . type check elimination by abstract interpretation [16, 4]. With the exception of macro expansion, the compile time topics are about compiler optimizations. To motivate them, an assignment is given early in which the students are told to handoptimize a program that solves the eight queens problem. There is no constraint on the optimizations that may be ....

Suresh Jagannathan and Andrew Wright. E#ective flow analysis for avoiding runtime checks. In Proceedings of the 1995 International Static Analysis Symposium, 1995.


A Practical and Flexible Flow Analysis for Higher-Order Languages - Ashley (1996)   (20 citations)  (Correct)

....information about f since the control and data flow for f does not depend on g. The other way in which the information loss is contained is that when the threshold is exceeded at a program point, information about what is already known at that point is not discarded. Combined with type recovery [16, 19], the flow analysis can still yield useful information for program transformations. For example, suppose n = 1 and the following program is analyzed. letrec ( fac (lambda (x ) if ( x 0) 1 (# x (fac ( x 1) fac 5) Upon termination of the analysis, the abstract value of x is 5, ....

Suresh Jagannathan and Andrew Wright. E#ective flow-analysis for avoiding runtime checks. In Proceedings of the 1995 International Static Analysis Symposium, volume 983 of Lecture Notes in Computer Science, pages 207--224. Springer-Verlag, September 1995.


The Effectiveness of Flow Analysis for Inlining - Ashley (1997)   (15 citations)  (Correct)

....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 polyvariant analysis is more accurate, modeling the ....

....analysis context in which the abstract closure was created. The function F can therefore be viewed as a projection function that maps relatively rich abstract values to the simpler abstract values needed by the inliner. Many flow analyses, both monovariant [2, 4, 6, 15, 16, 23, 25] and polyvariant [3, 11, 17] produce results that can be cast into the form of function F . Polyvariant analyses use contours to segregate abstract values and improve the accuracy of the analysis. Most analyses create a new contour at each variable binding point and use it while analyzing the code in the lexical contour ....

[Article contains additional citation context not shown here]

Suresh Jagannathan and Andrew Wright. E#ective flow analysis for avoiding run-time checks. In Proceedings of the 1995 International Static Analysis Symposium, volume 854 of Lecture Notes in Computer Science, pages 207--224. Springer-Verlag, 1995.


Generational Garbage Collection and the Radioactive Decay Model - Clinger, Hansen (1997)   (21 citations)  (Correct)

....time in the garbage collector, so we have selected six exceptional benchmarks to illustrate the variety of storage behaviors with which a garbage collector must contend. Table 2 lists these programs, which are adapted from 5 of the 9 benchmarks considered by a recent paper on compiler optimization [28]. More benchmarks can be found at our web site [13] The 10dynamic benchmark consists of an interprocedural static analysis iterated 10 times on its own source code, to simulate its use on several files in succession. The source code is read only once, before the measured portion of the benchmark. ....

Suresh Jagannathan and Andrew Wright. E#ective flow analysis for avoiding run-time checks. In Proceedings of the 2nd International Static Analysis Symposium, Springer-Verlag LNCS 983, September 1995, pages 207--224.


CCured: Type-Safe Retrofitting of Legacy Code - Necula, McPeak, Weimer (2002)   (63 citations)  (Correct)

No context found.

S. Jagannathan and A. Wright. E#ective flow analysis for avoiding run-time checks. In Proceedings of the Second International Static Analysis Symposium, volume 983, pages 207--224. Springer-Verlag, 1995.


A Modular, Polyvariant, and Type-Based Closure Analysis - Banerjee (1997)   (Correct)

No context found.

Suresh Jagannathan and Andrew Wright. E#ective flow analysis for avoiding run-time checks. In Hanne Riis Nielson and Kirsten Lackner Solberg, editors, Proceedings of Workshop on Types for Program Analysis, DAIMI PB-495, pages 63--79. University of Aarhus, Denmark, 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