Joseph Buck has been responsible for key management of the development of the kernel, and hence has impacted every aspect of Ptolemy. He also coordinated many of the contributions, and wrote the BDF domain, the interpreter (
ptcl
), and the original ptlang
preprocessor. He also designed the memory allocation system used by assembly language code generation domains. Special thanks to Synopsys for allowing Joe to work on the 0.5 release after joining the company. Special thanks to Joe for his work on the 0.6 release.Other key contributors to the kernel include Soonhoi Ha and Ichiro Kuroda. Soonhoi Ha also wrote the DDF, DE, and CGC domains, including many of the basic stars and the basic domain interface, and also made extensive contributions to the CG domain, the kernel, and parallel schedulers of all types. Anindo Banerjea and Ed Knightly wrote the DE Scheduler that is based on the calendar queue mechanism developed by Randy Brown. This was based on code written by Hui Zhang. Other significant contributions to the kernel have been made by Wan-Teh Chang, Mike Chen, Paul Haskell, Asawaree Kalavade, Alireza Khazeni, Tom Parks, José Pino, and Kennard White. Mike Chen wrote the matrix classes and the matrix particles, based in part on a prototype supplied by Chris Yu (from the Naval Research Laboratories). Mike Chen also developed the MDSDF domain. Joe Buck, Asawaree Kalavade, Alan Kamas, and Alireza Khazeni wrote the fixed-point particle class. Paul Haskell created the image particle classes and developed many of the image and video signal processing demos. Philip Bitar had impact on the design of the DE domain and on the visual style used in the graphical interface. Brian Evans developed the interfaces to MATLAB and Mathematica, with help from Steve Eddins at The MathWorks and Steve Gu, respectively.
All code generation domains are based on a secondary kernel implemented as the CG domain. Its principal creators are Joe Buck, Soonhoi Ha, Tom Parks, and José Pino. Kennard White made major extensions to the ptlang preprocessor to support code generation domains.
José Pino has been primarily responsible for assembly code generation domains, and Tom Parks for the C code generation domain, although extensive contributions have been made by Joe Buck, Soonhoi Ha, Christopher Hylands, Praveen Murthy, S. Sriram, and Kennard White. Chih-Tsung Huang, with help from José Pino, ported many of the assembly code generation stars from Gabriel. Many people had contributed to the Gabriel stars, including Jeff Bier, Martha Fratt, Wai Ho, Steve How, Phil Lapsley, Maureen O'Reilly, and Anthony Wong. Brian Evans and Luis Gutierrez have enhanced the Motorola 56000 stars, demonstrations, and targets, and S. Sriram has done the same for the Motorola 96000 stars. Patrick Warner wrote the C code generation target for the Network Of Workstations distributed operating system by Prof. Patterson's group at U.C. Berkeley.
Shuvra Bhattacharyya and Joe Buck wrote the loop scheduling mechanism, and Bhattacharyya contributed the Gantt chart display tool. The parallel schedulers were written by Gilbert Sih and Soonhoi Ha, with significant contributions from Joe Buck, Tom Parks, José Pino, and Kennard White. Praveen Murthy wrote the Sproc domain, used to generate parallel assembly code for the Sproc multiprocessor DSP, and Kennard White wrote the CM-5 target, used to generate parallel code for the connection machine from Thinking Machines, Inc.
Seungjun Lee and Tom Parks wrote the CP domain. Mike Williamson wrote the VHDL domains. Ichiro Kuroda from NEC contributed to the state handling mechanism.
The graphical user interface was written by Edwin Goei, based on the
vem
program, written by David Harrison and Rick Spickelmier. It has been extensively modified by Alan Kamas who has been responsible for the incorporation of Tcl/Tk into Ptolemy. The GUI has been enhanced by Wan-Teh Chang, Wei-Jen Huang, Mario Silva and Kennard White. Andrea Cassotto and Bill Bush have provided modifications and improvements to vem
.Christopher Hylands, Edward Lee, and John Reekie are the primary architects of the Tycho interface [Hyl97]. Tycho, named after the astronomer Tycho Brahe, is written in [Incr Tcl], an object-oriented extension of Tcl by Michael J. McLennan at AT&T Bell Labs. Significant development of Tycho has been contributed by Kevin Chang, Joel King, and Cliff Cordiero. Wan-Teh Chang and Bilung Lee have developed graphical editors for finite state machines. Code by Joseph Buck, Alan Kamas, and Douglas Niehaus originally written for pigi have been reused in the Tycho kernel. Some contributions to Tycho were made by Brian Evans.
Several people have had a major impact on the development of Ptolemy through their major efforts on its predecessor, Gabriel. Phil Lapsley has had incalculable impact on the directory structure, project management, documentation, and code generation efforts in Ptolemy. The first version of the graphical interface was written by Holly Heine.
1.14.2 Support
The Ptolemy project is currently supported by the Defense Advanced Research Projects Agency (DARPA), the State of California MICRO program, and the following companies: The Alta Group of Cadence Design Systems, Dolby Laboratories, Hewlett Packard, Hitachi, Hughes Space and Communications, LG Electronics, Lockheed Martin ATL, NEC, Philips, Rockwell, and the Semiconductor Research Corporation.1.14.3 Prior software
At every opportunity, we have built upon prior software, much of which we have been permitted to redistribute together with our Ptolemy distribution. We wish to gratefully acknowledge the following contributions:
oct
tools, written by the CAD group at U.C. Berkeley, under the direction of Prof. Richard Newton, provide both the design database oct
[Har86] and the graphical editor vem
[Har86] for oct
. The flexibility of oct
, which makes minimal assumptions about the data stored in the database, and the extensibility of vem
, through its rpc
interface, have allowed us to use this software in ways unexpected by the authors.
ptcl
, and the graphics toolkit Tk [Ous94] is the basis for interactive graphics. Tcl serves a scripting language to control Ptolemy runs, and as an interpreter to compute parameters. Since Tcl is a scripting language, casual users have been able to extend Ptolemy's interface. Tcl is robust and lightweight.