Thomas W. Reps

Last updated
Thomas William Reps
Born (1956-05-28) May 28, 1956 (age 63)
Alma mater Harvard University, B.A., cum laude, 1977
Cornell University, M.S., 1982, Ph.D., 1985
Scientific career
Institutions University of Wisconsin–Madison (1985-present)
GrammaTech (1988-present)
Institut National de Recherche en Informatique et en Automatique (INRIA) in Rocquencourt, France (1982-83)
University of Copenhagen (1993-94)
Consiglio Nazionale delle Ricerche in Pisa, Italy (2000-2001)
University Paris Diderot (2007-2008)
Thesis Generating Language-Based Environments  (1982)
Doctoral advisor Tim Teitelbaum

Thomas W. Reps (born 28 May 1956, United States) is an American computer scientist known for his contributions to automatic program analysis. Dr. Reps is Professor of Computer Science in the Computer Sciences Department of the University of Wisconsin–Madison, which he joined in 1985. Reps is the author or co-author of four books and more than one hundred seventy-five papers describing his research. His work has covered a wide variety of topics, including program slicing, data-flow analysis, pointer analysis, model checking, computer security, instrumentation (computer programming), language-based program-development environments, the use of program profiling in software testing, software renovation, incremental algorithms, and attribute grammars. [1]

A computer scientist is a person who has acquired the knowledge of computer science, the study of the theoretical foundations of information and computation and their application.

University of Wisconsin–Madison Public university in Wisconsin, USA

The University of Wisconsin–Madison is a public research university in Madison, Wisconsin. Founded when Wisconsin achieved statehood in 1848, UW–Madison is the official state university of Wisconsin, and the flagship campus of the University of Wisconsin System. It was the first public university established in Wisconsin and remains the oldest and largest public university in the state. It became a land-grant institution in 1866. The 933-acre (378 ha) main campus, located on the shores of Lake Mendota, includes four National Historic Landmarks. The University also owns and operates a historic 1,200-acre (486 ha) arboretum established in 1932, located 4 miles (6.4 km) south of the main campus.

In computer programming, program slicing is the computation of the set of program statements, the program slice, that may affect the values at some point of interest, referred to as a slicing criterion. Program slicing can be used in debugging to locate source of errors more easily. Other applications of slicing include software maintenance, optimization, program analysis, and information flow control.


Reps’s current work focuses on static analysis of stripped (binary) executables, and methods that—without relying on symbol-table or debugging information—recover intermediate representations that are similar to those the intermediate phases of a compiler creates for a program written in a high-level language. The goal is to provide a disassembler or decompiler platform that an analyst can use to understand the workings of COTS components, plugins, mobile code, and DLLs, as well as memory snapshots of worms and virus-infected code.

Static program analysis is the analysis of computer software that is performed without actually executing programs, in contrast with dynamic analysis, which is analysis performed on programs while they are executing. In most cases the analysis is performed on some version of the source code, and in the other cases, some form of the object code.

Machine code set of instructions executed directly by a computers central processing unit (CPU)

Machine code is a computer program written in machine language instructions that can be executed directly by a computer's central processing unit (CPU). Each instruction causes the CPU to perform a very specific task, such as a load, a store, a jump, or an ALU operation on one or more units of data in CPU registers or memory.

Executable file that can be run by a computer

In computing, executable code or an executable file or executable program, sometimes simply referred to as an executable, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file that must be parsed by a program to be meaningful.

Reps is President and Co-founder of GrammaTech, Inc.

GrammaTech is a software-development tools vendor based in Ithaca, New York. The company was founded in 1988 as a technology spin-off of Cornell University. They now develop CodeSonar, a static analysis tool for source code and binaries, and perform cyber-security research.

Awards and honors

Reps has been the recipient of the following awards:

The Association for Computing Machinery (ACM) is an international learned society for computing. It was founded in 1947, and is the world's largest scientific and educational computing society. The ACM is a non-profit professional membership group, claiming nearly 100,000 student and professional members as of 2019. Its headquarters are in New York City.

National Science Foundation United States government agency

The National Science Foundation (NSF) is a United States government agency that supports fundamental research and education in all the non-medical fields of science and engineering. Its medical counterpart is the National Institutes of Health. With an annual budget of about US$7.8 billion, the NSF funds approximately 24% of all federally supported basic research conducted by the United States' colleges and universities. In some fields, such as mathematics, computer science, economics, and the social sciences, the NSF is the major source of federal backing.

The Presidential Young Investigator Award (PYI) was awarded by the National Science Foundation of the United States Federal Government. The program operated from 1984 to 1991, and was replaced by the NSF Young Investigator (NYI) Awards and Presidential Faculty Fellows Program (PFF).

Related Research Articles

Ralph E. Johnson is a Research Associate Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign. He is a co-author of the influential computer science textbook Design Patterns: Elements of Reusable Object-Oriented Software, for which he won the 2010 ACM SIGSOFT Outstanding Research Award.

