pigi(Ptolemy interactive graphical interface). The first process contains the
vemuser interface and the
octdesign database [Har86], and the other process contains the Ptolemy kernel. An alternative is to run Ptolemy without the graphical user interface, as a single process, as shown in figure 1-1(b). In this case, the textual interpreter is based on the Tool Command Language, Tcl [Ous90][Ous94], and is called call
ptclfor Ptolemy Tcl. It is possible to design other user interfaces for the system. We are releasing a preliminary version of a third interface called Tycho. In its current form, Tycho is best suited for language-sensitive editing and consoles for tools such as Matlab and Mathematica.
The executable programs
ptcl can be configured to include any subset of the available domains. The most recent picture of the domains that Berkeley has developed is shown in figure
The Ptolemy kernel provides the most extensive support for domains where a design is represented as a network of blocks, as shown in figure 1-3
Block, represents an object in this network. Base classes are also provided for interconnecting blocks (
PortHole) as well as for carrying data between blocks (
Geodesic) and managing garbage collection efficiently (
Plasma). Not all domains use these classes, but most current ones do, and hence can very effectively use this infrastructure.
1-3 shows some of the representative methods defined in these base classes. For example, note the initialize, run, and wrapup methods in the class
Block. These provide an interface to whatever functionality the block provides, representing for example functions performed before, during, and after (respectively) the execution of the system.
Blocks can be hierarchical, as shown in figure 1-4.
Star. A hierarchical block is a
Galaxy, and a top-level system representation is a