Walid M. Taha William Marsh Rice University

SoD: Synthiszizing Device Drivers

The goal of this project is develop a framework for designing software-intensive systems based on recent work on multi-stage programming languages. Our thesis is that the concept of staging, originally developed to support program optimization, is a fundamental technique in the emerging science of design of software-intensive systems. We believe that many software-intensive systems can be designed more effectively using a linguistic framework that reflects the staging distinctions separating high-level software designs from their implementations on particular platforms.

In earlier work, we helped develop the conceptual foundations of multi-stage programming including the construction of core calculi and type systems that support staging and the development of a realistic language incorporating staging called MetaOCaml. In this project, we intend to show how staging can be used to improve the process of designing software in industry where the phase distinction between program designs and deployed implementations is acute. We will focus on the design of device drivers because the deployed code for controlling a device varies greatly depending on the vagaries of the device interface and the hardware platform to which it is attached. In this context, we must extend staging techniques to handle event-driven computation, concurrency, and strict limitations on resources.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
0439017
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
2004-12-15
Budget End
2010-11-30
Support Year
Fiscal Year
2004
Total Cost
$604,218
Indirect Cost
Name
Rice University
Department
Type
DUNS #
City
Houston
State
TX
Country
United States
Zip Code
77005