34 citations found. Retrieving documents...
S. Jagannathan and A. Wright. Effective flow analysis for avoiding runtime checks. In SAS'95, number 983 in Lect. Notes in Computer Sci. Springer-Verlag.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Design and Correctness of Program Transformations Based.. - Banerjee, Heintze.. (2001)   (6 citations)  (Correct)

....such languages have small basic blocks and use recursive functions for loops. These factors limit the applicability of standard intraprocedural optimizations [2, 25] and increase the importance of interprocedural optimizations. CFA enables interprocedural optimizations, and so is used frequently [7, 9, 10, 17, 19, 38, 41, 46]. The correctness of CFA itself has been widely studied [15, 18 20, 28 30, 37, 38] but little is known about how to prove the correctness of CFA based transformations. An analogous situation for dataflow analysis and dataflow analysis based transformations was recognized and addressed in the ....

S. Jagannathan and A. Wright. Effective flow analysis for avoiding runtime checks. In SAS'95, number 983 in Lect. Notes in Computer Sci. Springer-Verlag.


Demand-Driven Type Analysis for Dynamically-Typed Functional.. - Dubé   (Correct)

....solution to the evaluation constraints always includes the assignment l, because the expression never gets evaluated in that contour. Despite its great flexibility, our framework has its limits. As an instance, the analysis based on polymorphic splitting presented by Jagannathan and Wright [37] cannot be imitated by the framework. Polymorphic splitting is presented as a method of obtaining, in abstract interpretation, an analog to the let polymorphism used in Hindley Milner polymorphic type inference [42] Abstract closures that are bound to a variable in a let expression receive a ....

Suresh Jagannathan and Andrew Wright. Effective flow analysis for avoiding run-time checks. Lecture Notes in Computer Science, 854:207-224, 1995.


Effective Static Debugging via Componential Set-Based Analysis - Flanagan (1997)   (10 citations)  (Correct)

....analysis that re analyzes a definition at each reference, but found its performance to be comparable to, and sometimes worse than, the copy analysis. 85 Figure 7.3 Source in another file Figure 7. 4 Zooming to the source in another file We tested the analyses using a standard set of benchmarks [28]. The results of the test runs are documented in figure 7.6. The second column shows the number of lines in each benchmark; the third column presents the time for the copy analysis; and columns four to seven show the times for each smart polymorphic analysis, as a percentage of the copy analysis ....

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


Abstract Interpretation in the Operational Semantics Hierarchy - Schmidt (1997)   (3 citations)  (Correct)

....also that the recursion, a = fog [ a, can be solved in the complete lattice P(AbsVal) the computational ordering) giving a = fog there is no need for and no need for an approximation ordering upon AbsVal. When sets of closures appear in an a.i. the analysis is called a closure analysis [29, 30, 50, 53, 60, 61]. The complexity of a closure analysis is high, and a major challenge is finding efficient, safe simulations. To simplify notation, we represent a closure by a hae; i pair, where is a unique label of a rec phrase, rec f x:e. Next, we ignore primitive values in this discussion and define ....

S. Jagannathan and A. Wright. Effective flow analysis for avoiding run-time checks. In A. Mycroft, editor, Static Analysis Symposium, number 983 in Lecture Notes in Computer Science.


Effective Static Debugging via Componential Set-Based Analysis - Flanagan (1997)   (10 citations)  (Correct)

....analysis that re analyzes a definition at each reference, but found its performance to be comparable to, and sometimes worse than, the copy analysis. 85 Figure 7.3 Source in another file Figure 7. 4 Zooming to the source in another file We tested the analyses using a standard set of benchmarks [28]. The results of the test runs are documented in figure 7.6. The second column shows the number of lines in each benchmark; the third column presents the time for the copy analysis; and columns four to seven show the times for each smart polymorphic analysis, as a percentage of the copy analysis ....

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


Constrained Types: A Personal Perspective - Smith (1996)   (Correct)

....contain flow information for subterms, and so from the flow perspective are not garbage. They can be considered garbage once flow information for subterms is no longer needed. Polymorphic constrained types are closely related to the idea of polymorphic splitting found in the flow analysis of [JW95b] Inspired by Hindley Milner let polymorphism, these authors perform a splitting of the 0CFA flow analysis at let constructs. 2 We believe the flow types duality is an important area of future study, as it has promise as a means to further systematize flow analysis as well as improving the ....

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


Scalable Propagation-Based Call Graph Construction Algorithms - Tip, Palsberg (2000)   (59 citations)  (Correct)

