As embedded systems play an increasingly important role in our daily
life, demand for technologies that can help enhance the reliability of
such systems will continue to grow. This talk examines why
traditional high-level programming languages can be inappropriate for
such applications, and introduces the idea of resource-aware
programming (RAP) languages. The key feature of these languages is
that they have a clear underlying cost model, and that the programmer
has finer control over various interesting notions of resources. We
review two very different examples of RAP languages: Multi-stage
languages (such as MetaML and MetaOCaml), and resource-bounded
functional reactive programming (FRP) languages (such as RT-FRP and
E-FRP).
In addition to having the usual constructs of a general-purpose
language, multi-stage languages have constructs that allow fine
control over evaluation order. These constructs allow us to break
down a computation and allow us to execute various stages on various
platforms. In addition, these constructs can be also viewed as
internalizing the notions of runtime program generation and execution.
This means they also provide the programmer with the essence of
partial evaluation and program specialization techniques, both of
which have been shown to lead to dramatic resource-utilization gains
in a wide range of applications, starting from implementations of
domain-specific compilers, to high-performance operating systems.
Multi-stage languages make it possible to write generic and
highly-parameterized programs that do not pay unnecessary runtime
overheads.
More recently, Taha has been involved in the development of two
resource bounded languages called RT-FRP and E-FRP. While these
languages cannot be used to achieve the same performance gains as
multi-stage languages, they provide another important example of
resource awareness: All programs written in these languages use finite
resources. These languages have been given formal semantics, are
compiled to generate C code for an embedded system, and have been used
to program small robots developed at Yale University.
Thursday, April 11, 2002 at 4:00 p.m. Duncan Hall 1064
Reception at 3:30 p.m. in Duncan Hall 3092
About Walid Taha
Walid Taha received his Bachelors degree from Kuwait University in 1992.
He received his Doctoral degree from the Oregon Graduate Institute in
1999. After a one year post-doctoral post at Chalmers University
(Sweden), he accepted a research faculty position at Yale University
(November 2000), and has been there since then. Walid is currently
the principal investigator on an NSF ITR grant entitled "Putting
Multi-stage Annotations to Work", and is the General Chair of the
First International ACM SIGPLAN/SIGSOFT Conference on Generators and
Components (GCSE/SAIG'02).
Dr. Taha is a faculty candidate