Programming Languages and Compilers

Programmers use programming languages to express the computations they want their software to perform, and compilers to translate the resulting programs to a form that can be executed on hardware.  Research in this area focuses on language and implementation issues: how language constructs influence the way in which computations are performed; how to reason about the behavior of programs; how to translate programs efficiently and effectively into low-level code; and how to improve the performance of code, e.g., with respect to size, speed, resource usage, and/or security.

Research on programming languages and compilers at the University of Arizona focuses on practical issues.  It spans a number of different topic areas and encompasses program analyses and transformations related to software security [Collberg], static and dynamic analysis for deobfuscation and code optimization [Debray] and novel compilation techniques for new and interesting languages [Proebsting]. Ongoing research projects in this area include code obfuscation using covert channels [Collberg and Debray], generic approaches to deobfuscation [Debray], and language-agnostic optimization and parallelization of interpreted code [Debray].

Programming Languages and Compilers Faculty

Christian Collberg

Associate Department Head and Professor
Office: GS 758
Research Interests: Programming languages, compilers, intellectual property protection of software, domain-specific search engines.
(Ph.D., University of Lund, 1992)

Saumya Debray

Office: GS 735
Research Interests: Compilers, program analysis and optimization, programming language implementation.
(Ph.D., The State University of New York at Stony Brook, 1986)

Roberto Giacobazzi

Office: GS 711
Interests: Theory of computation, programming languages, abstract interpretation, program analysis and verification, logic in computer science, history of computing.
(Ph.D., University of Pisa in Italy, 1993)

PhD Students