CS Home Research Programming Languages

Main menu

Programming Languages Group

url: www.cs.umd.edu/projects/PL/

Jeff Foster. The goal of my research is to discover fundamental new ways to improve software reliability and security. My research focuses on developing tools and techniques to find and prevent software defects, and my approach is to enhance the programming languages in which software engineers construct their software. I have developed numerous tools for reasoning about the quality and security of software. Among others, recent contributions include a system to check type safety of programs written in multiple languages; a new approach for showing that network protocol implementations match their specification; a scalable analysis for finding data races in multi-threaded C programs; and type qualifier systems for C and Java, which have been applied to a wide variety of problems, including finding security vulnerabilities in C programs and detecting deadlocks in the Linux kernel.

Mike Hicks. My research focuses on developing programming language technology to help programmers build software that is reliable, available, and secure. I want to understand how to construct computer systems that never crash, that adapt to changing circumstances and requirements easily, that properly protect data like medical records and financial transactions from unwanted access and tampering, and nevertheless provide useful and efficient services. My research emphasis is on ways to analyze, instrument, and translate source code, and my methodology emphasizes theory, implementation, and experimentation. Some notable work includes techniques for dynamically updating running software, analyses for ensuring safer concurrent programs, and languages that aimed at protecting user data with high assurance.

Bill Pugh. My research interests are varied, but generally focused at finding practical and effective ways to help developers quickly construct reliable software. One research effort is the FindBugs project, which uses static analysis to find coding mistakes in Java programs. FindBugs is an open source project that has been download more than half a million times, and is used by companies such as Google, eBay and Sun. This effort involves finding the bugs that actually cause failures in practice, determining effective ways to detect and report those issues, and working with developers to understand how static analysis tools can be effectively incorporated into the software development process. Another major research thrust is developing techniques to allow the construction of correct concurrent or multithread programs. Writing correct concurrent software is far more challenging than writing correct sequential code, and the field is only now developing the basics for doing so, such as formal semantics of concurrent programs and testing frameworks for concurrent code. As part of this effort, I led a complete rewrite of the specification of threads in the Java language and virtual machine which became part of the Java 5 specification.

University of Maryland
UM Home | CMNS | Directories | Calendar | Contact
Last modified: August 15, 2008