....obtain better precision for each call site. Polyvariant analysis was pioneered by Sharir and Pnueli [32] and Jones and Muchnick [25] In the 1990s the study of polyvariant analysis has been intensive. Well known are the k CFA algorithms of Shivers [33] the poly k CFA of Jagannathan and Weeks [24], and the cartesian product algorithm of Agesen [1, 2] A particularly simple polyvariant analysis was presented by Schmidt [30] Frameworks for defining polyvariant analyses have been presented by Stefanescu and Zhou [36] Jagannathan and Weeks [23] and Nielson and Nielson [26] Successful ....

Jagannathan, S., and Wright, A. Effective flow analysis for avoiding run-time checks. In Proceedings of SAS'95, International Static Analysis Symposium (Glasgow, Scotland, September 1995), Springer-Verlag (LNCS 983).


Systematic Realisation of Control Flow Analyses for CML - Gasser, Nielson, Nielson (1997)   (10 citations)  (Correct)

....languages, whether imperative languages with procedures, functional languages, concurrent languages, or object oriented languages, it is much more complicated. In the literature quite some effort has been devoted to the development of control flow analyses for functional languages, see e.g. [1, 5, 8, 9, 10, 13, 15, 18, 19, 20, 21]. We believe that the overall development of control flow analyses should follow the core methodology of abstract interpretation [2, 3, 4, 11] sem ; pa0 Gamma Delta Delta Delta Gamma pan ; impl Given a programming language and its semantics (sem) we consider an abstract analysis (pa0 ) ....

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


On the Complexity of Set-Based Analysis - Heintze, McAllester (1997)   (8 citations)  (Correct)

....as a function of the complexity of case statements. The O(n 3 ) procedure for determining SBA safety for shallow patterns is based on a flow analysis and is related to the set based analysis methods of Heintze [6] The analysis is also similar to that of Shivers [16] or Jagannathan and Wright [10] but includes data constructors and union types. It can also be viewed as an extension of the recently established equivalence between flow analysis and recursive types in the absence of data constructors [3, 14, 7, 15] These connections are explored more deeply in [11] Earlier procedures for ....

S. Jagannathan and A. Wright. Effective flow analysis for avoiding run time checks. In Second Static Analysis Symposium (SAS95), pages 207--224. Springer Verlag, 1995. Lecture Notes in Computer Science 983.


Inferring Recursive Data Types - Mcallester   (13 citations)  (Correct)

....type inference is fundamentally more tractable than polymorphic type inference for recursive types. The type inference procedure based on flow analysis is related to the set based analysis methods of Heintze [12] The analysis is also similar to that of Shivers [27] or Jagannathan and Write [17] but includes data constructors and union types. It can also be viewed as an extension of the recently established equivalence between flow analysis and recursive types in the absence of data constructors [5, 25, 13, 26] Here we formulate flow analysis as a process of computing a directed graph ....

S. Jagannathan and A. Write. Effective flow analysis for avoiding run time checks. In Second Static Analysis Symposium (SAS95), pages 207--224. Springer Verlag, 1995. Lecture Notes in Computer Science 983.


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. Effective 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.


On the Complexity of Set-Based Analysis - McAllester, Heintze (1997)   (8 citations)  (Correct)

.... of case statements (in monovariant programs) The O(n 3 ) procedure for determining SBA safety for shallow patterns is based on a flow analysis and is related to the set based analysis methods of Heintze [5] The analysis is also similar to that of Shivers [16] or Jagannathan and Write [9] but includes data constructors and union types. It can also be viewed as an extension of the recently established equivalence between flow analysis and recursive types in the absence of data constructors [3, 14, 6, 15] These connections are explored more deeply in [10] Earlier procedures for ....

S. Jagannathan and A. Write. Effective flow analysis for avoiding run time checks. In Second Static Analysis Symposium (SAS95), pages 207--224. Springer Verlag, 1995. Lecture Notes in Computer Science 983.


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

....that collects safe but useless information. An example of a more useful projection operator is given in Section 4. Although Theta is typically used to accelerate the analysis it can also be used to affect the accuracy of the analysis. For example, Jagannathan and Wright s polynomial 1CFA analysis [Jagannathan and Wright 1995] uses a splitting strategy analogous to let bound polymorphism in the Hindley Milner type system. For let bound procedures this is identical to 1CFA. For a letrec bound procedure f this is implemented by rebinding the procedure s free variable f to the specialized version created by the call. This ....

Jagannathan, S. and Wright, A. 1995. Effective flow analysis for avoiding run-time checks. In Proceedings of the 1995 International Static Analysis Symposium, Lecture Notes in Computer Science vol. 854 (1995). Springer-Verlag, pp. 207--224.


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

....the type system renders the analysis polyvariant, so that the same function can be specified to have different behaviours at its different uses. Polyvariance in our framework is similar to the notion of polymorphic splitting advocated by Jagannathan and Wright for improving the precision of 0 CFA [9]. Our work differs in that polyvariance is obtained as a result of the inherent polymorphism in the rank 2 intersection type system rather than as a result of an explicit polyvariant closure analysis based on abstract interpretation. 1.4 Organisation of the paper Section 2 briefly reviews ....

