Top Up Prev Next Bottom Contents Index Search

6.2 Basic Classes

User-specifications done in Ptolemy are represented internally as a collection of annotated directed graphs that may contain cycles. Nodes in these directed graphs may themselves contain other directed graphs. An atomic node is either a Star, which defines code to implement the node operation, or a WormHole, which has an internal graph that is hidden from the outside. A WormHole is used when there is a change in the semantics between the internal and external graphs, such as a change in the Domain or Scheduler. For purposes of the outside graph, a WormHole is equivalent to a Star. A non-atomic node, or Galaxy, is a node which contains an internal graph which is visible from the outside. This internal graph is stored in a Galaxy's BlockList. Finally, a Scheduler is a class that determines the firing order of atomic nodes in a graph.

WormHoles, Galaxies and Stars are all derived from the class Block. A Block contains PortLists, which store a list of PortHoles that provide locations to connect input or output arcs to the Block. Blocks also contain StateLists, which may either be user-specified parameters or run-time states that are used when a graph is executed.

A user specification is compiled into an internal representation known as an interpreted universe (InterpUniverse). Currently, the user specifications are in the form of ptcl or oct facets. In the future there will probably be also a Tycho specification format. An InterpUniverse captures the user hierarchy in the form of a directed graph of WormHoles, Galaxies and Stars. The InterpUniverse is derived from Galaxy and contains the top-level user-specification in its BlockList. Every other level of the user specified hierarchy is represented by either a Wormhole or Galaxy embedded inside of its parent Galaxy.

All Blocks have a parent Block pointer. The parent of a Block is the Galaxy or WormHole in which the Block is embedded. The InterpUniverse, which is the top-level Galaxy user specification, has its parent pointer set to NULL.

Top Up Prev Next Bottom Contents Index Search

Copyright © 1990-1997, University of California. All rights reserved.