Heterogeneous Concurrent Modeling and Design in Java

by J. Davis, R. Galicia, M. Goel, C. Hylands, E.A. Lee,
J. Liu, X. Liu, L. Muliadi, S. Neuendorffer, J. Reekie
N. Smyth, J. Tsay and Y. Xiong

Memorandum UCB/ERL M98/72,
EECS, University of California, Berkeley, CA, USA 94720
November 23 1998
(Superseded by "Overview of the Ptolemy Project," UCB-ERL No. M99/40, July 19, 1999.)



The Ptolemy project studies heterogeneous modeling and design of concurrent systems. The focus is on embedded systems, particularly those that mix technologies, including for example analog and digital electronics, hardware and software, and electronics and mechanical devices (including MEMS, microelectromechanical systems). The focus is also on systems that are complex in the sense that they mix widely different operations, such as signal processing, feedback control, sequential decision making, and user interfaces.

Executable models are constructed under a model of computation, which is the set of "laws of physics" that govern the interaction of components in the model. If the model is describing a mechanical system, then the model of computation may literally be the laws of physics. More commonly, however, it is a set of rules that are more abstract, and provide a framework within which a designer builds models. A set of rules that govern the interaction of components is called the semantics of the model of computation.

Ptolemy II is third-generation software that supports this style of modeling and design. The objective is to support the construction and interoperability of executable models that are built under a wide variety of models of computation. Ptolemy II is written entirely in Java, and aims to support the construction of applets, servlets, migrating code, and embedded Java.

This document is an evolving design document for Ptolemy II. It describes the design principles and design decisions. It is meant to complement, not replace, the code documentation.

Send comments to Edward A. Lee at eal at eecs berkeley edu .