An Experiment in Porting a Prototype Multiple Language Change Management System to a Highly Portable Language
Miller, Brian J.S.
Modularity and reusability are two of the main principles the age of object oriented programming has brought into the forefront of computer programming. They have opened the door for the creation of many software libraries and class libraries in which programmers can use pre-coded objects in their software without having to go through the difficulties of coding them themselves. However, the sad fact is, when programmers translate or update their applications from an older language into one or more new languages, or update existing code, the reusability and modularity are often lost. Thus, the process of translating and updating can over-burden the programmer. The difficulties in maintaining an object oriented class library arise because of inherent differences between language semantics. The programmers are forced to ask whether a change should be made in only one version, selected versions, or all the versions as the library is edited and improved. In making these decisions, the programmers must take into account semantic differences, as well as benefits that may be language-specific. This task is called version-maintenance, and when it is taken into· consideration, the task often becomes too troublesome to even consider. This is the crux of the problem of maintaining multiple versions of the same class library in parallel. While it is not common practice amongst programmers, it can be useful to use a standardized definition language to describe the methods and functionality of a certain class. In what is called a service definition, programmers can asses the functionality of class library components before they attempt to program this class in multiple languages. Specifically, a service definition is an axiomatic description of the essential functions and conditions for the library. However, if service definitions are used as a viable assistant, a new problem arises, that of maintaining the associations between the service definitions and the language versions. A maintenance component that fulfills the needs of a service-definition-based system must fulfill four basic roles -- supporter, editor, displayer, and maintainer. This research describes an experiment to implement a hypertext maintenance component that supports all four roles.
iii, 36 p.
U.S. copyright laws protect this material. Commercial use or distribution of this material is not permitted without prior written