Design of a Parallel Object Oriented Programming Language
Small Business Information
Scientific Computing Associate
One Century Tower, 265 Church, Street, New Haven, CT, 65107
AbstractObject Oriented Programming (OOP) techniques are a vital part of modern software engineering. Unfortunately, on parallel computers where the need is greatest, OOP tools are lacking. We propose to address this problem by designing a parallel OOP language. Unlike other parallel OOP research efforts, we will approach parallel OOP from the viewpoint of the parallel programming environment - not the OOP language. A parallel programming language that naturally maps onto OOP is Linda(R). Linda is based on an associative virtual shared memory called tuple space. Linda coordinates multiple processes strictly in terms of memory-entities (tuples) residing within the virtual shared memory. The chief innovation of this research is to generalize tuple space into a true "object space" where "object" is consistent with the object- concept from OOP languages. This will require many novel developments, including hierarchical tuple spaces (to support inheritance) and generalized models of process abstraction in the context of active (or processing) tuples. This innovative research will have far reaching implications. By providing better tools for parallel programmers, the quality and quantity of application software for parallel computers will increase. Also important is that this research will contribute fundamentally to the understanding of parallel OOP techniques and associative memory models. Anticipated Benefits/Potential Applications - Parallel computing lacks the tools software engineers need to produce application software. The proposed parallel object oriented programming language will provide a key tool for the application programmer, thereby increasing the number of applications and utility of cost effective parallel computers for any industry that depends on high performance computing.
* information listed above is at the time of submission.