School of Computer Science, carnegie Mellon
Extended Menu Contact Info Directory About SCS SCS New Buildings Info Giving to SCS SCS Dean's Advisory Board
CALENDAR OF EVENTS

 

 SCS Calendar Events

 Search for Events by Date

 Submit an Event to the SCS Calendar

When: Thursday, October 05, 12:00 p.m.

Where: 3305 Newell-Simon Hall

Jeff Foster, Assistant Professor, Computer Science Department and UMIACS
University of Maryland, College Park

Joint ISRI/POP Seminar

Abstract:
Foreign function interfaces (FFIs) provide support for writing multilingual software, in which components in different languages communicate directly with each other. While FFIs are extremely useful, they often require writing tricky, low-level code and include little or no static safety checking, providing a rich source of difficult-to-find programming errors.

In this talk, I will present recent work on Saffire (Static Analysis of Foreign Function InteRfacEs), a pair of tools that enforce type safety across the OCaml-to-C FFI and the Java Native Interface (JNI), which connects Java to C. Saffire uses novel constraint-based type inference algorithms to analyze multilingual programs and ensure that the C code, which does most of the work in these two FFIs, accesses high-level data and functions at the right types. Our type inference algorithms have three novel components: they use special representational types to model C's low-level view of high-level data; they precisely track data values such as integers and strings, in order to correctly model data accesses by the C code; and they incorporate flow-sensitivity or polymorphism to accurately model particular FFI features.

We have developed two tools, O-Saffire for OCaml, and J-Saffire for Java, and applied them to a number of benchmarks. We found many bugs and questionable coding practices in our experiments, suggesting that static checking of FFIs can be a valuable tool in writing correct multilingual software.

Joint work with Mike Furr.

Jeff Foster is an Assistant Professor in the Department of Computer Science at the University of Maryland, College Park. He received his Ph.D. in Computer Science from the University of California, Berkeley. He is a recipient of the 2004 NSF CAREER award. Jeff's research focuses on programming languages with applications to software engineering and security. His recent research contributions include novel techniques to analyze software systems written in multiple languages; a new static analysis system for checking that network protocol implementations conform to specifications from standards documents; a type- and constraint-based system for finding data races in C programs; and the development of basic techniques for inferring type qualifiers and their application to program analysis.

Lunch provided.

<< Back