[comp.lang.c++] C++ on the Butterfly Parallel Processor

crowl@rochester.ARPA (Lawrence Crowl) (12/12/86)

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

bs@alice.UUCP (12/22/86)

In article <23126@rochester.ARPA>, crowl@rochester.UUCP writes:
> 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 ...

I'm beginning to find mention of C++ and C++ related work in unexpected
places. It might be an idea if we posted references to relevant work,
techniques, etc. in this newsgroup so that we don't miss all that appears
outside our most immediate horizon.

IEEE Computer Magazine, Decmber 1986 (pp 37-44):
	Gio Wiederhold:
	Views, Objects, and Databases.

IEEE Computer Grapics & Animation, December 1986 (pp 13-20):
	Eric Grant, Phil Amburn, & Turner Whitted:
	Exploiting Classes in Modeling and Display Software.