David Padua has made many contributions in the area of program analysis and compiling. These include techniques for autoparallelization of Fortran programs, compilation of explicitly parallel programs, compilation of interactive languages like MATLAB, and detection of race conditions in parallel programs. His extensive work in autoparallelization include the development of techniques to translate loops into "cascade" parallel form which anticipated some of the techniques widely used today to compile for fine-grain parallelism and influenced the design of parallel language directives and the organization of some multiprocessors. During the last few years he and his students have improved the effectiveness of autoparallelization with the introduction of new algorithms for array privatization, compile-time analysis of complex subscript expressions, and run-time speculation. His work on MATLAB compilation programs led to performance improvements of up to three orders of magnitude over interpreted code and, in some cases, of over a hundred over commercial compilers. He has also developed techniques to analyze collission and syncrhonization between parallel threads in explicitly parallel programs which can be used to identify race conditions and to constrain the application of traditional compiler techniques to ensure correctness.