[Colloquium] Today's talk at TTI-C (Madhusudan Parthasarathy)
Margery Ishmael
marge at cs.uchicago.edu
Thu Mar 11 09:28:36 CST 2004
Toyota Technological Institute talk
Speaker: Madhusudan Parthasarathy
Univ. of Pennsylvania
Date: Thursday, March 11th, 2004
Time: 12:15 pm
Place: TTI-C (1427 E. 60th St.)
Refreshments provided
Title: Algorithmic Software Verification
Abstract:
The rising need for reliable systems has spurred intense research in
tools
and techniques that aid detection of errors in programs. A prominent
paradigm
is model checking: the automated formal verification of systems by
state-space
exploration. Model-checking, aided with advances in automated
abstraction,
symbolic state-space exploration and boolean satisfiability solvers, is
a
paradigm that has proven to be effective in the hardware circuits
domain.
Modular programs, when abstracted, result in boolean pushdown models
that can
be model checked against classical specification logics such as linear
temporal
logic (LTL). However, LTL cannot express many interesting properties
that are
particularly relevant for software, such as correctness of procedures
with
respect to Hoare-style pre and post conditions, security properties that
examine the call stack, etc. We introduce CARET, a temporal logic of
calls and
returns, that can express such context-free properties and show that
CARET can
be model-checked with the same effort needed for LTL.
The crucial aspect of CARET is that it ensures that specifications
express
pushdown properties only to the extent of matching calls and returns in
the
model. Using this insight, we show a surprisingly robust subclass of
context-free languages that subsumes regular languages and yet has all
the
desirable properties of regular languages that facilitate
model-checking.
In the final part of the talk, we present a new methodology for
synthesizing
interfaces for software modules. The programmer of a module (or a
class)
intends a particular usage of the class that is often not formalized.
An
interface to a class captures a formal set of rules of correct usage of
the
class. We present the tool JIST (Java Interface Synthesis Tool) that
extracts
such interfaces using predicate abstraction, two-player games and
symbolic
exploration, and illustrate the paradigm with interfaces synthesized
for some
core Java2SDK library classes.
If you have questions, or would like to meet the speaker, please
e-mail Carole
at cfkipp at tti-c.org
More information about the Colloquium
mailing list