Informatics, TU Vienna

Interface-based Design

Interfaces play a central role in the modular design of systems. Good interface languages are based on two principles. First, an interface should expose enough information about a module so to make it possible to predict if two or more modules work together properly, by looking only at their interfaces.

Abstract

Interfaces play a central role in the modular design of systems. Good interface languages are based on two principles. First, an interface should expose enough information about a module so to make it possible to predict if two or more modules work together properly, by looking only at their interfaces. Second, an interface should not expose more information about a module than is required by the first principle. The technical realization of these two principles depends, of course, on the precise interpretation of what it means for two or more modules to "work together properly." A simple interpretation is offered by typed programming languages: a module that implements a function and a module that calls that function are compatible if the function definition and the function call agree on the number, order, and types of the parameters.

We present richer notions of interfaces, which expose in addition to type information, also temporal and resource information about software modules. For example, the interface of a file server with the two methods open_file and read_file may stipulate that read_file must not be called before open_file has been called. Symmetrically, then, the interface of a client must specify all possible sequences of open_file and read_file calls during its execution, so that a compiler can check if the server and the client fit together. Such behavioral interfaces can be specified naturally using an automaton-based language. We present a formalization of rich interface languages and give several applications.

Biography

Tom Henzinger is Professor of Computer and Communication Sciences at Ecoles Polytechniques fédérales (EPFL) in Lausanne, Switzerland, and Adjunct Professor of Electrical Engineering and Computer Sciences at the University of California, Berkeley. He holds a Dipl.-Ing. degree in Computer Science from Kepler University in Linz, Austria, and a Ph.D. degree in Computer Science from Stanford University (1991). He was Assistant Professor of Computer Science at Cornell University (1992-95), Assistant Professor (1996-97), Associate Professor (1997-98), and Professor (1998-2005) of Electrical Engineering and Computer Sciences at the University of California, Berkeley. He was also Director at the Max-Planck Institute for Computer Science in Saarbruecken, Germany (1999). His research focuses on modern systems theory, especially models, algorithms, and tools for the design and verification of reliable software, hardware, and embedded systems. He is an ISI highly cited researcher, a member of Academia Europaea, a member of the German Academy of Sciences (Leopoldina), a Fellow of the ACM, and a Fellow of the IEEE. In September 2009, Tom Henzinger will assume his new position as President of IST Austria.

Hinweis

Im Anschluss lädt die Fakultät für Informatik zur informellen Diskussion bei Snacks und Erfrischungen.