Generative Programming: Concepts and Experience
Welcome to the Rice PLT project on

Resource Aware Programming (RAP)

Languages for embedded software



This research group explores the impact of state-of-the-art programming languages techniques such as multi-stage programming in embedded systems. Multi-stage languages already provide significant safety guarantees. For example, a program generator written in such a language not only is type-safe in the traditional sense, but we are guaranteed that any generated program will also be type safe. This provides a noteworthy degree of assurance about the quality of the generated code. But like most traditional high-level programming techniques, multi-stage programming was designed to satisfy functional requirements rather than operational ones, and existing multi-stage languages do not provide any guarantees about the behavior of programs in the presence of bounded resources. The challenge in this setting is ensuring that the generated programs are suitable for execution on an embedded platform.

Our current focus is on ways to address this problem by strengthening ``traditional'' multi-stage type systems using (mainly) foundational techniques from type theory and functional reactive programming (FRP) to create a paradigm of resource-aware multi-stage programming. Linear and alias types (in conjunction with dependent typing) will be used to ensure space-boundedness, new typing techniques are used to ensure time-boundedness, and signals and behaviors from FRP allow for a natural style of reactive programming.


  • Functional Programming for Real Applications, Invited Paper (ES’01)

Resource Aware Programming

These papers are also available in dvi and ps formats.

Related Systems


Team Members


Supported by NSF ITR "A Framework for Rapid Development of Reliable Robotics Software"