Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1999-12-17
2001-02-13
Chaki, Kakali (Department: 2762)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C709S241000, C707S793000
Reexamination Certificate
active
06189144
ABSTRACT:
BACKGROUND OF THE INVENTION
Field of the Invention
The invention lies in the data processing field. More specifically, the invention relates to a method of controlling a data processing system for producing an object program by linking a plurality of program modules.
When an object program is produced which is formulated in a relatively high-level programming language, for example COBOL, C, C++, Fortran, and the like, it is normal, first of all, to produce individual source text modules, for example procedures and functions, which are translated independently of one another by means of a high-level language translator, also called a compiler, into the machine language. Machine language are lowest level instructions that can be directly “understood” by the computer. The program modules produced in this way are linked to an object program by means of a linker.
When one program module calls another, it is necessary to ensure that the two program modules involved in the call satisfy standard linking declarations, in order to ensure error-free parameter transfer between the calling program module and the called program module. Such linking declarations are, for example, conventions relating to register assignments, data formats etc.
During the translation process, high-level language translators for relatively high-level programming languages automatically produce a standard declaration statement of linking declarations, which is applicable to all program modules. The program developer therefore does not need to be concerned about the linking declaration.
However, the program developer needs to observe these linking declarations as soon as he wishes to link program modules to the object program which have not been produced using the specified high-level language translator, such as program modules which are formulated in an assembler language, referred to for short as assembler modules in the following text. For assembler programming, the linking declarations are programmed by the program developer himself, so that the linking declarations are inseparably included in the assembler module. Such program modules, which cannot be produced by the specified high-level language translator and are inseparably linked to a declaration statement are referred to in the following text as external program modules. The modules produced by the specified high-level language translator, on the other hand, are referred to as internal program modules.
The declaration statement for module links which, at the time when the object program is first produced, has not only been produced by the specified high-level language translator for internal program modules but has also been taken into account in an appropriate manner in external program modules, is referred to as the original declaration statement in the following text.
If the intention is to transfer the object program to a different computer system then, as a rule, it is expedient to use a new declaration statement, which is particularly well matched to the hardware of the new computer system, for module links, in order to avoid seriously adversely affecting the processing speed of the new computer system. This new declaration statement is referred to in the following text as an efficient declaration statement. The efficient declaration statement also has to be used in this case when commercially available collections of program routines for the new computer system—referred to as standard modules in the following text—are intended to be included which, as a rule, are available only for the efficient declaration statement, which is particularly well matched to the hardware. For these reasons, it is desirable to convert the linking statements for the object program to the efficient declaration statement, as far as possible.
The specified high-level language translator could optimally match the internal program modules produced to the new hardware by retranslation of all the source text modules using the efficient declaration statement. However, there would then no longer be any assurance that the internal program modules could be linked to the external program modules, which are rigidly coupled to the original declaration statement.
In order to solve this problem, a method is known in which matching routines are used in order to compensate for the mutually different linking declarations of program modules. In order to match the declaration statements for the calling program module and called program module to one another, the program developer has to produce such a matching routine for all the relevant program modules when using the known method. In this case, it is necessary to know not only the differences in the linking declarations, but also the number and type of parameters transferred during each call, since these are defined individually for each program module. The prior art method is therefore highly complex, and makes portability of the object program to a new computer system difficult.
SUMMARY OF THE INVENTION
It is accordingly an object of the invention to provide a method of controlling a data processor, which overcomes the above-mentioned disadvantages of the heretofore-known devices and methods of this general type and which makes it possible for a high-level language translator to produce the matching routines mentioned above automatically during translation of the program modules, and by means of which the matching routines are automatically linked to the object program when the individual program modules are being linked by a linker.
With the foregoing and other objects in view there is provided, in accordance with the invention, a method of controlling a data processing system for producing an object program by linking a plurality of program modules, which comprises:
naming internal program modules produced by means of a high-level language translator and subject to an efficient declaration statement of linking declarations with names selected from an internal name class;
naming external program modules subject to an original declaration statement of linking declarations with names selected from an external name class, whereby the name classes associated with the respective declaration statements are mutually exclusive;
producing a matching routine of a first type for each of the internal program modules, naming the matching routine of the first type with a name from the external name class corresponding to the name of the associated internal program module and, before calling the associated internal program module, matching with the matching routine of the first type an original declaration statement of the calling external program module to the efficient declaration statement of the internal program module to be called;
calling program modules to be called by the internal program modules with names from the internal name class;
producing a matching routine of a second type for each of the program modules to be called by the internal program modules, naming the matching routine of the second type with a name from the internal name class corresponding to the name of the associated program module, and, before jumping to an external program module, matching the efficient declaration statement with the matching routine of the second type to the original declaration statement of the external program module to be
called, whereby the matching routine of the second type is provided with a linking attribute preventing a linking thereof to an object program only when no internal program module exists with the same name; and
linking the internal program modules, the external program modules, and the required matching routines of the first type and the second type to one another to form an object program.
In the method according to the invention, internal program modules which are produced by a high-level language translator and are subject to an efficient declaration statement of linking declarations are provided with names from an internal name class. Furthermore, external program modules which are subject to an original declarati
Chaki Kakali
Fujitsu Siemens Computers GmbH
Greenberg Laurence A.
Lerner Herbert L.
Pam Tuan Q.
LandOfFree
Method of controlling a data processing system does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method of controlling a data processing system, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method of controlling a data processing system will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2570953