Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Yanhong A. Liu is active.

Publication


Featured researches published by Yanhong A. Liu.


ACM Transactions on Programming Languages and Systems | 1998

Static caching for incremental computation

Yanhong A. Liu; Scott D. Stoller; Tim Teitelbaum

A systematic approach is given for deriving incremental programs that exploit caching. The cache-and-prune method presented in the article consists of three stages: (I) the original program is extended to cache the results of all its intermediate subcomputations as well as the final result, (II)) the extended program is incrementalized so that computation on a new input can use all intermediate results on an old input, and (III) unused results cached by the extended program and maintained by the incremental program are pruned away, leaving a pruned extended program that caches only useful intermediate results and a pruned incremental program that uses and maintains only useful results. All three stages utilize static analyses and semantics-preserving transformations. Stages I and III are simple, clean, and fully automatable. The overall method has a kind of optimality with respect to the techniques used in Stage II. The method can be applied straightfowardly to provide a systematic approach to program improvement via caching.


IEEE Transactions on Computers | 2001

Automatic accurate cost-bound analysis for high-level languages

Yanhong A. Liu; Gustavo Gomez

This paper describes a language-based approach for automatic and accurate cost-bound analysis. The approach consists of transformations for building cost-bound functions in the presence of partially known input structures, symbolic evaluation of the cost-bound function based on input size parameters, and optimizations to make the overall analysis efficient as well as accurate, all at the source-language level. The calculated cost bounds are expressed in terms of primitive cost parameters. These parameters can be obtained based on the language implementation or can be measured conservatively or approximately, yielding accurate, conservative, or approximate time or space bounds. We have implemented this approach and performed a number of experiments for analyzing Scheme programs. The results helped confirm the accuracy of the analysis.


Science of Computer Programming | 1994

Systematic derivation of incremental programs

Yanhong A. Liu; Tim Teitelbaum

A systematic approach is given for deriving incremental programs from non-incremental programs written in a standard functional programming language. We exploit a number of program analysis and transformation techniques and domain-specific knowledge, centered around effective utilization of caching, in order to provide a degree of incrementality not otherwise achievable by a generic incremental evaluator.


programming language design and implementation | 2004

Parametric regular path queries

Yanhong A. Liu; Tom Rothamel; Fuxiang Yu; Scott D. Stoller; Nanjun Hu

Regular path queries are a way of declaratively expressing queries on graphs as regular-expression-like patterns that are matched against paths in the graph. There are two kinds of queries: existential queries, which specify properties about individual paths, and universal queries, which specify properties about all paths. They provide a simple and convenient framework for expressing program analyses as queries on graph representations of programs, for expressing verification (model-checking) problems as queries on transition systems, for querying semi-structured data, etc. Parametric regular path queries extend the patterns with variables, called parameters, which significantly increase the expressiveness by allowing additional information along single or multiple paths to be captured and relate.This paper shows how a variety of program analysis and model-checking problems can be expressed easily and succinctly using parametric regular path queries. The paper describes the specification, design, analysis, and implementation of algorithms and data structures for efficiently solving existential and universal parametric regular path queries. Major contributions include the first complete algorithms and data structures for directly and efficiently solving existential and universal parametric regular path queries, detailed complexity analysis of the algorithms, detailed analytical and experimental performance comparison of variations of the algorithms and data structures, and investigation of efficiency tradeoffs between different formulations of queries.


international workshop on model checking software | 2001

Transformations for model checking distributed Java programs

Scott D. Stoller; Yanhong A. Liu

This paper describes three program transformations that extend the scope of model checkers for Java programs to include distributed programs, i.e., multi-process programs. The transformations combine multiple processes into a single process, replace remote method invocations (RMIs) with local method invocations that simulate RMIs, and replace cryptographic operations with symbolic counterparts.


languages compilers and tools for embedded systems | 1998

Automatic Accurate Time-Bound Analysis for High-Level Languages

Yanhong A. Liu; Gustavo Gomez

