Home Page of Prof. Thomas W. Reps
 
   
   

 
Computer Sciences Dept.

Thomas W. Reps

Professor
Computer Sciences Department
University of Wisconsin-Madison
1210 West Dayton Street
Madison, WI 53706-1685
USA

Picture of Thomas W. Reps
Contact Information:

E-mail: reps at cs.wisc.edu
Telephone: (608) 262-2091
Department: (608) 262-1204

Some Maps: Campus Map | Campus-to-Capitol Map | City Map

Ph.D., Cornell University, 1982 (CV, Wikipedia, Biography, Current Research, Summary of Past Research)

Research Interests:

See also Google Scholar, DBLP, Microsoft Academic Search, Microsoft Academic Search's PL Authors, Microsoft Academic Search's SE Authors, and CiteseerX, Citeseer.

Projects:

Recent Items of Note*new*

Recent Publications

[Back to the top]

Miscellaneous

The paper

  • Horwitz, S., Reps, T., and Binkley, D., Interprocedural slicing using dependence graphs. In Proceedings of the ACM SIGPLAN 88 Conference on Programming Language Design and Implementation, (Atlanta, GA, June 22-24, 1988), ACM SIGPLAN Notices 23, 7 (July 1988), pp. 35-46. [abstract; ACM Author-Izer Link]
was selected for inclusion in a special SIGPLAN collection of the 50 most influential papers from the SIGPLAN Conference on Programming Language Design and Implementation from 1979 to 1999:
  • Horwitz, S., Reps, T., and Binkley, D., Interprocedural slicing using dependence graphs. 20 Years of the ACM SIGPLAN Conference on Programming Language Design and Implementation (1979 - 1999): A Selection, K.S. McKinley, ed., ACM SIGPLAN Notices 39, 4 (April 2004), 232-243.

A retrospective on the paper was published as

An extended version of the PLDI 88 paper later appeared as the following journal paper:

[Back to the top]

Availability of Program-Slicing Tools

The Wisconsin Program-Slicing Tool

The The Wisconsin Program-Slicing Tool is a software system that supports operations on C programs, including backward slicing, forward slicing, and chopping [TOPLAS90, FSE94, FSE95b], which can help the user gain an understanding of what a program does and how it works. The Wisconsin Program-Slicing Tool consists of a package for building and manipulating control-flow graphs and program dependence graphs, as well as a front-end that parses C programs and translates them to the internal representations used for slicing.

Although the Wisconsin Program-Slicing Tool was distributed from 1996-2000 for not-for-profit research purposes under license from the University of Wisconsin, it is no longer being distributed. However, there is a commercial tool available, named CodeSurfer, that is derived from the Wisconsin implementation and is available from GrammaTech, Inc. GrammaTech has improved on the Wisconsin implementation considerably (both in terms of speed and space efficiency). GrammaTech also provides CodeSurfer to academic researchers on very favorable terms.

CodeSurfer

The Wisconsin program-slicing technology is now available in a commercial product, the CodeSurfertm tool available from GrammaTech, Inc.

CodeSurfer builds a dependence-graph program representation and provides a GUI for exploring this web. The dependence graph includes forward and backward links between each assignment statement and possible uses of the values stored by that assignment. Pointer analysis is used so that indirect loads and stores through pointers are taken into account, as well as indirect function calls. Dataflow analysis is used so that links between unrelated assignments and uses are excluded. Operations that highlight forward and backward slices show the impact of a given statement on the rest of the program (forward slicing), and the impact of the rest of a program on a given statement (backward slicing) [TOPLAS90, FSE94]. Operations that highlight paths between nodes in the dependence graph (chops) show ways in which the program points are interdependent (or independent) [FSE95b]. CodeSurfer's scripting language, which provides access to the dependence-graph program representation and the Tk widget set, is used for extensibility and for batch applications.

Full information about CodeSurfer is available here, where you can find

  • full documentation,
  • whitepapers,
  • pricing information,
  • information about use by academic researchers.
You should be aware that the most important current limitations of CodeSurfer are as follows:
  • Language: C (full support), C++ (alpha support)
  • Program length: < 200K SLOC
CodeSurfer is currently available for Windows NT, Windows 2000, Windows XP, Linux, and Solaris (2.5.1 or later).

[Back to the top]

Popular Papers

[Back to the top]

Categorized Index to Publications

Program Slicing, Differencing, Merging, etc.

Overview

The Wisconsin Program-Slicing Tool

CodeSurfer System

Slicing

Chopping

Differencing

Merging

Algebra of slices (and applications to program merging)

Semantics and slicing

Other applications of slicing

Implemented integration system (for a small Pascal subset)

Miscellaneous

Ph.D. Dissertations

[Back to the top]

Interprocedural Dataflow Analysis

Demand IDFA via bottom-up logic programming and the magic-sets transformation

Exhaustive and Demand IDFA via graph reachability

IDFA using more than graph reachability

PTIME completeness of IDFA

[Back to the top]

Alias Analysis, Pointer Analysis, and Shape Analysis

Ph.D. Dissertations

[Back to the top]

Analysis of Multi-Threaded Programs

Ph.D. Dissertations

[Back to the top]

Symbolic Abstraction and Decision Procedures

Ph.D. Dissertations

[Back to the top]

Other Program-Analysis Problems

Ph.D. Dissertations

[Back to the top]

Path Problems

Context-Free-Language Reachability

Other Path Problems

Ph.D. Dissertations

[Back to the top]

Model Checking

Software

Ph.D. Dissertations

[Back to the top]

Computer Security

Ph.D. Dissertations

[Back to the top]

Code Instrumentation

Ph.D. Dissertations

[Back to the top]

Computational Differentiation and Computational Divided Differencing

[Back to the top]

Program-Development Environments

Ph.D. Dissertations

[Back to the top]

Incremental Computing

Ph.D. Dissertations

[Back to the top]

Attribute Grammars

Ph.D. Dissertations

[Back to the top]

Miscellaneous

[Back to the top]


Disclaimer

This web page contains links to PostScript and PDF files of articles that may be covered by copyright. You may browse the articles at your convenience (in the same spirit that you read a journal article or an article from a conference proceedings in a public library). Retrieving, copying, or distributing these files may violate copyright law.

Please note that the definitive versions of these papers are the published versions. The PostScript versions are provided here as a courtesy, and, in some cases, there may be differences between the PostScript provided here and the published version. We believe that all of the differences are either formatting differences or copy-editing changes. If you cite these papers, please cite the published version rather than giving a URL.

[Back to the top]


List of Publications

See also CiteseerX, Citeseer, Google Scholar, Microsoft Academic Search, Microsoft Academic Search's PL Authors, Microsoft Academic Search's SE Authors, and DBLP.

Books

[Back to the top]

Journal Publications

[Back to the top]

Invited Papers

[Back to the top]

Book Chapters

[Back to the top]

Reprinted in Collections

[Back to the top]

Edited Books

[Back to the top]

Conference and Refereed Workshop Publications

[Back to the top]

Patents

[Back to the top]

Pending Submissions

[Back to the top]

Magazine Articles

[Back to the top]

Other Publications and Reports

[Back to the top]


Software

[Back to the top]


Visitors, Post-Docs, and Students

Visitors and Post-Doctoral Associates

Former Students

Current Staff

Current Students

[Back to the top]

 
Computer Sciences | UW Home