Page 2 out of 24 total pages


Contents

Part 1: Using Ptolemy

1. Introduction

1.1. Modeling and Design
1.2. Architecture Design
1.3. Models of Computation
1.3.1. Communicating Sequential Processes - CSP
1.3.2. Continuous Time - CT
1.3.3. Discrete-Events - DE
1.3.4. Distributed Discrete Events - DDE
1.3.5. Discrete Time - DT
1.3.6. Finite-State Machines - FSM
1.3.7. Process Networks - PN
1.3.8. Synchronous Dataflow - SDF
1.3.9. Synchronous/Reactive - SR
1.4. Choosing Models of Computation
1.5. Visual Syntaxes
1.6. Ptolemy II
1.6.1. Package Structure
1.6.2. Overview of Key Classes
1.6.3. Domains
1.6.4. Capabilities
1.6.5. Future Capabilities
Appendix: UML -- Unified Modeling Language
Package Diagrams
Static Structure Diagrams
Appendix: Ptolemy II Naming Conventions
Classes
Members
Methods

2. Building Models

2.1. Introduction
2.2. Applets
2.2.1. HTML Files Containing Applets
2.2.2. Creating Models
2.2.3. Compiling
2.2.4. Reporting Errors
2.2.5. Graphical Elements
2.2.6. Controlling Execution Time
2.2.7. Controlling Model Parameters
2.2.8. Adding Custom Actors
2.2.9. Using Jar Files
2.2.10. Script for Creating Demo Applets
2.2.11. Hints for Developing Applets
Appendix: Inspection Paradox Example
Description of the Problem
Observations
Code Listing

3. Actor Libraries

3.1. Overview
3.2. Library Organization
3.2.1. Actor.Lib
3.2.2. Actor.GUI
3.3. Data Polymorphism
3.4. Domain Polymorphism
3.4.1. Iterations
3.4.2. Domains with Fixed Point Semantics
3.4.3. Actors with State
3.5. Descriptions of Libraries
3.5.1. Functional Actors
3.5.2. Polymorphic Sources
3.5.3. Polymorphic Sinks and Displays
3.5.4. Expression Actor
3.5.5. Other Actors

4. Designing Actors

4.1. Overview
4.2. Anatomy of an Actor
4.2.1. Ports
4.2.2. Parameters
4.2.3. Constructors
4.2.4. Cloning
4.3. Action Methods
4.3.1. Initialize
4.3.2. Prefire
4.3.3. Fire
4.3.4. Postfire
4.3.5. Wrapup
4.4. Time
4.5. Code Format
4.5.1. Indentation
4.5.2. Spaces
4.5.3. Comments
4.5.4. Names
4.5.5. Exceptions
4.5.6. Javadoc
4.5.7. Code Organization

Part 2: Software

5. The Kernel

5.1. Abstract Syntax
5.2. Non-Hierarchical Topologies
5.2.1. Links
5.2.2. Consistency
5.3. Support Classes
5.3.1. Containers
5.3.2. Name and Full Name
5.3.3. Workspace
5.3.4. Attributes
5.3.5. List Classes
5.4. Clustered Graphs
5.4.1. Abstraction
5.4.2. Level-Crossing Connections
5.4.3. Tunneling Entities
5.4.4. Description
5.4.5. Cloning
5.4.6. An Elaborate Example
5.5. Opaque Composite Entities
5.6. Concurrency
5.6.1. Limitations of Monitors
5.6.2. Read and Write Access Permissions for Workspace
5.6.3. Making a Workspace Read Only
5.7. Mutations
5.7.1. Change Requests
5.7.2. Managers and Listeners
5.8. Exceptions
5.8.1. Base Class
5.8.2. Less Severe Exceptions
5.8.3. More Severe Exceptions

6. Actor Package

6.1. Concurrent Computation
6.2. Message Passing
6.2.1. Data Transport
6.2.2. Example
6.2.3. Transparent Ports
6.2.4. Data Transfer in Various Models of Computation
6.2.5. Discussion of the Data Transfer Mechanism
6.3. Execution
6.3.1. Director
6.3.2. Manager
6.3.3. ExecutionListener
6.3.4. Mutations
6.3.5. Opaque Composite Actors
6.3.6. Scheduler and Process Support

7. Data Package

7.1. Introduction
7.2. Data Encapsulation
7.3. Polymorphism
7.3.1. Polymorphic Arithmetic Operators
7.3.2. Lossless Type Conversion
7.3.3. Limitations
7.4. Variables and Parameters
7.4.1. Values
7.4.2. Types
7.4.3. Dependencies
7.5. Expressions
7.5.1. The Ptolemy II Expression Language
7.5.2. Functions
7.5.3. Limitations
Appendix: Expression Evaluation
Generating the parse tree
Evaluating the parse tree

8. Graph Package

8.1. Introduction
8.2. Classes and Interfaces in the Graph Package
8.2.1. Graph
8.2.2. Directed Graphs
8.2.3. Directed Acyclic Graphs and CPO
8.2.4. Inequality Terms, Inequalities, and the Inequality Solver
8.3. Example Use
8.3.1. Generating A Schedule for A Composite Actor
8.3.2. Forming and Solving Constraints over a CPO