This paper describes a general approach for automatic and accurate time-bound analysis. The approach consists of transformations for building time-bound functions in the presence of partially known input structures, symbolic evaluation of the time-bound function based on input parameters, optimizations to make the overall analysis efficient as well as accurate, and measurements of primitive parameters, all at the source-language level. We have implemented this approach and performed a number of experiments for analyzing Scheme programs. The measured worst-case times are closely bounded by the calculated bounds.


dynamic languages symposium | 2010

Alias analysis for optimization of dynamic languages

Michael Gorbovitski; Yanhong A. Liu; Scott D. Stoller; Tom Rothamel; Tuncay K. Tekle

Dynamic languages such as Python allow programs to be written more easily using high-level constructs such as comprehensions for queries and using generic code. Efficient execution of programs then requires powerful optimizations - incrementalization of expensive queries and specialization of generic code. Effective incrementalization and specialization of dynamic languages require precise and scalable alias analysis. This paper describes the development and experimental evaluation of a may-alias analysis for a full dynamic object-oriented language, for program optimization by incrementalization and specialization. The analysis is flow-sensitive; we show that this is necessary for effective optimization of dynamic languages. It uses precise type analysis and a powerful form of context sensitivity, called trace sensitivity, to further improve analysis precision. It uses a compressed representation to significantly reduce the memory used by flow-sensitive analyses.We evaluate the effectiveness of this analysis and 17 variants of it for incrementalization and specialization of Python programs, and we evaluate the precision, memory usage, and running time of these analyses on programs of diverse sizes. The results show that our analysis has acceptable precision and efficiency and represents the best trade-off between them compared to the variants.


verification model checking and abstract interpretation | 2002

Optimized Live Heap Bound Analysis

Leena Unnikrishnan; Scott D. Stoller; Yanhong A. Liu

This paper describes a general approach for optimized live heap space and live heap space-bound analyses for garbage-collected languages. The approach is based on program analysis and transformations and is fully automatic. In our experience, the space-bound analysis generally produces accurate (tight) upper bounds in the presence of partially known input structures. The optimization drastically improves the analysis efficiency. The analyses have been implemented and experimental results confirm their accuracy and efficiency.


symposium on principles of programming languages | 1996

Discovering auxiliary information for incremental computation

Yanhong A. Liu; Scott D. Stoller; Tim Teitelbaum

This paper presents program analyses and transformations that discover a general class of auxiliary information for any incremental computation problem. Combining these techniques with previous techniques for caching intermediate results, we obtain a systematic approach that transforms nonincremental programs into efficient incremental programs that use and maintain useful auxiliary information as well as useful intermediate results. The use of auxiliary information allows us to achieve a greater degree of incrementality than otherwise possible. Applications of the approach include strength reduction in optimizing compilers and finite differencing in transformational programming.


computer aided verification | 2000

Efficient Detection of Global Properties in Distributed Systems Using Partial-Order Methods

Scott D. Stoller; Leena Unnikrishnan; Yanhong A. Liu

A new approach is presented for detecting whether a particular computation of an asynchronous distributed system satisfies \(\mathop{{\bf Poss}}\Phi\) (read “possibly Φ”), meaning the system could have passed through a global state satisfying predicate Φ, or \(\mathop{{\bf Def}}\Phi\) (read “definitely Φ”), meaning the system definitely passed through a global state satisfying Φ. Detection can be done easily by straightforward state-space search; this is essentially what Cooper and Marzullo proposed. We show that the persistent-set technique, a well-known partial-order method for optimizing state-space search, provides efficient detection. This approach achieves the same worst-case asymptotic time complexity as two special-purpose detection algorithms of Garg and Waldecker that detect \(\mathop{{\bf Poss}}\Phi\) and \(\mathop{{\bf Def}}\Phi\) for a restricted but important class of predicates. For \(\mathop{{\bf Poss}}\Phi\), our approach applies to arbitrary predicates and thus is more general than Garg and Waldecker’s algorithm. We apply our algorithm for \(\mathop{{\bf Poss}}\Phi\) to two examples, achieving a speedup of over 700 in one example and over 70 in the other, compared to unoptimized state-space search.

Collaboration


Dive into the Yanhong A. Liu's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Tom Rothamel

State University of New York System

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Bo Lin

Stony Brook University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Katia Hristova

State University of New York System

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge