An object-flow approach: a symbiosis of object-oriented design and data-flow analysis
Rajeev Ramesh Raje · 1994
This dissertation focuses on Object-flow Approach, which is a symbiosis between two powerful and diverse domains--Object Oriented Design (OOD) and Data-flow Analysis. This symbiosis is implemented with implicit parallelism analysis of existing user OO programs. Unlike the concurrent object model, object-flow relieves the user from the additional responsibilities of learning new languages and specifying parallelism explicitly. Object-flow accepts sequential OO programs and suggests the potential class-parallelism in these programs. The fundamental methods of this dissertation are new and are based on the Class Inheritance Lattice, its mathematical properties and their role in suggesting class partitions. This lattice is transformed into a Cube of Classes (CoC), which is a boolean algebra of classes. The CoC is used in the compile-time analysis of the input programs. OFFERS, a prototype developed during this research, uses the principles of object-flow, accepts an input C++ program and performs the class parallelism analysis. The class partitions thus obtained are evaluated from the perspective of performance parameters such as, inter-class communication edges, inter-class communication cost, class parallel index, number of blocks, etc. These parameters are presented to the users as a heuristic feedback giving a clear picture of the parallel behavior of their sequential programs. The feedback also serves as a pre-processing step for the run-time component of OFFERS to make intelligent scheduling decisions. In all, the object-flow makes the concurrent processing easily accessible to the common OO users.