Home > People > Faculty > Jack Davidson
Jack Davidson

Jack Davidson

Professor of Computer Science

Phone: (434) 982-2209
Fax: (434) 982-2214
Email: davidson@cs.virginia.edu
Home Page: Jack Davidson

Department of Computer Science
School of Engineering and Applied Science
University of Virginia
151 Engineer‘s Way, P.O. Box 400740
Charlottesville, Virginia 22904-4740

"The best programmers, like the best craftsmen, understand the tools they use."

Areas Of Interest

Compilers, code generation, optimization, security, computer architecture

Biographical Sketch

Jack Davidson received his Ph.D. in Computer Science at the University of Arizona in 1981. He joined UVa as an Assistant Professor of Computer Science in 1982, becoming Associate Professor in 1988 and Professor in 1998. In 1997 he received the McGraw-Hill "Most Successful New title" Award for his best-selling C++ textbook (co-authored with Jim Cohoon). His more recent book Java Program Design was published in 2003. He is Associate Editor for ACM's Transactions on Programming Languages and Systems. He has directed six Ph.D. theses and is the author or co-author of one book and over 70 papers.

Research

Davidson's research focuses on two complementary areas of computer science: compiler construction and computer architecture. Since the performance of a computer system depends on interaction between the hardware and software, little is gained by including architectural enhancements that the compiler cannot exploit. Davidson's research investigates this interaction with a goal of developing effective solutions. In compiler construction, he investigates the development of easily retargetable, highly optimizing compilers. Earlier research developed an intermediate representation, RTL, which is the basis for two widely distributed and widely used retargetable, optimizing compilers, the GNU C compiler and vpo. He was a principal investigator of the National Compiler Infrastructure (NCI) project, which developed Zephyr, a tool suite for compiler and architecture research. Currently he is designing and building new software development environments for high-performance embedded applications (e.g., wireless video, digital cameras, etc.). He is also working on dynamic optimization with a focus on performance-driven computing.

Selected Publications

[Home Page] [Vitae] [Zephyr] [Java Program Design] [CoCo]