Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1998-12-30
2002-01-29
Chaki, Kakali (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S152000
Reexamination Certificate
active
06343373
ABSTRACT:
BACKGROUND OF THE INVENTION
The present invention relates to a translation system for translating a source program into a machine language program by using an electronic computer and more particularly to a translation system of the type mentioned above in which an object program common to a plurality of target computers or machines of different types can profitably be employed.
Systems for allowing programs described in high-level languages to be executed on the target computers or machines are generally classified into two systems respectively referred to as a compiler system and an interpreter system.
In the compiler system, a program described in a high-level language is translated into a machine language program oriented to a target computer, and the machine language program is executed straightforwardly by the target machine.
On the hand, in the case of the interpreter system, a language (referred to as the intermediate language) which differs from the machine language of the target computer is prepared along with a program (referred to as the interpreter) which is adapted to interpret and execute the intermediate language program on the target computer. In other words, the high-level language program is once translated into the intermediate language program which is then executed by the target computer or machine on which the interpreter program runs.
One of advantages of the compiler system over the interpreter system is seen in a high-speediness of program execution which can be explained by the facts mentioned below.
(1) In the interpreter system, there are required in addition to the execution of a machine language program corresponding to an intermediate language program, allocation of the processings for the intermediate language codes as well as address calculation for operands and others. On the other hand, in the compiler system, such processing allocation and address calculation are rendered unnecessary because the machine language program can directly be executed in a straightforward manner.
(2) In the compiler system, sparing or deletion of some of the processings is possible by taking into consideration the context of program and characteristics of the target computer (i.e. program optimalization can be realized). In contrast, the interpreter can only execute the intermediate language program as it is because of its universalness to the intermediate languages and thus the interpreter is not in the position to allow any processing to be spared or omitted in consideration of the program context. Besides, since the characteristics of the target computer or machine are not reflected onto the intermediate language program, it is impossible to speed up the processing by resorting to, for example, mapping of specific variables described in a high-level language to the registers incorporated in the target machine.
On the other hand, as to the usage of a program destined to be executed repetitively, there has heretofore been adopted either one of the two methods mentioned below.
(1) According to a first method, the compiler system is adopted, wherein the machine language program obtained through the translation is preserved or stored so as to be repetitively executed in a straightforward manner.
(2) According to the other method, the interpreter system is adopted, wherein the intermediate language program is stored for allowing repetitive executions thereof by the interpreter.
When one program is to be executed repetitionally, the compiler system is adopted by an overwhelming majority from the viewpoint of reduction of the time involved in execution of the program. However, the compiler system suffers from the undermentioned shortcomings.
(1) It is necessary to provide the compiler for translating a source program into a machine language program for each type of the target machine, which means that not only a quantity of compilers to be developed will necessarily increase but also overhead involved in maintenance and extension is significantly increased because the maintenance and extension must be performed so as to be compatible with the machine types of the target computers.
(2) In the case where one and the same program is to be executed by a plurality of target computers of different machine types, compilation (i.e. translation from a source program to a machine language program) is required for each of the machine types of the target computers, which results in that overhead in the management of the machine language programs increases remarkably.
(3) In an environment in which a plurality of computers of different machine types are connected to a network, a number of machine language programs which correspond to the number of the computers connected to the network are required for one and the same source program, which gives rise to problems with regards to the version management and disk space availability. Moreover, difficulty will be encountered in distributed execution of one and the same program.
(4) Some of the systems used actually is often operated with only the machine language program without any source program given. In such system, exchange or switching and alterations of the component machines is difficult to realize. At present, progress in the hardware technology facilitates implementation of highly sophisticated computer architecture. Nevertheless, inheritance of the machine language program resources imposes a serious limitation to alteration or modification of the computer architecture.
For overcoming the disadvantages of the compiler system mentioned above, such a system may be conceived in which an intermediate language program which is independent of any specific machine is employed for the purpose of preservation or storage and management of the program, wherein upon execution, the intermediate language program is translated into a machine language program of a target machine for thereby realizing a high-speed processing, i.e. a system which adopts only the advantageous features of the compiler system and the interpreter system in combination. In the present state of the art, however, there is known no real system which incarnates the concept mentioned above.
Parenthetically, for details of the compiler system and the interpreter system, reference may be made to “A. Aho, R. Seti and J. Ullman: Compilers. Principles, Techniques and Tools”, Addison-Wesly, 1986, pp. 1-24.
In order to allow a machine-independent intermediate language program (i.e. intermediate language program which is independent of any specific target machine or computer) to be adopted as a form for preservation and management of a program to be executed repeatedly, it is required that the intermediate language program can be executed at a speed comparable to that of execution of the machine language program in the existing compiler system.
To this end, fulfillment of the requirements mentioned below will be indispensable.
(1) The intermediate language program which is in the form suited for the preservation and management as described above is not executed by the interpreter but translated into a machine language program immediately before the execution.
(2) In the course of the translation or conversion of the intermediate language program into the machine language program, optimalization of the program is carried out by taking into consideration the characteristics of the target computer which is to execute that program.
With the present invention, it is contemplated to provide a consolidated or integrated system which can realize the requirements mentioned above, i.e. to provide a practical form of an intermediate language for storage and management of the intermediate language program together with a practical method of effectuating the translation of the intermediate language program into the machine language program upon start of execution of the program while optimalizing the machine language program for the target computer.
In this conjunction, it is noted that the intermediate language code designed for the interpreter system can not be used as the intermediate la
Domen Singi
Kohno Toshiaki
Koizumi Shinobu
Kyushima Ichiro
Watanabe Tan
Antonelli Terry Stout & Kraus LLP
Chaki Kakali
Hitachi , Ltd.
LandOfFree
Retargetable information process 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 Retargetable information process system, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Retargetable information process system will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2837951