....analysis. Our analysis needs to be implemented, tested for precision, and analysed for complexity vis a vis its corresponding abstract interpretation based analysis. It also remains to be seen how this work compares with the polymorphic splitting optimisation of Jagannathan and Wright [9]. We are continuing work on extending our framework with recursive types of the form t: where is a T0 type. Such an extension would allow us to handle recursive data structures as well. It will also be interesting to develop a generic, typebased program analysis framework that is modular ....

Suresh Jagannathan and Andrew Wright. Effective 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.


From Polyvariant Flow Information to Intersection and Union.. - Palsberg, Pavlopoulou (1998)   (27 citations)  (Correct)

....Dept of Computer Science, W Lafayette, IN 47907, USA, fpalsberg,pavlog cs.purdue.edu 1 Introduction 1. 1 Background Flow analysis of higher order programs is done for a variety of reasons, including: closure conversion [46] binding time analysis [7] optimizing strict functional programs [23], optimizing non strict functional programs [15] optimizing object oriented programs [36] optimizing concurrent programs [38] safety checking [16, 34] and detecting uncaught exceptions [49] A basic, often seen form of flow analyses can be done in O(n 3 ) time where n is the size of the ....

....and thereby obtain better precision for each call site. Polyvariant analysis was pioneered by Sharir and Pnueli [41] and Jones and Muchnick [26] In the 1990s the study of polyvariant analysis has been intensive. Well known are the k CFA of Shivers [42] the poly k CFA of Jagannathan and Weeks [23], and the cartesian product algorithm of Agesen [1, 2] A particularly simple polyvariant analysis was presented by Schmidt [40] Frameworks for defining polyvariant analyses have been presented by Stefanescu and Zhou [43] Jagannathan and Weeks [22] and Nielson and Nielson [31] Successful ....

Suresh Jagannathan and Andrew Wright. Effective flow analysis for avoiding run-time checks. In Proc. SAS'95, International Static Analysis Symposium. Springer-Verlag (LNCS 983), Glasgow, Scotland, September 1995.


Componential Set-Based Analysis - Flanagan, Felleisen (1997)   (62 citations)  (Correct)

....constraint system for each polymorphic reference via a straightforward implementation of the rules (let) and (inst) 8 The remaining four analyses are smart analyses that simplify the constraint system for each polymorphic definition. We tested the analyses using a standard set of benchmarks [13]. The results of the test runs are documented in figure 10. The second column shows the number of lines in each benchmark; the third column presents the time for the copy analysis; and columns four to seven show the times for each smart polymorphic analysis, as a percentage of the copy analysis ....

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


Storage Use Analysis and its Applications - Serrano, Feeley (1996)   (19 citations)  (Correct)

....his PhD thesis, he presents extensions for lists, vectors, etc. Our work has been realized concurrently with his [24, 3] The large difference between our analyses comes from the formalism. Ayers uses Galois connection while we chose a more algorithmic approach. Jagannathan and Wright describe in [15] a control flow analysis and an application which removes type checks. Their analysis gives more precise type information than ours because it does not merge types for polymorphic programs. More precise type information is valuable to remove type checks but is not more valuable for a mixed ....

S. Jagannathan and A. Wright. Effective Flow Analysis for Avoiding Run-Time Checks. In 2nd Static Analysis Symposium, Lecture Notes on Computer Science, pages 207--224, Glasgow, Scotland, September 1995.


Set-Based Analysis for Full Scheme and Its Use in Soft-Typing - Flanagan, Felleisen (1995)   (16 citations)  (Correct)

....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 expressions in a program may assume. Dynamictyping leads to a simple and flexible language suitable for rapid software development, but does not ....

Jagannathan, S., and Wright, A. Effective flow analysis for avoiding run-time checks. , 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 ( Gamma x 1) fac 5) Upon termination of the analysis, the abstract value of x is f5; ....

Suresh Jagannathan and Andrew Wright. Effective 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.


Componential Set-Based Analysis - Flanagan, Felleisen (1997)   (62 citations)  (Correct)

....the constraint system for each polymorphic reference via a straightforward implementation of the rules (let) and (inst) 9 The remaining four analyses are smart analyses that simplify the constraint system for each polymorphic definition. We tested the analyses using a standard set of benchmarks [Jagannathan and Wright 1995]. The results of the test runs are documented in Figure 11. The second column shows the number of lines in each benchmark; the third column presents the time for the copy analysis; and columns four to seven show the times for each smart polymorphic analysis, as a percentage of the copy analysis ....

