Report Number: CSL-TR-97-725
Institution: Stanford University, Computer Systems Laboratory
Title: Designing reliable programs with RAPIDE
Author: Madhav, Neel
Author: Luckham, David C.
Date: april 1997
Abstract: Rapide is a language for prototyping large, distributed
systems. Rapide allows the scale design of a system to be
constructed and analyzed before resources are applied to the
construction of the actual system.
Two important facets of designing reliable systems are (1)
system architecture -- the components in the system and the
communication paths between the componnts, and (2) system
behavior -- the requirements on the components and the
communication. Rapide facilitates the design of system
architecture and behavior by (1) providing language features
to realize system designs, (2) providing an expressive model
for capturing the execution behavior of systems, and (3)
providing techniques and tools for analyzing system execution
This paper introduces the essential concepts of Rapide and
gives an example of system design using Rapide.
Rapide has 4 sublanguages -- (1) a type language, (2) an
architecture definition language, (3) a constraint language
and (4) an executable language. The paper introduces the
Rapide architecture sublanguage and the Rapide constraint
The Rapide model of system execution is a set of significant
events partially ordered by causality (also called posets).
This paper discusses Rapide execution models and compares
them with totally ordered event based models.
Rapide provides tools to check constraints on posets to
browse posets and to animate events on a system architecture.
This paper briefly discusses the Rapide analysis tools.