Ptolemy II:
Heterogeneous Concurrent Modeling and Design in Java

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

Memorandum UCB/ERL M99/44,
EECS, University of California, Berkeley, CA, USA 94720
July 19, 1999

Superseded by Technical Report UCB/ERL No. M01/12, March 15, 2001 as well as
Technical Report UCB ERL No. M02/23, August 5, 2002



This document describes Ptolemy II version 0.3. It contains three parts. The first part is a user's guide, which begins with an overview of the objectives of the software, then explains how to construct applets and applications, then reviews the actor libraries, and then concludes with a tutorial on writing actors. The second part documents the software infrastructure. It is meant to complement, not replace, the code documentation. The third part documents the domains that have been written so far.

Ptolemy II supports heterogeneous modeling and design of concurrent systems. It is component technology, in that the models are built by interconnecting components. 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. Each domain implements such a set of rules.

Ptolemy II is written entirely in Java, and aims to support the construction of applets, servlets, migrating code, and embedded Java.

Send comments to Professor Edward A. Lee.