Ptolemy II is named after the Ptolemy II, the Egyptian King.
Ptolemy II OverviewPtolemy II is a set of Java packages supporting heterogeneous, concurrent modeling and design. Its
kernelpackage supports clustered hierarchical graphs, which are collections of entities and relations between those entities. Its
actorpackage 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, synchronous/reactive systems, and communicating sequential processes. Ptolemy II includes a number of support packages, such as
raph, providing graph-theoretic manipulations,
math, providing matrix and vector math and signal processing functions,
plot, providing visual display of data,
data, providing a type system, data encapsulation and an expression parser, etc.
Ptolemy II Features
- Ptolemy II is implemented in Java, which allows Ptolemy II to be:
- Ptolemy II consists of software packages that can be used independently. Ptplot is the first Ptolemy II package that has been released.
- Separation of Abstract Syntax and Semantics
- In Ptolemy 0.x, we found that it was sometimes difficult to support
non-dataflow semantics such as the Synchronous/Reactive domain.
Ptolemy II defines a software kernel that consists of classes that build up a hierarchical graph. Other packages define semantics such as Process Networks and Continuous Time.
- Improved heterogeneity
- Ptolemy II improves on the Ptolemy 0.x wormhole mechanism so that combining dataflow and non-dataflow domains is easier.
- Mutatable Systems
- Ptolemy II allows the a design to be modified as it is running. Consistency is maintains through the use of monitors build upon the lower level synchronization primitives in Java.
- Software Architecture
- Ptolemy II was designed with object modeling and design patterns in mind.
Ptolemy II includes a test suite implemented in Tcl Blend the Tcl/Java interface.
- Polymorphic Type System
- Ptolemy II uses a new algorithm to determine the types of ports in a system. The algorithm uses a partial order of types and monotonic type refinement.
- User Interface
- Eventually, Ptolemy II may include a moder interface using Diva
- Improved Design Refinement
- In Ptolemy 0.x, migrating a design from simulation to code generation
is sometimes difficult because of trivial differences in the blocks
in each domain.
Ptolemy II will separate the interface definition of a block from the implementation, so that each different implementation will have a common interface.
A draft of the Ptolemy II Design Document is available.
Ptolemy 0.x and Ptolemy II compatibilityPtolemy II and Ptolemy 0.x are two very different software systems.
Ptolemy 0.x is fairly mature software in that the design is stable and mostly unchanging. The Ptolemy II software system is still in the early stages of its life cycle, so the design is changing.However, all is not lost for Ptolemy 0.x users. We are considering various compatibility issues: