12 citations found. Retrieving documents...
Y.A. Liu and S.D. Stoller. Eliminating Dead Code on Recursive Data. Science of Computer Programming, 47:221--242, 2003.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Removing Redundant Arguments of Functions - Alpuente, Escobar, Lucas (2002)   (1 citation)  (Correct)

....which demonstrates the practicality of our approach. 1 Introduction A number of researchers have noticed that certain processes of optimization, transformation, specialization and reuse of code often introduce anomalies in the generated code that programmers usually (or ideally) do not write [6, 16, 25, 26]. Examples are redundant arguments in the functions de ned by the program, as well as useless program rules. Example 1. Consider the following program, which calculates the last element of a list and the concatenation of two lists of natural numbers, respectively: data Nat = 0 S Nat ....

.... procedures cannot perform this optimization as they only improve programs where program calls contain dead functors or multiple occurrences of the same variable, or the functions are de ned by rules whose rhs s are normalizable [3, 11, 12] Known procedures for removing dead code such as [7, 19, 26] do not apply to this example either. It seems interesting to formalize program analysis techniques for detecting these kinds of redundancies as well as to formalize transformations for eliminating dead code which appears in the form of redundant function arguments or useless rules and which, in ....

[Article contains additional citation context not shown here]

Y. A. Liu and S. D. Stoller. Eliminating dead code on recursive data. Science of Computer Programming, 2002. To appear. Preliminary version in Proc. of SAS'99, LNCS 1694:211-231. Springer-Verlag, Berlin, 1999.


Redundancy of Arguments Reduced to Induction - Alpuente, Echahed, Escobar, Lucas (2002)   (Correct)