David Ungar American computer scientist

David Michael Ungar, an American computer scientist, co-created the Self programming language with Randall Smith. The SELF development environment's animated user experience was described in the paper Animation: From Cartoons to the User Interface co-written with Bay-Wei Chang, which won a lasting impact award at the ACM Symposium on User Interface Software and Technology 2004.

Monica Sin-Ling Lam is an American computer scientist. She is a professor in the Computer Science Department at Stanford, and founder of Moka5 and Omlet.

In computer science, pointer analysis, or points-to analysis, is a static code analysis technique that establishes which pointers, or heap references, can point to which variables, or storage locations. It is often a component of more complex analyses such as escape analysis. A closely related technique is shape analysis.

Mary Shaw (computer scientist) American software engineer

Mary Shaw is an American software engineer, and the Alan J. Perlis Professor of Computer Science in the School of Computer Science at Carnegie Mellon University, known for her work in the field of software architecture.

George Necula Romanian computer scientist

George Ciprian Necula is a Romanian computer scientist, engineer at Google, and former professor at the University of California, Berkeley who does research in the area of programming languages and software engineering, with a particular focus on software verification and formal methods. He is best known for his Ph.D. thesis work first describing proof-carrying code, a work that received the 2007 SIGPLAN Most Influential POPL Paper Award.

Carlo Ghezzi is a professor and Chair of Software Engineering at the Politecnico di Milano, Italy and an Adjunct Professor at the Università della Svizzera italiana (USI), Switzerland. At the Politecnico, he is the Rector's Delegate for research; he has been Department Chair, Head of the PhD Program, member of the Academic Senate and of the Board of Governors of Politecnico.

Shriram Krishnamurthi is a computer scientist, currently a professor of computer science at Brown University and a member of the core development group for the Racket programming languages, responsible for creation of software packages including the Debugger, the FrTime package, and the networking library. Since 2006, Krishnamurthi has been a leading contributor to the Bootstrap curriculum, a project to integrate computer science education into grades 6–12.

Leon Joel Osterweil is an American Computer Scientist noted for his research on software engineering.

Mary Jean Harrold was an American computer scientist noted for her research on software engineering. She was also noted for her leadership in broadening participation in computing. She was on the boards of both CRA and CRA-W and was Co-Chair of CRA-W from 2003-2006.

(Ray) Tim Teitelbaum is an American computer scientist known for his early work on integrated development environments (IDEs), syntax-directed editing, and incremental computation. As an educator and faculty member of the Cornell University Computer Science Department since 1973, he was recognized for his large-scale teaching of introductory programming, and for his mentoring of highly successful graduate students. As a businessman, he is known for having co-founded GrammaTech, Inc. and for having been its sole CEO since 1988.

Susan Beth Horwitz was an American computer scientist noted for her research on programming languages and software engineering, and in particular on program slicing and dataflow-analysis. She had several best paper and an impact paper award mentioned below under awards.

Alexander L. Wolf computer scientist

Alexander L. Wolf is a Computer Scientist known for his research in software engineering, distributed systems, and computer networking. He is credited, along with his many collaborators, with introducing the modern study of software architecture, content-based publish/subscribe messaging, content-based networking, automated process discovery, and the software deployment lifecycle. Wolf's 1985 Ph.D. dissertation developed language features for expressing a module's import/export specifications and the notion of multiple interfaces for a type, both of which are now common in modern computer programming languages.

Axel van Lamsweerde is a Belgian computer scientist and Professor of Computing Science at the Universite catholique de Louvain, known for his work on requirements engineering and the development of the KAOS goal-oriented modeling language.

Helmut Veith was an Austrian computer scientist who worked on the areas of computer-aided verification, software engineering, computer security, and logic in computer science. He was a Professor of Informatics at the Vienna University of Technology, Austria.

Nenad Medvidović is a Professor of Computer Science and Informatics at the University of Southern California, Los Angeles. He is a fellow of the IEEE and an ACM Distinguished Scientist. He is chair of ACM SIGSOFT and co-author of Software Architecture: Foundations, Theory, and Practice (2009). In 2008, he received the Most Influential Paper Award for a paper titled "Architecture-Based Runtime Software Evolution" published in the ACM/IEEE International Conference on Software Engineering 1998. In 2017, he received an IEEE International Conference on Software Architecture Best Paper Award for his paper titled "Continuous Analysis of Collaborative Design".

Shmuel Sagiv Israeli computer scientist

Mooly (Shmuel) Sagiv is an Israeli computer scientist known for his work on static program analysis. He is currently Chair of Software Systems in the School of Computer Science at Tel Aviv University, and CEO of Certora, a startup company providing formal verification of smart contracts.


  5. "Archived copy". Archived from the original on 24 October 2012. Retrieved 14 October 2013.CS1 maint: archived copy as title (link)