Network


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

Hotspot


Dive into the research topics where Tim A. Wagner is active.

Publication


Featured researches published by Tim A. Wagner.


programming language design and implementation | 1994

Accurate static estimators for program optimization

Tim A. Wagner; Vance Maverick; Susan L. Graham; Michael A. Harrison

Determining the relative execution frequency of program regions is essential for many important optimization techniques, including register allocation, function inlining, and instruction scheduling. Estimates derived from profiling with sample inputs are generally regarded as the most accurate source of this information; static (compile-time) estimates are considered to be distinctly inferior. If static estimates were shown to be competitive, however, their convenience would outweigh minor gains from profiling, and they would provide a sound basis for optimization when profiling is impossible. We use quantitative metrics to compare estimates from static analysis to those derived from profiles. For C programs, simple techniques for predicting branches and loop counts suffice to estimate intraprocedural frequency patterns with high accuracy. To determine inter-procedural estimates successfully, we combine function-level information with a Markov model of control flow over the call graph to produce arc and basic block frequency estimates for the entire program. For a suite of 14 programs, including the C programs from the SPEC92 benchmark suite, we demonstrate that static estimates are competitive with those derived from profiles. Using simple heuristics, we can determine the most frequently executed blocks in each function with 81% accuracy. With the Markov model, we identify 80% of the frequently called functions. Combining the two techniques, we identify 76% of the most frequently executed call sites.


programming language design and implementation | 1997

Incremental analysis of real programming languages

Tim A. Wagner; Susan L. Graham

A major research goal for compilers and environments is the automatic derivation of tools from formal specifications. However, the formal model of the language is often inadequate; in particular, LR(k) grammars are unable to describe the natural syntax of many languages, such as C++ and Fortran, which are inherently non-deterministic. Designers of batch compilers work around such limitations by combining generated components with ad hoc techniques (for instance, performing partial type and scope analysis in tandem with parsing). Unfortunately, the complexity of incremental systems precludes the use of batch solutions. The inability to generate incremental tools for important languages inhibits the widespread use of language-rich interactive environments.We address this problem by extending the language model itself, introducing a program representation based on parse dags that is suitable for both batch and incremental analysis. Ambiguities unresolved by one stage are retained in this representation until further stages can complete the analysis, even if the reaolution depends on further actions by the user. Representing ambiguity explicitly increases the number and variety of languages that can be analyzed incrementally using existing methods.To create this representation, we have developed an efficient incremental parser for general context-free grammars. Our algorithm combines Tomitas generalized LR parser with reuse of entire subtrees via state-matching. Disambiguation can occur statically, during or after parsing, or during semantic analysis (using existing incremental techniques); program errors that preclude disambiguation retsin multiple interpretations indefinitely. Our representation and analyses gain efficiency by exploiting the local nature of ambiguities: for the SPEC95 C programs, the explicit representation of ambiguity requires only 0.5% additional space and less than 1% additional time during reconstruction.


ACM Transactions on Programming Languages and Systems | 1998

Efficient and flexible incremental parsing

Tim A. Wagner; Susan L. Graham

Previously published algorithms for LR (k) incremental parsing are inefficient, unnecessarily restrictive, and in some cases incorrect. We present a simple algorithm based on parsing LR(k) sentential forms that can incrementally parse an arbitrary number of textual and/or structural modifications in optimal time and with no storage overhead. The central role of balanced sequences in achieving truly incremental behavior from analysis algorithms is described, along with automated methods to support balancing during parse table generation and parsing. Our approach extends the theory of sentential-form parsing to allow for ambiguity in the grammar, exploiting it for notational convenience, to denote sequences, and to construct compact (“abstract”) syntax trees directly. Combined, these techniques make the use of automatically generated incremental parsers in interactive software development environments both practical and effective. In addition, we address information preservation in these environments: Optimal node reuse is defined; previous definitions are shown to be insufficient; and a method for detecting node reuse is provided that is both simpler and faster than existing techniques. A program representation based on self-versioning documents is used to detect changes in the program, generate efficient change reports for subsequent analyses, and allow the parsing transformation itself to be treated as a reversible modification in the edit log.


Proceedings IEEE COMPCON 97. Digest of Papers | 1997

Efficient self-versioning documents

Tim A. Wagner; Susan L. Graham

We describe methods to produce software and multimedia documents that are self versioning-they efficiently capture changes as the document is modified, providing access to every version with extremely fine granularity. The approach uses an object based spatial indexing scheme that combines fast access with very low storage overhead. Multiple tools can extract change reports from these documents without requiring their queries to be synchronized. We describe and evaluate a working implementation of these ideas, suitable for use in software development environments, multimedia authoring systems, and non traditional databases.


european software engineering conference | 1995

Integrating Incremental Analysis with Version Management

Tim A. Wagner; Susan L. Graham

In an interactive software development environment, incremental algorithms are used to restore consistency to structured, annotated documents after they have been modified. Versioning expresses the relationship of a documents content to its modification history. We present a means of integrating these formerly separate concerns; the analyses and transformations used both for updates and for consistency restoration are implemented using a fine-grained model of object versioning.


Archive | 1999

General Incremental Lexical Analysis

Tim A. Wagner; Susan L. Graham


Archive | 1994

A Document Architecture for Integrated Software Development

Brian M. Dennis; Roy Goldman; Susan L. Graham; Michael A. Harrison; William Harry Maddox; Vance Maverick; Ethan V. Munson; Tim A. Wagner


Archive | 1999

History-Sensitive Error Recovery

Tim A. Wagner; Susan L. Graham


ACM Transactions on Programming Languages and Systems | 1996

History-sensitive incremental parsing

Tim A. Wagner; Susan L. Graham


Software - Practice and Experience | 1997

Modeling explicit white-space in an incremental SDE

Tim A. Wagner; Susan L. Graham

Collaboration


Dive into the Tim A. Wagner's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Vance Maverick

University of California

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge