Heterogeneous Concurrent Modeling and Design in Java

Shuvra S. Bhattacharyya, Elaine Cheong, John Davis II, Mudit Goel, Christopher Hylands, Bart Kienhuis, Edward A. Lee, Jie Liu, Xiaojun Liu, Lukito Muliadi, Steve Neuendorffer, John Reekie, Neil Smyth, Jeff Tsay, Brian Vogel, Winthrop Williams, Yuhong Xiong, Haiyang Zheng

Memorandum UCB/ERL M02/23,
EECS, University of California, Berkeley, CA USA 94720
August 5, 2002



This document describes the design and implementation of Ptolemy II 2.0.1. Ptolemy II is a set of Java packages supporting heterogeneous, concurrent modeling and design. The focus is on assembly of concurrent components. The key underlying principle in the Ptolemy II is the use of well-defined models of computation that govern the interaction between components. A major problem area that is addressed is the use of heterogeneous mixtures of models of computation.

The kernel package in Ptolemy II supports clustered hierarchical graphs, which are collections of entities and relations between those entities. Its actor package extends the kernel so that entities have functionality and can communicate via the relations. Its domains extend the actor package by imposing models of computation on the interaction between entities. Examples of models of computation include discrete-event systems, dataflow, process networks, continuous-time models, synchronous/reactive systems, and communicating sequential processes. Ptolemy II includes a number of support packages, providing for example graph-theoretic manipulations, matrix and vector math and signal processing functions, visual display of data, a sophisticated type system, data encapsulation and an expression language and parser.