Jagannathan, S. and Wright, A. K. 1995. Effective flow analysis for avoiding run-time checks. In 2nd International Static Analysis Symposium, Lecture Notes in Computer Science, vol. 983.


Type-Directed Flow Analysis for Typed Intermediate Languages - Jagannathan, Weeks, Wright (1997)   (12 citations)  Self-citation (Jagannathan Wright)   (Correct)

....precise results by associating several abstract values with each subexpression, each of which describes the expression s value during some subset of execution states. Existing flow analysis frameworks for untyped languages use syntactic notions such as call strings [22] or other ad hoc heuristics [4, 10, 15] to distinguish different execution states. Surprisingly, even analyses used in compilers for typed languages ignore type information [3, 10] Using types to control polyvariance 1 offers the pragmatic benefit that a flow analysis will not discard type information supplied by the programmer ....

....three different call sites with two different types. A monovariant analysis computes a single abstract value describing all possible bindings to x, and hence merges values of types int list, real list, int, and real. Because the polyvariance in analyses such as 1CFA [23] and polymorphic splitting [15] depends on a program s syntactic structure, procedures which are supplied values of different type through deep or recursive call chains cause these analyses to introduce unnecessary merging. Hence, these analyses would merge values of different type at x. By using the types at which print is ....

Jagannathan, S., and Wright, A. K. Effective flow analysis for avoiding runtime checks. In Proc. Intl. Static Analysis Symposium (Sept. 1995), mycroft, Ed., no. 983 in Lecture Notes in Computer Science, Springer--Verlag, pp. 207--224.


Compiling Functional Languages with Flow Analysis - Jagannathan, Wright   Self-citation (Jagannathan Wright)   (Correct)

....believe that our compilation strategy is viable because recent developments in flow analysis research are yielding practical analyses. These new analyses can handle large programs with reasonable time and space, and the information they produce is sufficiently precise to drive useful optimizations [3, 4, 5, 7]. We expect our approach to work best for mostly functional programs that make extensive use of higher order procedures, polymorphism, and data abstraction. 3 Flow analysis In its simplest form, a flow analysis for a higher order language determines the sets of values that variables may be bound ....

....4 Optimizations To illustrate the effectiveness of flow analysis as a compilation tool, we summarize two experiments drawn from our own work. Our first experiment investigated eliminating run time type checks from Scheme programs using information computed by a polyvariant flow analysis [4]. Consider a particular application of a primitive p to arguments v 1 , v 2 , v n . In general, p requires that each of its arguments belong to a certain type, and in the absence of any optimizations, the compiled code for applications of p will usually include run time checks to ensure ....

Suresh Jagannathan and Andrew Wright. Effective Flow-Analysis for Avoiding Runtime Checks. In Second Interntational Symposium on Static Analysis, pages 207--225, 1995. Springer-Verlag LNCS 983.


Flow-directed Inlining - Jagannathan, Wright (1996)   (42 citations)  Self-citation (Jagannathan Wright)   (Correct)

....the simplifier to the inlined code for (map car m) 3 Flow directed inlining In this section we give a precise account of our flow directed inlining strategy and the flow analysis that drives it. We have used this same analysis to eliminate run time checks from dynamically typed programs [15]. 3.1 Source language The abstract syntax for our Scheme like source language has labeled expressions e l of the form e l : c l f l x l (p e l 1 1 : e l n n ) l (call e l 0 0 e l 1 1 : e l n n ) l (begin e l 1 1 : e l n n ) l (if e l 1 1 e l 2 2 e l ....

....in the top part of Fig. 4 construct new contours. To provide polyvariance, the rules in the second section of the figure construct new contours for let bound closures in a manner that mimics the actions of a polymorphic type system. Hence we call this form of polyvariance polymorphic splitting [15]. Under polymorphic splitting, contours are finite strings of labels. The e1 subexpression of a let expression evaluates in a contour : l obtained by appending l to the label string . This contour is captured in any abstract closures created by e1 . Since only let expressions extend contours, ....

[Article contains additional citation context not shown here]

Jagannathan, S., and Wright, A. Effective FlowAnalysis for Avoiding Runtime Checks. In Second Interntational Symposium on Static Analysis (1995), pp. 207--225. Springer-Verlag LNCS 983.


How Good is Local Type Inference? - Hosoya, Pierce (1999)   (Correct)

No context found.

Suresh Jagannathan and Andrew Wright. Effective flow analysis for avoiding run-time checks. In Proceedings of the Second International Static Analysis Symposium, volume 983 of LNCS, pages 207--224. Springer-Verlag, 1995.


Polyvariance, Polymorphism and Flow Analysis - Faxen   (Correct)

No context found.

Suresh Jagannathan and Andrew Wright. Effective flow analysis for avoiding runtime checks. Technical Report 95-3, NEC Research Institute, May 1995.

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