Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rochester!crowl From: crowl@rochester.ARPA (Lawrence Crowl) Newsgroups: comp.lang.c++ Subject: C++ on the Butterfly Parallel Processor Message-ID: <23126@rochester.ARPA> Date: Thu, 11-Dec-86 18:03:25 EST Article-I.D.: rocheste.23126 Posted: Thu Dec 11 18:03:25 1986 Date-Received: Sat, 13-Dec-86 22:22:46 EST Reply-To: crowl@rochester.UUCP (Lawrence Crowl) Organization: U of Rochester, CS Dept, Rochester, NY Lines: 52 Chrysalis++ is a C++ programming language interface to the Chrysalis operating system of Bolt Beranek and Newman's Butterfly Parallel Processor. Butterfly Project Report 15 describes this system and is available for $2.50 in a check payable to the University of Rochester and a US mail address by writing: Rose Peet The University of Rochester Computer Science Department Rochester, New York, 14627 ABSTRACT The standard Butterfly Parallel Processor's programming environment uses the C programming language and the Chrysalis operating system. Chrysalis++ is a C++ programming language interface to Chrysalis. Chrysalis presents an object-oriented view of the facilities provided by the system. Unfortunately, this environment requires a substantial amount of detailed user code to represent, create, access, and delete the objects provided by Chrysalis. The code to perform these operations often must override C's already minimal compile-time checking. This, coupled with the Butterfly's minimal error reporting means that any errors tend to be found after much trial and error in the debug phase of program development. C++ also provides an object-oriented view, but its object management is much simpler than Chrysalis object management with C. The binding strategy for the design of Chrysalis++ was to re-cast explicit Chrysalis object management in C into the implicit object management that occurs routinely in C++. Chrysalis++ merges creation and access of Chrysalis objects into the declaration of the variable used to represent them. This strategy provides the entire Chrysalis++ programming environment with one single object management strategy. The development of Chrysalis++ highlighted some of the difficulties in mixing a single process high level language with a low level operating system. Bringing C++ and Chrysalis together demonstrated weaknesses in the C++ class mechanism and showed inconsistencies in Chrysalis object treatment. This development did provide some insights into the definitions of C++ and Chrysalis that may help in designing future systems. This report is composed of three parts. The first part gives a background for this projects and describes the resulting Chrysalis++. The second part describes the experiences in developing Chrysalis++ in porting C++ to the Butterfly and some of the weaknesses discovered in C++. Finally, the third part provides the details of Chrysalis++. This last part is intended only for actual users of Chrysalis++. -- Lawrence Crowl 716-275-5766 University of Rochester crowl@rochester.arpa Computer Science Department ...!{allegra,decvax,seismo}!rochester!crowl Rochester, New York, 14627