9. Type System

9.1. Introduction
9.2. Formulation
9.2.1. Type Constraints
9.2.2. Run-time Type Checking and Lossless Type Conversion
9.3. Implementation Classes
9.3.1. Static Type Checking and Type Resolution
9.3.2. Run-time Type Checking and Type Conversion
9.4. Examples
9.4.1. Polymorphic Downsampler
9.4.2. Fork Connection
9.4.3. A Sampler System
Appendix: The Type Resolution Algorithm

10. Plot Package

10.1. Overview
10.2. User Interface
10.3. File Format
10.3.1. Commands Configuring the Axes
10.3.2. Commands for Plotting Data
10.4. Exporting
10.5. Limitations

Part 3:

11. CT Domain

11.1. Introduction
11.1.1. Basic Terminology
11.1.2. Time
11.1.3. Fixed-Point Behavior
11.1.4. Discontinuity
11.2. System Specification
11.2.1. An Example
11.3. CT Actors
11.3.1. Integrator and ODE Solvers
11.3.2. Actor Library
11.3.3. Domain Polymorphic Actors
11.4. CT Directors
11.4.1. CT Director Parameters
11.4.2. CTSingleSolverDirector
11.4.3. CTMultiSolverDirector
11.4.4. CTMixedSignalDirector
11.4.5. CTEmbeddedDirector
11.5. CT Domain Demos
11.5.1. Lorenz System
11.5.2. Micro Accelerator with Digital Feedback.
11.5.3. Thermostat System
11.6. Implementations
11.7. Technical Details
11.7.1. Scheduling
11.7.2. Controlling Step Sizes
11.7.3. Interaction with other domains
Appendix: Brief Mathematical Background

12. DE Domain

12.1. Introduction
12.1.1. Model Time
12.1.2. Iteration
12.1.3. Getting a Model Started
12.1.4. Stopping Execution
12.2. Overview of The Software Architecture
12.3. The DE Actor Library
12.4. Mutations
12.5. Writing DE Actors
12.5.1. General Guidelines
12.5.2. Simultaneous Events
12.5.3. Examples
12.5.4. Thread Actors
12.6. Composing DE with Other Domains
12.6.1. DE inside Another Domain
12.6.2. Another Domain inside DE

13. SDF Domain

13.1. Overview
13.1.1. Properties
13.1.2. Scheduling
13.2. Kernel
13.2.1. SDF Director
13.2.2. Scheduling
13.2.3. SDF ports and receivers
13.2.4. ArrayFIFOQueue
13.2.5. SDFAtomicActor

14. CSP Domain

14.1. Introduction
14.2. CSP Communication Semantics
14.2.1. Atomic Communication: Rendezvous
14.2.2. Choice: Nondeterministic Rendezvous
14.2.3. Deadlock
14.2.4. Time
14.2.5. Differences from Original CSP Model as Proposed by Hoare
14.3. Example CSP Applications
14.3.1. Dining Philosophers
14.3.2. Hardware Bus Contention
14.3.3. Sieve of Eratosthenes
14.3.4. An M/M/1 Queue
14.4. Building CSP Applications
14.4.1. Rendezvous
14.4.2. Conditional Communication Constructs
14.4.3. Time
14.5. The CSP Software Architecture
14.5.1. Class Structure
14.5.2. Starting the model
14.5.3. Detecting deadlocks:
14.5.4. Terminating the model
14.5.5. Pausing/Resuming the Model
14.6. Technical Details
14.6.1. Brief Introduction to Threads in Java
14.6.2. Rendezvous Algorithm
14.6.3. Conditional Communication Algorithm
14.6.4. Modification of Rendezvous Algorithm

15. DDE Domain

15.1. Introduction
15.2. DDE Semantics
15.2.1. Enabling Communication: Advancing Time
15.2.2. Maintaining Communication: Null Tokens
15.2.3. Alternative Distributed Discrete Event Methods
15.3. Example DDE Applications
15.4. Building DDE Applications
15.4.1. DDEActor
15.4.2. DDEIOPort
15.4.3. Feedback Topologies
15.5. The DDE Software Architecture
15.5.1. Local Time Management
15.5.2. Detecting Deadlock
15.5.3. Ending Execution
15.6. Technical Details
15.6.1. Synchronization Hierarchy

16. PN Domain

16.1. Introduction
16.2. Process Network Semantics
16.2.1. Asynchronous Communication
16.2.2. Bounded Memory Execution
16.2.3. Time
16.2.4. Mutations
16.3. The PN Software Architecture
16.3.1. PN Domain
16.3.2. The Execution Sequence
16.3.3. Detecting deadlocks:
16.3.4. Terminating the model:
16.3.5. Mutations of a Graph
16.4. Technical Details
16.4.1. Mutual Exclusion using Monitors
16.4.2. Hierarchy of Locks
16.4.3. Undetected Deadlocks

References

Glossary

Index




Page 2 out of 24 total pages


ptII at eecs berkeley edu Copyright © 1998-1999, The Regents of the University of California. All rights reserved.