....The application of automatic transformation processes during the formal development and optimization of programs can introduce encumbrances in the generated code that programmers usually (or presumably) do not write. Examples are redundant arguments in the functions de ned in the program [1, 2, 7, 13, 15, 18, 20, 21, 24, 27]. Example 1. Consider the following program, which can be used for adding and substracting natural numbers in Peano s notation: minus(x,0) x plus(0,y) y minus(0,s(y) 0 plus(s(x) y) s(plus(x,y) minus(s(x) s(y) minus(x,y) Work partially supported by CICYT TIC2001 2705 C03 01, ....

....) plus0(s(x) s(plus0(x) r 8 ) minus1(s(y) minus1(y) Note that the second argument of the function minusplus is redundant for the semantics of computed values and would not typically be written by a programmer who writes this program by hand. Known procedures for removing dead code such as [7, 18, 21] as well as standard (post specialization) renaming compression procedures (see e.g. 3] cannot remove the redundant argument either. Moreover, redundant argument ltering procedures for logic programs such as the one included in the partial deduction system ECCE [19] do not recognize the ....

Y. A. Liu and S. D. Stoller. Eliminating dead code on recursive data. Science of Computer Programming, 2002. Preliminary version in Proc. of SAS'99, LNCS 1694:211-231. Springer-Verlag, Berlin, 1999.


Dynamic Programming via Static Incrementalization - Liu, Stoller (2002)   (13 citations)  Self-citation (Liu Stoller)   (Correct)

....we form an optimized program that computes f 0 by using the base cases in f 0 and by repeatedly using the incremental version . 16 5. 1 Pruning Pruning requires a dependence analysis that can precisely describe substructures of trees [38] We use an analysis based on regular tree grammars [31, 35]. We have designed and implemented a simple algorithm that uses regular tree grammar based constraints to eciently produce precise analysis results [33, 35] Pruning can save space and time and reduce code size. For example, in program c , only the third component of r is useful. Pruning ....

.... requires a dependence analysis that can precisely describe substructures of trees [38] We use an analysis based on regular tree grammars [31, 35] We have designed and implemented a simple algorithm that uses regular tree grammar based constraints to eciently produce precise analysis results [33, 35]. Pruning can save space and time and reduce code size. For example, in program c , only the third component of r is useful. Pruning the second and fourth components of c and c , which makes the third component become the second component, and doing a few simpli cations, which ....

[Article contains additional citation context not shown here]

Y. A. Liu and S. D. Stoller. Eliminating dead code on recursive data. In Proceedings of the 6th International Static Analysis Symposium, volume 1694 of Lecture Notes in Computer Science, pages 211-231. Springer-Verlag, Berlin, 1999.


Solving Regular Tree Grammar Based Constraints - Liu, Li, Stoller (2000)   Self-citation (Liu Stoller)   (Correct)

....analysis in practice. Our implementation also runs two to ten times as fast as a previous implementation of an informally designed algorithm. 1 Introduction Regular tree grammar based methods are important for program analysis, especially for analyzing programs that use recursive data structures [25, 36, 20, 50, 29]. Basically, a set of grammar based constraints is constructed from the program and a user query and is then simpli ed according to a set of simpli cation rules to produce the solution. Usually, the constraints are constructed in linear time in the size of the program, and the eciency of the ....

....particular, our accurate complexity analysis at the higher level suggests that combination with unbased representation works well in our application, and our experiments support this. Our implementation runs two to ten times as fast as a previous implementation of an informally designed algorithm [29]. The main contributions of this work are (1) the application of a powerful, systematic transformational design methodology that leads from a precise high level xed point speci cation of a nontrivial problem to a highly ecient algorithmic solution, 2) the identi cation of parameters in problem ....

[Article contains additional citation context not shown here]

Y. A. Liu and S. D. Stoller. Eliminating dead code on recursive data. In SAS 1999 [52], pages 211-231. 25


Solving Regular Tree Grammar Based Constraints - Liu, Li, Stoller (2000)   Self-citation (Liu Stoller)   (Correct)

....in practice. Our implementation also runs two to ten times as fast as a previous implementation of an informally designed algorithm. 1 Introduction Regular tree grammar based methods are important for program analysis, especially for analyzing programs that use recursive data structures [22, 29, 17, 37, 25]. Basically, a set of grammar based constraints is constructed from the program and a user query and is then simpli ed according to a set of simpli cation rules to produce the solution. Usually, the constraints are constructed in linear time in the size of the program, and the eciency of the ....

....particular, our accurate complexity analysis at the higher level suggests that combination with unbased representation works well in our application, and our experiments support this. Our implementation runs two to ten times as fast as a previous implementation of an informally designed algorithm [25]. The main contributions of this work include (1) the application of a powerful, systematic transformational design methodology that leads from a precise high level xed point speci cation of a nontrivial problem to a highly ecient algorithmic solution, 2) the identi cation of parameters in ....

[Article contains additional citation context not shown here]

Y. A. Liu and S. D. Stoller. Eliminating dead code on recursive data. In SAS 1999 [39], pages 211-231.


Strengthening Invariants for Efficient Computation - Liu, Stoller, Teitelbaum (2001)   Self-citation (Liu Stoller)   (Correct)

....useful in computing 0 ( f 0 0 (x; y; r) which is the value of f 0 . A pruning transformation replaces useless computations with . Finally, the resulting functions are optimized by eliminating the components, adjusting the selectors, etc. Improved methods for pruning are described in [48,52]. For functions cmp in (11) and cmp 0 in (12) 1st( cmp 0 (y; r) depends on 1st(6th( r) and 1st(7th( r) which depend on 1st(3rd( r) and 1st(5th( r) respectively. All other components are not needed. We obtain g cmp(x) let v1 = odd(x) in let u1 = sum(v1 ) ....

....programs that exploit return values [56] Soon after, transformations and analyses for cache and prune [55,54] fully automated, were added. Later on, a subset of the transformations for exploiting return values were made fully automatic [89] and the analysis for pruning was drastically improved [52]. A separate module for optimizing aggregate array computations [50] was added most recently. All these are implemented using the Synthesizer Generator [72] making extensive use of its scripting language, STk [30] a dialect of Scheme. CACHET has been used in teaching several graduate courses on ....

Y. A. Liu and S. D. Stoller. Eliminating dead code on recursive data. In Proceedings of the 6th International Static Analysis Symposium, volume 1694 of Lecture Notes in Computer Science, pages 211-231, Venice, Italy, Sept. 1999. Springer-Verlag, Berlin.


Dynamic Programming via Static Incrementalization - Liu, Stoller (2000)   (13 citations)  Self-citation (Liu Stoller)   (Correct)

....an optimized program that computes f 0 by using the base cases in f 0 and by repeatedly using the incremental version f 0 0 . 16 5. 1 Pruning Pruning requires a dependence analysis that can precisely describe substructures of trees [38] We use an analysis based on regular tree grammars [31, 35]. We have designed and implemented a simple algorithm that uses regular tree grammar based constraints to eciently produce precise analysis results [33, 35] Pruning can save space and time and reduce code size. For example, in program c 0 , only the third component of r is useful. Pruning ....

.... requires a dependence analysis that can precisely describe substructures of trees [38] We use an analysis based on regular tree grammars [31, 35] We have designed and implemented a simple algorithm that uses regular tree grammar based constraints to eciently produce precise analysis results [33, 35]. Pruning can save space and time and reduce code size. For example, in program c 0 , only the third component of r is useful. Pruning the second and fourth components of c and c 0 , which makes the third component become the second component, and doing a few simpli cations, which ....

[Article contains additional citation context not shown here]

Y. A. Liu and S. D. Stoller. Eliminating dead code on recursive data. In Proceedings of the 6th International Static Analysis Symposium, volume 1694 of Lecture Notes in Computer Science, pages 211-231, Venice, Italy, Sept. 1999. Springer-Verlag, Berlin.


Solving Regular Tree Grammar Based Constraints - Liu, Li, Stoller (2000)   Self-citation (Liu Stoller)   (Correct)

....in practice. Our implementation ranges from two to ten times as fast as a previous implementation of an informally designed algorithm. 1 Introduction Regular tree grammar based methods are important for program analysis, especially for analyzing programs that use recursive data structures [23, 32, 18, 45, 26]. Basically, a set of grammar based constraints is constructed from the program and a user query and is then simplified according to a set of simplification rules to produce the solution. Usually, the constraints are constructed in linear time in the size of the program, and the efficiency of the ....

....(812)855 f4373,xxxx,7979g. Fax: 812)855 4829. 1 higher level suggests that combination with unbased representation work well in our application, and our experiments support this. Our implementation runs two to ten times as fast as a previous implementation of an informally designed algorithm [26]. The rest of the paper is organized as follows. Section 2 specifies the problem. Section 3 gives an overview of the algorithm design and analysis approach. Sections 4, 5, and 6 describe finite differencing applied to the derivation of our simplification algorithm, higher level design and ....

[Article contains additional citation context not shown here]

Y. A. Liu and S. D. Stoller. Eliminating dead code on recursive data. In Proceedings of the 6th International Static Analysis Symposium, volume 1694 of Lecture Notes in Computer Science, pages 211--231, Venice, Italy, Sept. 1999. Springer-Verlag, Berlin.


Efficient Computation via Incremental Computation - Liu (1999)   Self-citation (Liu)   (Correct)

....auxiliary data structures by building them in a library and using them from there, the method is able to derive all the examples we have seen and tried in the program transformation literature. The overall method combines many existing analyses and transformations, also improving some of them [45, 49], and puts them in an overall step wise procedure. Thus it is systematic and, in particular, automatable modulo the equality reasoning, time analysis, and discovery of special auxiliary data structures. Because of this, we are able to derive many examples easily and quickly, often obtaining ....

Y. A. Liu and S. D. Stoller. Eliminating dead code on recursive data. In Proceedings of the 6th International Static Analysis Symposium, volume 1694 of Lecture Notes in Computer Science, pages 211--231, Venice, Italy, Sept. 1999. Springer-Verlag, Berlin.


Program Specialization Based on Dynamic Slicing - Ochoa, Silva, Vidal (2004)   (Correct)

No context found.

Y.A. Liu and S.D. Stoller. Eliminating Dead Code on Recursive Data. Science of Computer Programming, 47:221--242, 2003.


Removing Redundant Arguments Automatically - M.Alpuente, S.Escobar, S.Lucas (2004)   (Correct)

No context found.

Liu, Y. A. and Stoller, S. D. 2002. Eliminating dead code on recursive data. Science of Computer Programming .


Active Libraries and Universal Languages - Veldhuizen (2004)   (1 citation)  (Correct)

No context found.

Yanhong A. Liu and Scott D. Stoller. Eliminating dead code on recursive data. In Static Analysis Symposium, pages 211--231, 1999. URL citeseer.nj.nec.com/liu01eliminating. html.

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