JP4805594B2 - Program development management device - Google Patents
Program development management device Download PDFInfo
- Publication number
- JP4805594B2 JP4805594B2 JP2005097081A JP2005097081A JP4805594B2 JP 4805594 B2 JP4805594 B2 JP 4805594B2 JP 2005097081 A JP2005097081 A JP 2005097081A JP 2005097081 A JP2005097081 A JP 2005097081A JP 4805594 B2 JP4805594 B2 JP 4805594B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- program
- tuning
- generation
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、プログラムファイルを管理するプログラム開発管理装置に関し、特に、プログラミング言語で作成されたプログラムファイルを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイルを生成する場合で、各世代のプログラムファイルを管理するプログラム開発管理装置に関する。 The present invention relates to a program development management apparatus for managing program files, and in particular, by converting a program file created in a programming language one or more times, the generation of a machine language program file is advanced step by step. The present invention relates to a program development management apparatus that manages each generation of program files when it is generated.
現在、高級言語で作成されたソースプログラムは、コンパイルやアセンブル等を経てオブジェクトプログラムに変換され、ターゲットプログラムとして実際に使用されている。さらに、実際に使用可能なターゲットプログラムを開発するため、様々な工夫がなされている。 At present, a source program created in a high-level language is converted into an object program through compilation, assembly, etc., and is actually used as a target program. Furthermore, various ideas have been made to develop a target program that can actually be used.
例えば、プログラム開発者の負担を軽減させたターゲットプログラム開発方法として、ソースプログラムに対してコンパイルやアセンブル等を実行する過程における中間表現を有するオブジェクトプログラムを生成する方法が存在している。この方法では、この中間表現を使用することで、オブジェクトプログラムを最適化し、ターゲットプログラムを生成している(例えば、特許文献1参照)。 For example, as a target program development method that reduces the burden on the program developer, there is a method of generating an object program having an intermediate expression in the process of compiling and assembling a source program. In this method, by using this intermediate representation, an object program is optimized and a target program is generated (see, for example, Patent Document 1).
また、効率的なターゲットプログラム開発方法として、高級言語プログラムが正確にアセンブルされたことの確認について、自動で確認できる方法が存在している(例えば、特許文献2参照)。 As an efficient target program development method, there is a method that can automatically confirm that a high-level language program has been assembled correctly (see, for example, Patent Document 2).
また、所定のプログラムを記憶するプロジェクトの内容を解析するための情報を格納するメイクファイルを用意し、そのメイクファイルの内容を解析する方法が存在している(例えば、特許文献3参照)。
しかし、特許文献1によって開示された技術では、ソースプログラムから段階的に生成される各世代のプログラムにおいて、オブジェクトプログラムに対してのみ最適化が実行される。
However, in the technique disclosed in
また、特許文献2によって開示された技術では、ソースプログラムとなる高級言語プログラムから段階的に生成される各世代のプログラムにおいて、ソースプログラムに対してのみ最適化が実行される。 In the technique disclosed in Patent Document 2, optimization is performed only on the source program in each generation of programs generated in stages from the high-level language program serving as the source program.
また、特許文献3によって開示された技術では、ソースプログラムから段階的に生成される各世代のプログラムにおいて、所定の世代のプログラムに対してのみ最適化が実行される。 In the technique disclosed in Patent Document 3, optimization is performed only on a predetermined generation of programs in each generation of programs generated in stages from a source program.
本発明は、このような点に鑑みてなされたものであり、ソースプログラムから段階的に生成される各世代のプログラムを意識せずにターゲットプログラムの最適化を実行できるプログラム開発管理装置を提供することを目的とする。 The present invention has been made in view of the above points, and provides a program development management apparatus capable of executing optimization of a target program without being aware of each generation of programs generated in stages from a source program. For the purpose.
本発明では、上記課題を解決するために、図1に例示するように、プログラミング言語で作成されたプログラムファイル、例えば、ソースファイル1aa、及び、アセンブルファイル1baを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイル、例えば、オブジェクトファイル1caを生成する場合で、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caを管理するプログラム開発管理装置において、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caのファイル名の中で、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶するファイル名記憶手段1と、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caを編集するプログラムファイル編集手段2と、プログラムファイルが編集された場合、編集されたプログラムファイルの祖先の世代のプログラムファイルのファイル名を、ファイル名記憶手段1から削除するファイル名管理手段3と、を有することを特徴とするプログラム開発管理装置が提供される。 In the present invention, in order to solve the above-described problem, as illustrated in FIG. 1, a program file created in a programming language, for example, a source file 1aa and an assembly file 1ba are converted one or more times, In a program development management device that manages a source file 1aa, an assemble file 1ba, and an object file 1ca when a machine language program file, for example, an object file 1ca is generated by advancing the generation of programming languages, Among the file names of 1aa, assemble file 1ba, and object file 1ca, file name storage means 1 for storing the file name of the program file that is the source of the latest target program, and source file 1aa Assemble file 1ba, and, as the program file editing means 2 to edit the object file 1ca, if the program file is edited, the file name of the program file of generations of ancestors of the edited program file, the file name storage means 1 And a file name management means 3 to be deleted from the program development management apparatus.
このようなプログラム開発管理装置によると、ファイル名記憶手段1により、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caのファイル名の中で、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名が記憶される。そのプログラムファイルは、プログラムファイル編集手段2によって編集される。プログラムファイルが編集された場合、ファイル名管理手段3により、編集されたプログラムファイルの祖先の世代のプログラムファイルのファイル名が、ファイル名記憶手段1から削除される。
According to such a program development management device, the file
また、本発明では、上記課題を解決するために、図1に例示するように、プログラミング言語で作成されたプログラムファイル、例えば、ソースファイル1aa、及び、アセンブルファイル1baを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイル、例えば、オブジェクトファイル1caを生成する場合で、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caを管理するプログラム開発管理装置において、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caに対する編集と変換とによって生成された、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caのファイル名を記憶するファイル名記憶手段1と、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caを編集するプログラムファイル編集手段2と、プログラムファイルが編集された場合、編集されたプログラムファイルのファイル名に、フラグを設定するファイル名管理手段3と、を有し、プログラムファイル編集手段2は、フラグが設定されたプログラムファイル、及び、フラグが設定されたプログラムファイルから生成された各世代のプログラムファイルを編集することを特徴とするプログラム開発管理装置が提供される。 Further, in the present invention, in order to solve the above problem, as illustrated in FIG. 1, by converting a program file created in a programming language, for example, a source file 1aa and an assembly file 1ba at least once. In the program development management apparatus for managing the source file 1aa, the assemble file 1ba, and the object file 1ca in the case of generating a program file in machine language, for example, an object file 1ca, by gradually progressing the generation of the programming language, Stores the file names of the source file 1aa, the assemble file 1ba, and the object file 1ca generated by editing and converting the source file 1aa, the assemble file 1ba, and the object file 1ca. That the file name storage means 1, the source file 1aa, assemble file 1ba, and a program file editing means 2 for editing the object file 1ca, if the program file is edited, the file name of the edited program file, the file name managing means 3 for setting a flag, have a program file editing means 2 editing flag set program file, and each generation of the program file flag is generated from the set program file A program development management device is provided.
このようなプログラム開発管理装置によると、ファイル名記憶手段1により、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caに対する編集と変換とによって生成された、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caのファイル名が記憶される。そのプログラムファイルは、プログラムファイル編集手段2によって編集される。プログラムファイルが編集された場合、ファイル名管理手段3により、編集されたプログラムファイルのファイル名に、フラグが設定される。プログラムファイル編集手段2により、フラグが設定されたプログラムファイル、及び、フラグが設定されたプログラムファイルから生成された各世代のプログラムファイルが編集される。
According to such a program development management device, the source file 1aa, the assemble file 1ba, and the source file 1aa, the assemble file 1ba, and the object file 1ca, which are generated by the file name storage means 1, by editing and conversion. The file name of the object file 1ca is stored. The program file is edited by the program file editing means 2. If the program file has been edited, the file name managing unit 3, the file name of the edited program file, flag is set. The program file editing means 2 edits the program file in which the flag is set and each generation of program files generated from the program file in which the flag is set.
本発明では、ファイル名記憶手段が、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶し、ファイル名管理手段が、編集されたプログラムファイルの祖先の世代のプログラムファイルのファイル名を、ファイル名記憶手段から削除するようにする。 In the present invention, the file name storage means stores the file name of the program file that is the generation source of the latest target program, and the file name management means stores the file name of the program file of the ancestor generation of the edited program file. Then, it is deleted from the file name storage means.
このようにすると、編集すべきプログラムファイルが個別に管理されて特定されるので、ソースファイルから段階的に生成される各世代のプログラムファイルを意識せずにターゲットプログラムの最適化を実行できる。 In this way, since the program file to be edited is individually managed and specified, optimization of the target program can be executed without being aware of each generation of program files generated in stages from the source file.
また、本発明では、ファイル名記憶手段が、複数の世代のプログラムファイルのファイル名を記憶し、ファイル名管理手段が、編集されたプログラムファイルのファイル名に、フラグを設定するようにする。 In the present invention, the file name storage means stores the file names of a plurality of generations of program files, and the file name management means sets a flag to the file names of the edited program files.
このようにすると、編集すべきプログラムファイルが個別に管理されて特定されるので、ソースファイルから段階的に生成される各世代のプログラムファイルを意識せずにターゲットプログラムの最適化を実行できる。 In this way, since the program file to be edited is individually managed and specified, optimization of the target program can be executed without being aware of each generation of program files generated in stages from the source file.
以下、本発明の実施の形態を、図面を参照して説明する。ここで、まず、本発明の概念について説明し、その後、具体的な本発明の実施の形態について説明する。
まず、本発明の概念について説明する。図1は、本発明の概念図である。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. Here, the concept of the present invention will be described first, and then specific embodiments of the present invention will be described.
First, the concept of the present invention will be described. FIG. 1 is a conceptual diagram of the present invention.
ここで、プログラム開発管理装置は、プログラミング言語で作成されたプログラムファイル、例えば、ソースファイル1aa、及び、アセンブルファイル1baを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイル、例えば、オブジェクトファイル1caを生成し、ターゲットプログラムを生成している。また、プログラム開発管理装置は、ターゲットプログラムをチューニングする場合、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caの中で、どのプログラムファイルがチューニング対象のプログラムファイルであるかを管理している。 Here, the program development management device advances the generation of the programming language step by step by converting the program file created in the programming language, for example, the source file 1aa and the assembly file 1ba at least once. Program file, for example, an object file 1ca is generated to generate a target program. Further, when tuning the target program, the program development management device manages which program file is the program file to be tuned among the source file 1aa, the assemble file 1ba, and the object file 1ca.
なお、ソースファイル1aaをコンパイルすることでアセンブルファイル1baが生成され、アセンブルファイル1baをアセンブルすることでオブジェクトファイル1caが生成され、ターゲットプログラムが生成されるとする。また、ソースファイル名1a、アセンブルファイル名1b、及び、オブジェクトファイル名1cは、それぞれソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caの名称であるとする。
Assume that an assembly file 1ba is generated by compiling the source file 1aa, an object file 1ca is generated by assembling the assembly file 1ba, and a target program is generated. The
プログラム開発管理装置は、図1に例示するように、ファイル名記憶手段1、プログラムファイル編集手段2、ファイル名管理手段3、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caを有する。また、ファイル名記憶手段1は、ソースファイル名1a、アセンブルファイル名1b、及び、オブジェクトファイル名1cの中で、チューニング対象のプログラムファイルのファイル名のみを記憶する。ファイル名記憶手段1、プログラムファイル編集手段2、及び、ファイル名管理手段3は、互いに通信する。
As illustrated in FIG. 1, the program development management apparatus includes a file
ファイル名記憶手段1は、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caのファイル名の中で、最新のターゲットプログラムの生成元であってチューニング対象のプログラムファイルのファイル名のみを記憶する。 The file name storage means 1 stores only the file name of the program file to be tuned, which is the source of the latest target program among the file names of the source file 1aa, the assemble file 1ba, and the object file 1ca.
プログラムファイル編集手段2は、ソースファイル1aa、アセンブルファイル1ba、及び、オブジェクトファイル1caを編集する。
ファイル名管理手段3は、プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集されたプログラムファイルの祖先の世代のプログラムファイルのファイル名を、ファイル名記憶手段1から削除する。
The program file editing means 2 edits the source file 1aa, the assemble file 1ba, and the object file 1ca.
When the program file is edited and applied as the latest program file, the file name management unit 3 deletes the file name of the ancestor generation of the edited program file from the file
次に、図1の概念図の動作について説明する。
例えば、まず、最新のターゲットプログラムの生成元は、ソースファイル1aaとなっているとする。よって、ファイル名記憶手段1には、ソースファイル名1aのみが記憶されているとする。
Next, the operation of the conceptual diagram of FIG. 1 will be described.
For example, first, assume that the source of the latest target program is the source file 1aa. Therefore, it is assumed that only the
その後、ターゲットプログラムを最適化するため、プログラムファイル編集手段2により、アセンブルファイル1baが編集される。その編集されたアセンブルファイル1baの祖先の世代のソースファイル1aaのファイル名が、ファイル名管理手段3により、ファイル名記憶手段1から削除される。ここで、チューニング対象のプログラムファイルはソースファイル1aaからアセンブルファイル1baに変更しているので、ファイル名記憶手段1により、チューニング対象のアセンブルファイル1baのファイル名が記憶される。 Thereafter, the assembly file 1ba is edited by the program file editing means 2 in order to optimize the target program. The file name of the source file 1aa of the ancestor generation of the edited assemble file 1ba is deleted from the file name storage means 1 by the file name management means 3. Here, since the program file to be tuned has been changed from the source file 1aa to the assemble file 1ba, the file name storage means 1 stores the file name of the assemble file 1ba to be tuned.
また、ターゲットプログラムを最適化するため、プログラムファイル編集手段2により、ソースファイル1aaが編集される。ここで、編集されたソースファイル1aaの祖先の世代のプログラムファイルは存在しないため、ファイル名管理手段3により、ファイル名記憶手段1は編集されない。 Further, the source file 1aa is edited by the program file editing means 2 in order to optimize the target program. Here, since there is no program file of the ancestor generation of the edited source file 1aa, the file name storage means 1 is not edited by the file name management means 3.
このようにすると、編集すべきプログラムファイルが個別に管理されて特定されるので、ソースファイル1aaから段階的に生成される各世代のプログラムファイルを意識せずにターゲットプログラムの最適化を実行できる。 In this way, since the program file to be edited is individually managed and specified, optimization of the target program can be executed without being aware of each generation of program files generated in stages from the source file 1aa.
また、編集すべきプログラムファイル、及び、そのプログラムファイルから生成された複数の世代のプログラムファイルを自由に編集できるので、ターゲットプログラムに対する自由度の高い編集ができる。 Further, since the program file to be edited and the program files of a plurality of generations generated from the program file can be freely edited, editing with a high degree of freedom for the target program can be performed.
なお、ソースファイル1aaからアセンブルファイル1baを生成し、アセンブルファイル1baからオブジェクトファイル1caを生成しているが、ソースファイル1aaから生成されないアセンブルファイル1baからオブジェクトファイル1caを生成してもよい。 The assemble file 1ba is generated from the source file 1aa and the object file 1ca is generated from the assemble file 1ba. However, the object file 1ca may be generated from the assemble file 1ba that is not generated from the source file 1aa.
以下、具体的な本発明の実施の形態について説明する。ここで、第1の実施の形態から第2の実施の形態まで順次説明する。
{第1の実施の形態}
まず、第1の実施の形態について説明する。図2は、第1の実施の形態のシステム構成図である。
Hereinafter, specific embodiments of the present invention will be described. Here, the first embodiment to the second embodiment will be sequentially described.
{First embodiment}
First, the first embodiment will be described. FIG. 2 is a system configuration diagram of the first embodiment.
ここで、プログラム開発管理装置は、プログラミング言語で作成されたプログラムファイル、例えば、ソースファイル11a、及び、アセンブルファイル11bを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイル、例えば、オブジェクトファイル11cを生成し、ターゲットプログラムを生成している。また、プログラム開発管理装置は、ターゲットプログラムをチューニングする場合、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cの中で、どのプログラムファイルがチューニング対象のプログラムファイルであるかを管理している。
Here, the program development management device advances the generation of the programming language step by step by converting the program file created in the programming language, for example, the
なお、ソースファイル11aをコンパイルすることでアセンブルファイル11bが生成され、アセンブルファイル11bをアセンブルすることでオブジェクトファイル11cが生成され、ターゲットプログラムが生成されるとする。また、ソースファイル名18a、アセンブルファイル名18b、及び、オブジェクトファイル名18cは、それぞれソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cの名称であるとする。
Assume that an
プログラム開発管理装置は、ファイル管理部11、オプション管理部12、ビルド部13、デバッグ部14、性能情報データベース15、チューニング部16、フィードバック部17、及び、ファイル名記憶部18から構成される。ファイル管理部11、オプション管理部12、ビルド部13、デバッグ部14、性能情報データベース15、チューニング情報データベース15a、チューニング部16、フィードバック部17、及び、ファイル名記憶部18は、互いに通信する。
The program development management apparatus includes a
ファイル管理部11は、各世代のプログラムファイルとしてのソースファイル11a、アセンブルファイル11b、オブジェクトファイル11cを管理する。
オプション管理部12は、コンパイル、アセンブル、逆コンパイル、及び、逆アセンブル等の設定を管理する。その設定に基づいたビルド部13は、プログラミング言語で作成されたプログラムファイル、例えば、ソースファイル11a、及び、アセンブルファイル11bを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイル、例えば、オブジェクトファイル11cを生成する。
The
The
デバッグ部14は、生成されたターゲットプログラムをデバッグする。そのデバッグ結果について、性能情報データベース15は、ターゲットプログラムの性能情報として記憶する。このターゲットプログラムの性能情報、つまり、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cに対する性能情報に基づき、チューニング部16は、プログラム開発者にとって理解しやすいチューニング情報を生成し、チューニング情報データベース15aに記憶させる。その後、チューニング部16は、チューニング情報に基づき、それぞれに対するチューニングデータを生成する。また、チューニング部16は、各チューニングデータに基づき、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cをチューニングする。ここで、性能情報、及び、チューニングデータは、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11c毎に分類される。
The
フィードバック部17は、プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集されたプログラムファイルの祖先の世代のプログラムファイルのファイル名を、ファイル名記憶部18から削除する。その結果として、ファイル名記憶部18は、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cのファイル名の中で、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶する。
When the program file is edited and applied as the latest program file, the
なお、チューニングは、手動で実行されてもよいし、予めチューニング条件を設定して自動で実行されてもよい。
次に、図2のシステム構成図の動作について説明する。
Note that the tuning may be executed manually or may be automatically executed by setting tuning conditions in advance.
Next, the operation of the system configuration diagram of FIG. 2 will be described.
例えば、まず、最新のターゲットプログラムの生成元は、ソースファイル11aとなっているとする。よって、ファイル名記憶部18には、ソースファイル名18aのみが記憶されているとする。
For example, first, assume that the source of the latest target program is the
その後、ターゲットプログラムを最適化するため、チューニング部16により、アセンブルファイル11bがチューニングされる。そのチューニングされたアセンブルファイル11bの祖先の世代のソースファイル11aのファイル名が、フィードバック部17により、ファイル名記憶部18から削除される。ここで、チューニング対象のプログラムファイルはソースファイル11aからアセンブルファイル11bに変更しているので、ファイル名記憶部18により、チューニング対象のアセンブルファイル11bのファイル名が記憶される。
Thereafter, the
また、ターゲットプログラムを最適化するため、チューニング部16により、ソースファイル11aがチューニングされる。ここで、チューニングされたソースファイル11aの祖先の世代のプログラムファイルは存在しないため、フィードバック部17により、ファイル名記憶部18は編集されない。
Further, the
次に、ファイル名記憶部18の記憶内容について説明する。図3は、第1の実施の形態におけるファイル名記憶部の記憶内容の変化例を示す図である。
まず、図3(A)に例示するように、ファイル名記憶部18に、7つのファイル名が記憶されている。具体的には、ファイル名記憶部18に、ソースファイル名18aとして”a.c”、”b.c”、及び、”c.c”が記憶され、アセンブルファイル名18bとして”d.s”、及び、”e.s”が記憶され、オブジェクトファイル名18cとして”f.o”、及び、”g.o”が記憶されている。
Next, the contents stored in the file
First, as illustrated in FIG. 3A, seven file names are stored in the file
その後、図3(B)に例示するように、”c.c”がアセンブルされて生成された”c.s”がチューニングされ、ファイル名記憶部18において、”c.c”が削除されて最新のターゲットプログラムの生成元となる”c.s”が記憶される。
Thereafter, as illustrated in FIG. 3B, “c.s” generated by assembling “c.c” is tuned, and “c.c” is deleted in the file
次に、性能情報データベース15について説明する。図4は、性能情報データベースの例を示す図である。
性能情報データベース15は、図4に例示するように、アドレス、命令名、関数名、Taken数、Not_Taken数、及び、Taken率を有する。性能情報データベース15において、横方向に並べられた各項目は、互いに関連する。
Next, the
As illustrated in FIG. 4, the
アドレスは、アセンブルファイル11bから生成されたオブジェクトファイル11cにおける命令の番地である。命令名は、ソースファイル11aから生成されたアセンブルファイル11bにおける命令の名称である。関数名は、ソースファイル11aにおける命令の名称である。Taken数は、分岐命令の分岐予測の的中失敗回数である。Not_Taken数は、分岐命令の分岐予測の的中成功回数である。Taken率は、分岐命令の分岐予測の的中成功確率である。
The address is an address of an instruction in the
次に、チューニング情報データベース15aについて説明する。図5は、チューニング情報データベースの例を示す図である。
チューニング情報データベース15aは、図5に例示するように、ファイル種別、及び、チューニング情報を有する。チューニング情報データベース15aにおいて、横方向に並べられた各項目は、互いに関連する。
Next, the tuning
The tuning
ファイル種別は、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cのいずれかを示す。チューニング情報は、各世代のプログラムファイルに対するチューニング情報である。例えば、ソースファイル11aに対するチューニング情報は、File.cの12行目のif節のTaken率が87%という情報である。また、アセンブルファイル11bに対するチューニング情報は、File.sの84行目のBne分岐命令のTaken率が87%という情報である。また、オブジェクトファイル11cに対するチューニング情報は、File.oの0x1234番地の0x56命令(Bne分岐命令)のTaken率が87%という情報である。
The file type indicates one of a
次に、データキャッシュのチューニングデータの例について説明する。図6は、データキャッシュのチューニングデータの例を示す図である。
データキャッシュのチューニングデータ41は、図6に例示するように、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cに対するチューニング前のデータ、チューニング後のデータ、及び、チューニング条件を有する。
Next, an example of data cache tuning data will be described. FIG. 6 is a diagram illustrating an example of data cache tuning data.
As illustrated in FIG. 6, the data cache tuning data 41 includes pre-tuning data, post-tuning data, and tuning conditions for the
ここで、チューニング内容は、ソースファイル11a、及び、オブジェクトファイル11cによっては表現できず、アセンブルファイル11bによっては表現できるようになっている。自動でチューニングする場合、データキャッシュのミスが80%以上というチューニング条件が満たされると、事前データロード命令が追加されるようになっている。その後、アセンブルファイル11bをチューニングするので、ファイル名記憶部18は、アセンブルファイル11bのファイル名を記憶する。
Here, the tuning content cannot be expressed by the
次に、分岐のチューニングデータの例について説明する。図7は、分岐のチューニングデータの例を示す図である。
分岐のチューニングデータ42は、図7に例示するように、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cに対するチューニング前のデータ、チューニング後のデータ、及び、チューニング条件を有する。
Next, an example of branch tuning data will be described. FIG. 7 is a diagram showing an example of branch tuning data.
As illustrated in FIG. 7, the
ここで、チューニング内容は、ソースファイル11a、オブジェクトファイル11c、及び、アセンブルファイル11bによって表現できるようになっている。自動でチューニングする場合、if節またはelse節の実行頻度が80%以上というチューニング条件が満たされると、ソースファイル11aの場合"#pragma statement if 87"が追加され、アセンブルファイル11bの場合ヒントビットについて”00”から”11”に変更され、オブジェクトファイル11cの場合ヒントビットについて”00”から”11”に変更されるようになっている。その後、ファイル名記憶部18は、それぞれチューニングを実行したプログラムファイルのファイル名を記憶する。
Here, the tuning content can be expressed by a
なお、ヒントビットは分岐予測機能としてハードウェアに実装され、"#pragma statement if 87"での表現はコンパイルできるとしている。
次に、第1の実施の形態のプログラム開発管理装置の処理について説明する。図8は、第1の実施の形態のプログラム開発管理装置の処理の例を示すフローチャートである。
Note that the hint bit is implemented in hardware as a branch prediction function, and the expression "#pragma statement if 87" can be compiled.
Next, processing of the program development management device according to the first embodiment will be described. FIG. 8 is a flowchart illustrating an example of processing of the program development management device according to the first embodiment.
{ステップS11}ファイル管理部11は、各世代のプログラムファイルとしてのソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cの管理を開始する。
{Step S11} The
{ステップS12}ファイル名記憶部18は、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶する。
{ステップS13}ビルド部13は、プログラミング言語で作成されたプログラムファイル、例えば、ソースファイル11a、及び、アセンブルファイル11bを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイル、例えば、オブジェクトファイル11cを生成する。
{Step S12} The file
{Step S13} The
{ステップS14}チューニング部16は、各世代のプログラムファイルとしてのソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cに対する性能情報を取得する。
{Step S14} The
{ステップS15}チューニング部16は、それぞれに対するチューニングデータを生成する。
{ステップS16}チューニング部16は、チューニングするか否かを判断する。チューニングする場合、処理はステップS17に進み、チューニングしない場合、処理は終了する。
{Step S15} The
{Step S16} The
{ステップS17}チューニング部16は、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cをチューニングする。
{ステップS18}フィードバック部17は、プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集されたプログラムファイルの祖先の世代のプログラムファイルのファイル名を、ファイル名記憶部18から削除する。
{Step S17} The
{Step S18} When the program file is edited and applied as the latest program file, the
次に、チューニングデータの生成処理について説明する。図9は、チューニングデータの生成処理の例を示すフローチャートである。
{ステップS15a}チューニング部16は、ソースファイル11a、アセンブルファイル11b、及び、オブジェクトファイル11cに対する性能情報に基づき、チューニング情報を生成する。
Next, tuning data generation processing will be described. FIG. 9 is a flowchart illustrating an example of a tuning data generation process.
{Step S15a} The
{ステップS15b}チューニング部16は、チューニング情報が生成されたか否かを判断する。生成された場合、処理はステップS15cに進み、生成されなかった場合、処理は終了する。
{Step S15b} The
{ステップS15c}チューニング部16は、チューニング内容をソースファイル11aで表現できるか否かを判断する。表現できる場合、処理はステップS15dに進み、表現できない場合、処理はステップS15eに進む。
{Step S15c} The
{ステップS15d}チューニング部16は、ソースファイル11aに対するチューニングデータを生成する。
{ステップS15e}チューニング部16は、チューニング内容をアセンブルファイル11bで表現できるか否かを判断する。表現できる場合、処理はステップS15fに進み、表現できない場合、処理はステップS15gに進む。
{Step S15d} The
{Step S15e} The
{ステップS15f}チューニング部16は、アセンブルファイル11bに対するチューニングデータを生成する。
{ステップS15g}チューニング部16は、チューニング内容をオブジェクトファイル11cで表現できるか否かを判断する。表現できる場合、処理はステップS15hに進み、表現できない場合、処理は終了する。
{Step S15f} The
{Step S15g} The
{ステップS15h}チューニング部16は、オブジェクトファイル11cに対するチューニングデータを生成する。
{ステップS15i}チューニング部16は、それぞれに対するチューニングデータを記憶する。
{Step S15h} The
{Step S15i} The
次に、チューニング処理について説明する。図10は、チューニング処理の例を示すフローチャートである。
{ステップS17a}チューニング部16は、ソースファイル11aをチューニングするか否かを判断する。チューニングする場合、処理はステップS17bに進み、チューニングしない場合、処理はステップS17cに進む。
Next, the tuning process will be described. FIG. 10 is a flowchart illustrating an example of tuning processing.
{Step S17a} The
{ステップS17b}チューニング部16は、性能情報、または、チューニング情報に基づき、ソースファイル11aをチューニングする。
{ステップS17c}チューニング部16は、アセンブルファイル11bをチューニングするか否かを判断する。チューニングする場合、処理はステップS17dに進み、チューニングしない場合、処理はステップS17eに進む。
{Step S17b} The
{Step S17c} The
{ステップS17d}チューニング部16は、性能情報、または、チューニング情報に基づき、アセンブルファイル11bをチューニングする。
{ステップS17e}チューニング部16は、性能情報、または、チューニング情報に基づき、オブジェクトファイル11cをチューニングする。
{Step S17d} The
{Step S17e} The
次に、記憶処理について説明する。図11は、記憶処理の例を示すフローチャートである。
{ステップS18a}フィードバック部17は、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名が記憶済みか否かを判断する。記憶済みである場合、処理は終了し、記憶済みでない場合、処理はステップS18bに進む。
Next, the storage process will be described. FIG. 11 is a flowchart illustrating an example of the storage process.
{Step S18a} The
{ステップS18b}フィードバック部17は、編集されたプログラムファイルの祖先の世代のプログラムファイルのファイル名を、ファイル名記憶部18から削除する。
{ステップS18c}ファイル名記憶部18は、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶する。
{Step S18b} The
{Step S18c} The file
このようにすると、チューニングすべきプログラムファイルが個別に管理されて特定されるので、ソースファイル11aから段階的に生成される各世代のプログラムファイルを意識せずにターゲットプログラムの最適化を実行できる。
In this way, since the program file to be tuned is individually managed and specified, the target program can be optimized without being aware of each generation of program files that are generated in stages from the
また、チューニングすべきプログラムファイル、及び、そのプログラムファイルから生成された複数の世代のプログラムファイルを自由にチューニングできるので、最も効果の高いプログラムファイルを選択でき、ターゲットプログラムに対する自由度の高いチューニングができる。 In addition, since the program file to be tuned and the multiple generation program files generated from the program file can be freely tuned, the most effective program file can be selected and the target program can be tuned with a high degree of freedom. .
なお、ソースファイル11aからアセンブルファイル11bを生成し、アセンブルファイル11bからオブジェクトファイル11cを生成しているが、ソースファイル11aから生成されないアセンブルファイル11bからオブジェクトファイル11cを生成してもよい。
The assemble
また、プログラム開発者にとって理解しやすいチューニング情報を使用しないでチューニングすることもできる。
{第2の実施の形態}
次に、第2の実施の形態について説明する。図12は、第2の実施の形態のシステム構成図である。
It is also possible to tune without using tuning information that is easy for program developers to understand.
{Second Embodiment}
Next, a second embodiment will be described. FIG. 12 is a system configuration diagram of the second embodiment.
ここで、プログラム開発管理装置は、プログラミング言語で作成されたプログラムファイル、例えば、ソースファイル21a、及び、アセンブルファイル21bを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイル、例えば、オブジェクトファイル21cを生成し、ターゲットプログラムを生成している。また、プログラム開発管理装置は、ターゲットプログラムをチューニングする場合、ソースファイル21a、アセンブルファイル21b、及び、オブジェクトファイル21cの中で、どのプログラムファイルがチューニング対象のプログラムファイルであるかを管理している。
Here, the program development management apparatus advances the generation of the programming language step by step by converting the program file created in the programming language, for example, the
なお、ソースファイル21aをコンパイルすることでアセンブルファイル21bが生成され、アセンブルファイル21bをアセンブルすることでオブジェクトファイル21cが生成され、ターゲットプログラムが生成されるとする。また、ソースファイル名29a、アセンブルファイル名29b、及び、オブジェクトファイル名29cは、それぞれソースファイル21a、アセンブルファイル21b、及び、オブジェクトファイル21cの名称であるとする。
Assume that an
プログラム開発管理装置は、ファイル管理部21、オプション管理部22、ビルド部23、デバッグ部24、性能情報データベース25、チューニング情報データベース25a、チューニング部26、ビルド対象フラグ設定部28、及び、ファイル名記憶部29から構成される。ファイル管理部21、オプション管理部22、ビルド部23、デバッグ部24、性能情報データベース25、チューニング部26、ビルド対象フラグ設定部28、及び、ファイル名記憶部29は、互いに通信する。
The program development management apparatus includes a
ファイル管理部21は、各世代のプログラムファイルとしてのソースファイル21a、アセンブルファイル21b、オブジェクトファイル21cを管理する。
オプション管理部22は、コンパイル、アセンブル、逆コンパイル、及び、逆アセンブル等の設定を管理する。その設定と後述するビルド対象フラグとに基づいたビルド部23は、プログラミング言語で作成されたプログラムファイル、例えば、ソースファイル21a、及び、アセンブルファイル21bを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイル、例えば、オブジェクトファイル21cを生成する。
The
The
デバッグ部24は、生成されたターゲットプログラムをデバッグする。そのデバッグ結果について、性能情報データベース25は、ターゲットプログラムの性能情報として記憶する。このターゲットプログラムの性能情報、つまり、ソースファイル21a、アセンブルファイル21b、及び、オブジェクトファイル21cに対する性能情報に基づき、チューニング部26は、プログラム開発者にとって理解しやすいチューニング情報を生成し、チューニング情報データベース25aに記憶させる。その後、チューニング部26は、チューニング情報に基づき、それぞれに対するチューニングデータを生成する。また、チューニング部26は、各チューニングデータに基づき、ソースファイル21a、アセンブルファイル21b、オブジェクトファイル21cをチューニングする。ここで、性能情報、及び、チューニングデータは、ソースファイル21a、アセンブルファイル21b、及び、オブジェクトファイル21c毎に分類される。
The
ビルド対象フラグ設定部28は、プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集されたプログラムファイルのファイル名に、ビルド対象フラグを設定する。その結果として、ファイル名記憶部29は、ビルド対象フラグが設定された最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶する。また、ファイル名記憶部29は、プログラムファイルに対する編集と変換とによって生成された、ソースファイル21a、アセンブルファイル21b、及び、オブジェクトファイル21cのファイル名を記憶する。
When the program file is edited and applied as the latest program file, the build target
なお、チューニングは、手動で実行されてもよいし、予めチューニング条件を設定して自動で実行されてもよい。
また、ビルド対象フラグは、プログラム開発者が手動で設定してもよいし、予め条件を設定して自動で設定してもよい。
Note that the tuning may be executed manually or may be automatically executed by setting tuning conditions in advance.
The build target flag may be set manually by the program developer, or may be set automatically by setting conditions in advance.
次に、図12のシステム構成図の動作について説明する。
例えば、まず、最新のターゲットプログラムの生成元は、ソースファイル21aとなっているとする。よって、ソースファイル名29aにビルド対象フラグが設定されているとする。また、ファイル名記憶部29には、ソースファイル名29a、アセンブルファイル名29b、及び、オブジェクトファイル名29cが記憶されているとする。
Next, the operation of the system configuration diagram of FIG. 12 will be described.
For example, first, assume that the source of the latest target program is the
その後、ターゲットプログラムを最適化するため、チューニング部26により、アセンブルファイル21bがチューニングされる。そのチューニングされたアセンブルファイル21bのファイル名に、ビルド対象フラグ設定部28により、ビルド対象フラグが設定される。ここで、チューニング対象のプログラムファイルはソースファイル21aからアセンブルファイル21bに変更している。
Thereafter, the
また、ターゲットプログラムを最適化するため、チューニング部26により、ソースファイル21aがチューニングされる。そのチューニングされたソースファイル21aのファイル名に、ビルド対象フラグはすでに設定されているので、ビルド対象フラグは編集されない。
Further, the
次に、ファイル名記憶部29の記憶内容について説明する。図13は、第2の実施の形態におけるファイル名記憶部の記憶内容の変化例を示す図である。
まず、図13(A)に例示するように、ファイル名記憶部29に、7つのファイル名が記憶されている。具体的には、ファイル名記憶部29に、ソースファイル名29aとして”a.c”、”b.c”、及び、”c.c”が記憶され、アセンブルファイル名29bとして”d.s”、及び、”e.s”が記憶され、オブジェクトファイル名29cとして”f.o”、及び、”g.o”が記憶されている。
Next, the contents stored in the file
First, as illustrated in FIG. 13A, seven file names are stored in the file
その後、図13(B)に例示するように、”a.c”、”b.c”、”c.c”、”d.s”、及び、”e.s”がビルドされ、最新のターゲットプログラムの生成元となる”a.c”、”b.c”、”c.c”、”d.s”、及び、”e.s”に”%”が設定される。 After that, as illustrated in FIG. 13B, “ac”, “bc”, “cc”, “ds”, and “es” are built, and the latest “%” Is set in “ac”, “bc”, “cc”, “ds”, and “es”, which are the generation sources of the target program.
次に、第2の実施の形態のプログラム開発管理装置の処理について説明する。図14は、第2の実施の形態のプログラム開発管理装置の処理の例を示すフローチャートである。
{ステップS21}ファイル管理部21は、各世代のプログラムファイルとしてのソースファイル21a、アセンブルファイル21b、及び、オブジェクトファイル21cの管理を開始する。
Next, processing of the program development management device according to the second embodiment will be described. FIG. 14 is a flowchart illustrating an example of processing of the program development management device according to the second embodiment.
{Step S21} The
{ステップS22}ファイル名記憶部29は、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶する。
{ステップS23}ビルド部23は、自動でビルド対象フラグを認識する。
{Step S22} The file
{Step S23} The
{ステップS24}ビルド部23は、プログラミング言語で作成されたプログラムファイル、例えば、ソースファイル21a、及び、アセンブルファイル21bを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイル、例えば、オブジェクトファイル21cを生成する。
{Step S24} The
{ステップS25}ファイル名記憶部29は、プログラムファイルに対する編集と変換とによって生成された、ソースファイル21a、アセンブルファイル21b、及び、オブジェクトファイル21cのファイル名を自動で記憶する。
{Step S25} The file
{ステップS26}チューニング部26は、各世代のプログラムファイルとしてのソースファイル21a、アセンブルファイル21b、及び、オブジェクトファイル21cに対する性能情報を取得する。
{Step S26} The
{ステップS27}チューニング部26は、それぞれに対するチューニングデータを生成する。
{ステップS28}チューニング部26は、チューニングするか否かを判断する。チューニングする場合、処理はステップS29に進み、チューニングしない場合、処理は終了する。
{Step S27} The
{Step S28} The
{ステップS29}チューニング部26は、ソースファイル21a、アセンブルファイル21b、及び、オブジェクトファイル21cをチューニングする。
{ステップS30}ビルド対象フラグ設定部28は、プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集されたプログラムファイルのファイル名に、ビルド対象フラグを設定する。
{Step S29} The
{Step S30} When the program file is edited and applied as the latest program file, the build target
ここで、ステップS27の処理とステップS29の処理とは、それぞれ第1の実施の形態におけるステップS15の処理とステップS17の処理と同様である。
なお、あるプログラムファイルに対して実行されたチューニング内容と同様のチューニング内容を、他の世代のプログラムファイルに対して実行できる。
Here, the process of step S27 and the process of step S29 are respectively the same as the process of step S15 and the process of step S17 in the first embodiment.
Note that the same tuning content as that executed for a certain program file can be executed for other generations of program files.
このようにすると、ビルド対象フラグによってチューニングすべきプログラムファイルが個別に管理されて特定されるので、ソースファイル21aから段階的に生成される各世代のプログラムファイルを意識せずにターゲットプログラムの最適化を実行できる。
In this way, the program file to be tuned is individually managed and specified by the build target flag, so that the target program can be optimized without being aware of each generation of the program file generated in stages from the
また、ビルド対象フラグが設定されたチューニングすべきプログラムファイル、及び、そのプログラムファイルから生成された複数の世代のプログラムファイルを自由にチューニングできるので、最も効果の高いプログラムファイルを選択でき、ターゲットプログラムに対する自由度の高いチューニングができる。 In addition, since it is possible to freely tune the program file to be tuned with the build target flag set and the multiple generation program files generated from the program file, the most effective program file can be selected, and the target program can be selected. Tuning with a high degree of freedom is possible.
なお、ソースファイル21aからアセンブルファイル21bを生成し、アセンブルファイル21bからオブジェクトファイル21cを生成しているが、ソースファイル21aから生成されないアセンブルファイル21bからオブジェクトファイル21cを生成してもよい。
The assemble
また、プログラム開発者にとって理解しやすいチューニング情報を使用しないでチューニングすることもできる。
また、第2の実施の形態のプログラム開発管理装置は、あるプログラムファイルに対して実行されたチューニング内容と同様のチューニング内容を、他の世代のプログラムファイルに対して実行できる。この場合のファイル名記憶部29の記憶内容について説明する。図15は、第2の実施の形態におけるファイル名記憶部の記憶内容の他の変化例を示す図である。
It is also possible to tune without using tuning information that is easy for program developers to understand.
In addition, the program development management apparatus according to the second embodiment can execute the same tuning content as the tuning content executed for a certain program file for a program file of another generation. The contents stored in the file
まず、図15(A)に例示するように、ファイル名記憶部29に、図13(B)に例示された記憶内容と同様の記憶内容が記憶され、チューニングされた”%a.c”、及び、”%g.o”に”*”が設定されている。
First, as illustrated in FIG. 15A, the file
その後、図15(B)に例示するように、”%a.c*”、及び、”%g.o*”に対して実行されたチューニング内容と同様のチューニング内容が、他の世代のプログラムファイルに対して実行され、”%a.c*”に対して”a.s*”、及び、”a.o*”が生成され、”%g.o*”に対して”g.s*”が生成される。 After that, as illustrated in FIG. 15B, the same tuning contents as those executed for “% a.c *” and “% g.o *” are stored in programs of other generations. The file is executed, and “a.s *” and “a.o *” are generated for “% a.c *”, and “g.s” is generated for “% g.o *”. * ”Is generated.
ここで、あるプログラムファイルに対して実行されたチューニング内容と同様のチューニング内容を、他の世代のプログラムファイルに対して実行する場合において、コンパイル、アセンブル、逆コンパイル、及び、逆アセンブル等によって実行した場合、”*”が設定されないでファイル名記憶部29に記憶される。また、C言語中にアセンブル言語を部分的に挿入する等の細かくて冗長部分のないチューニングを実行して成功した場合、”*”が設定されてファイル名記憶部29に記憶される。また、細かくて冗長部分のないチューニングを実行して失敗した場合、非ビルド対象フラグ等が設定されてファイル名記憶部29に記憶され、または、ファイル名記憶部29に記憶されない。なお、”a.s*”、及び、”a.s”を両方記憶してもよいし、”a.s*”のみを記憶してもよい。
Here, the same tuning content as that executed for a certain program file is executed by compiling, assembling, decompiling, disassembling, etc., when executing for other generations of program files. In this case, “*” is not set and stored in the file
このようにすると、全ての”*”が設定されている世代のプログラムファイルは同様の論理なので、”*”が設定されている世代のプログラムファイルをチューニング対象にできる。 In this way, all generations of program files with “*” set have the same logic, and therefore, generations of program files with “*” set can be targeted for tuning.
なお、あるプログラムファイルに対して実行されたチューニング内容と同様のチューニング内容を、他の世代のプログラムファイルに対して実行する場合、手動で実行してもよいし、予め条件を設定して自動で実行してもよい。 In addition, when executing tuning contents similar to the tuning contents executed for a program file for other generations of program files, it may be executed manually or automatically by setting conditions in advance. May be executed.
また、上記の処理機能は、コンピュータによって実現することができる。その場合、プログラム開発管理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記の処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータ読み取り可能な記録媒体に記録できる。コンピュータ読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、及び、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD:Hard Disk Drive)、フレキシブルディスク(FD)、及び、磁気テープ等がある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、及び、CD−R(Recordable)/RW(ReWritable)等がある。光磁気記録媒体には、MO(Magneto-Optical disk)等がある。 Further, the above processing functions can be realized by a computer. In that case, a program describing the processing contents of the functions that the program development management apparatus should have is provided. By executing the program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium. Examples of the computer-readable recording medium include a magnetic recording device, an optical disc, a magneto-optical recording medium, and a semiconductor memory. Examples of the magnetic recording device include a hard disk drive (HDD), a flexible disk (FD), and a magnetic tape. Optical discs include DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like. Magneto-optical recording media include MO (Magneto-Optical disk).
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送できる。 When distributing the program, for example, a portable recording medium such as a DVD or a CD-ROM in which the program is recorded is sold. Further, the program can be stored in a storage device of the server computer, and the program can be transferred from the server computer to another computer via the network.
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行できる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行できる。 The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can read the program directly from the portable recording medium and execute processing according to the program. Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.
次に、コンピュータとしてのプログラム開発管理装置のハードウェア構成について説明する。図16は、コンピュータのハードウェア構成の例を示す図である。
コンピュータ300は、CPU(Central Processing Unit)301によって装置全体が制御されている。CPU301には、バス307を介してRAM302、ハードディスクドライブ303、グラフィック処理装置304、入力インタフェース305、及び、通信インタフェース306が接続されている。
Next, the hardware configuration of the program development management apparatus as a computer will be described. FIG. 16 is a diagram illustrating an example of a hardware configuration of a computer.
The entire computer 300 is controlled by a CPU (Central Processing Unit) 301. A
RAM302には、CPU301に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM302には、CPU301による処理に必要な各種データが格納される。HDD303には、OSやアプリケーションプログラムが格納される。
The
グラフィック処理装置304には、モニタ310が接続される。また、グラフィック処理装置304は、CPU301からの命令に従って、画像をモニタ310の画面に表示させる。入力インタフェース305には、キーボード320とマウス330とが接続されている。また、入力インタフェース305は、キーボード320やマウス330から送られてくる信号を、バス307を介してCPU301に送信する。
A monitor 310 is connected to the
通信インタフェース306は、ネットワーク340に接続される。通信インタフェース306は、ネットワーク340を介して、他のコンピュータとの間でデータの送受信を実行する。
The
以上のようなハードウェア構成によって、本発明の実施の形態の処理機能を実現することができる。
(付記1) プログラミング言語で作成されたプログラムファイルを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイルを生成する場合で、各世代のプログラムファイルを管理するプログラム開発管理装置において、
複数の世代のプログラムファイルのファイル名の中で、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶するファイル名記憶手段と、
前記各プログラムファイルを編集するプログラムファイル編集手段と、
前記プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集された前記プログラムファイルの祖先の世代のプログラムファイルのファイル名を、前記ファイル名記憶手段から削除するファイル名管理手段と、
を有することを特徴とするプログラム開発管理装置。
With the hardware configuration described above, the processing functions of the embodiment of the present invention can be realized.
(Supplementary note 1) When a program file created in a programming language is converted one or more times to generate a machine language program file by progressively generating a programming language generation, each generation of program files is managed. In the program development management device,
File name storage means for storing the file name of the program file that is the generation source of the latest target program among the file names of the multiple generation program files;
Program file editing means for editing each program file,
When the program file is edited and applied as the latest program file, the file name management means for deleting the file name of the ancestor generation of the edited program file from the file name storage means,
A program development management device comprising:
(付記2) 前記プログラムファイル編集手段は、前記最新のターゲットプログラムの生成元となるプログラムファイル、及び、前記プログラムファイルから生成された各世代のプログラムファイルを編集することを特徴とする付記1記載のプログラム開発管理装置。
(Additional remark 2) The said program file edit means edits the program file used as the production | generation source of the said latest target program, and the program file of each generation produced | generated from the said program file, The
(付記3) コンピュータにより、プログラミング言語で作成されたプログラムファイルを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイルを生成する場合で、各世代のプログラムファイルを管理するプログラム開発管理方法において、
ファイル名記憶手段が、複数の世代のプログラムファイルのファイル名の中で、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶するステップと、
プログラムファイル編集手段が、前記各プログラムファイルを編集するステップと、
ファイル名管理手段が、前記プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集された前記プログラムファイルの祖先の世代のプログラムファイルのファイル名を、前記ファイル名記憶手段から削除するステップと、
を含むことを特徴とするプログラム開発管理方法。
(Supplementary note 3) When a program file created in a programming language is converted one or more times by a computer to generate a machine language program file by stepping up the generation of the programming language, the program file for each generation In the program development management method for managing
A step of storing a file name of a program file, which is a generation source of the latest target program, among file names of a plurality of generations of program files;
A program file editing means for editing each program file;
A step of deleting a file name of a program file of an ancestor generation of the edited program file from the file name storage means when the program file is edited and applied as the latest program file; When,
A program development management method comprising:
(付記4) プログラミング言語で作成されたプログラムファイルを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイルを生成する場合で、各世代のプログラムファイルを管理するプログラム開発管理プログラムにおいて、
コンピュータに、
ファイル名記憶手段が、複数の世代のプログラムファイルのファイル名の中で、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶するステップと、
プログラムファイル編集手段が、前記各プログラムファイルを編集するステップと、
ファイル名管理手段が、前記プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集された前記プログラムファイルの祖先の世代のプログラムファイルのファイル名を、前記ファイル名記憶手段から削除するステップと、
を含む処理を実行させることを特徴とするプログラム開発管理プログラム。
(Supplementary note 4) When a program file created in a programming language is converted one or more times, the generation of a machine language is generated by stepping up the generation of the programming language step by step, and the program file of each generation is managed In the program development management program,
On the computer,
A step of storing a file name of a program file, which is a generation source of the latest target program, among file names of a plurality of generations of program files;
A program file editing means for editing each program file;
A step of deleting a file name of a program file of an ancestor generation of the edited program file from the file name storage means when the program file is edited and applied as the latest program file; When,
A program development management program characterized by causing a process including
(付記5) プログラミング言語で作成されたプログラムファイルを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイルを生成する場合で、各世代のプログラムファイルを管理するプログラム開発管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータに、
ファイル名記憶手段が、複数の世代のプログラムファイルのファイル名の中で、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶するステップと、
プログラムファイル編集手段が、前記各プログラムファイルを編集するステップと、
ファイル名管理手段が、前記プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集された前記プログラムファイルの祖先の世代のプログラムファイルのファイル名を、前記ファイル名記憶手段から削除するステップと、
を含む処理を実行させることを特徴とするプログラム開発管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
(Supplementary note 5) When a program file created in a programming language is converted one or more times to generate a machine language program file by stepping up the generation of the programming language, the program file of each generation is managed. In a computer-readable recording medium recording a program development management program,
On the computer,
A step of storing a file name of a program file, which is a generation source of the latest target program, among file names of a plurality of generations of program files;
A program file editing means for editing each program file;
A step of deleting a file name of a program file of an ancestor generation of the edited program file from the file name storage means when the program file is edited and applied as the latest program file; When,
The computer-readable recording medium which recorded the program development management program characterized by performing the process containing these.
(付記6) プログラミング言語で作成されたプログラムファイルを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイルを生成する場合で、各世代のプログラムファイルを管理するプログラム開発管理装置において、
プログラムファイルに対する編集と変換とによって生成された、複数の世代のプログラムファイルのファイル名を記憶するファイル名記憶手段と、
前記各プログラムファイルを編集するプログラムファイル編集手段と、
前記プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集された前記プログラムファイルのファイル名に、フラグを設定するファイル名管理手段と、
を有することを特徴とするプログラム開発管理装置。
(Supplementary note 6) When a program file created in a programming language is converted one or more times, a generation of machine language program files is generated in stages, and program files for each generation are managed. In the program development management device,
File name storage means for storing file names of a plurality of generations of program files generated by editing and converting the program file;
Program file editing means for editing each program file,
When the program file is edited and applied as the latest program file, file name management means for setting a flag to the file name of the edited program file;
A program development management device comprising:
(付記7) 前記プログラムファイルに対して実行された編集内容と同様の編集内容を、他の世代のプログラムファイルに対して実行する編集反映手段をさらに有することを特徴とする付記6記載のプログラム開発管理装置。 (Additional remark 7) The program development of Additional remark 6 which further has an edit reflection means to perform the edit content similar to the edit content performed with respect to the said program file with respect to the program file of another generation Management device.
(付記8) 前記プログラムファイル編集手段は、前記フラグが設定されたプログラムファイル、及び、前記プログラムファイルから生成された各世代のプログラムファイルを編集することを特徴とする付記6記載のプログラム開発管理装置。 (Supplementary note 8) The program development management device according to supplementary note 6, wherein the program file editing means edits the program file in which the flag is set, and each generation program file generated from the program file. .
(付記9) コンピュータにより、プログラミング言語で作成されたプログラムファイルを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイルを生成する場合で、各世代のプログラムファイルを管理するプログラム開発管理方法において、
ファイル名記憶手段が、プログラムファイルに対する編集と変換とによって生成された、複数の世代のプログラムファイルのファイル名を記憶するステップと、
プログラムファイル編集手段が、前記各プログラムファイルを編集するステップと、
ファイル名管理手段が、前記プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集された前記プログラムファイルのファイル名に、フラグを設定するステップと、
を含むことを特徴とするプログラム開発管理方法。
(Supplementary note 9) When a program file created in a programming language is converted one or more times by a computer, the generation of a machine language is generated by stepping up the generation of the programming language step by step. In the program development management method for managing
A file name storage means for storing file names of a plurality of generations of program files generated by editing and converting the program file;
A program file editing means for editing each program file;
A file name management means, when the program file is edited and applied as the latest program file, setting a flag to the file name of the edited program file;
A program development management method comprising:
(付記10) プログラミング言語で作成されたプログラムファイルを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイルを生成する場合で、各世代のプログラムファイルを管理するプログラム開発管理プログラムにおいて、
コンピュータに、
ファイル名記憶手段が、プログラムファイルに対する編集と変換とによって生成された、複数の世代のプログラムファイルのファイル名を記憶するステップと、
プログラムファイル編集手段が、前記各プログラムファイルを編集するステップと、
ファイル名管理手段が、前記プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集された前記プログラムファイルのファイル名に、フラグを設定するステップと、
を含む処理を実行させることを特徴とするプログラム開発管理プログラム。
(Supplementary note 10) When a program file created in a programming language is converted one or more times to generate a machine language program file by progressively generating the programming language generation, the program file of each generation is managed. In the program development management program,
On the computer,
A file name storage means for storing file names of a plurality of generations of program files generated by editing and converting the program file;
A program file editing means for editing each program file;
A file name management means, when the program file is edited and applied as the latest program file, setting a flag to the file name of the edited program file;
A program development management program characterized by causing a process including
(付記11) プログラミング言語で作成されたプログラムファイルを1回以上変換することにより、段階的にプログラミング言語の世代を進めて機械語のプログラムファイルを生成する場合で、各世代のプログラムファイルを管理するプログラム開発管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータに、
ファイル名記憶手段が、プログラムファイルに対する編集と変換とによって生成された、複数の世代のプログラムファイルのファイル名を記憶するステップと、
プログラムファイル編集手段が、前記各プログラムファイルを編集するステップと、
ファイル名管理手段が、前記プログラムファイルが編集され、最新のプログラムファイルとして適用された場合、編集された前記プログラムファイルのファイル名に、フラグを設定するステップと、
を含む処理を実行させることを特徴とするプログラム開発管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
(Supplementary note 11) When a program file created in a programming language is converted one or more times to generate a machine language program file by progressively generating a programming language generation, the program file for each generation is managed. In a computer-readable recording medium recording a program development management program,
On the computer,
A file name storage means for storing file names of a plurality of generations of program files generated by editing and converting the program file;
A program file editing means for editing each program file;
A file name management means, when the program file is edited and applied as the latest program file, setting a flag to the file name of the edited program file;
The computer-readable recording medium which recorded the program development management program characterized by performing the process containing these.
1 ファイル名記憶手段
1a ソースファイル名
1b アセンブルファイル名
1c オブジェクトファイル名
1aa ソースファイル
1ba アセンブルファイル
1ca オブジェクトファイル
2 プログラムファイル編集手段
3 ファイル名管理手段
DESCRIPTION OF
Claims (4)
複数の世代のプログラムファイルのファイル名の中で、最新のターゲットプログラムの生成元となるプログラムファイルのファイル名を記憶するファイル名記憶手段と、
前記各プログラムファイルを編集するプログラムファイル編集手段と、
前記プログラムファイルが編集された場合、編集された前記プログラムファイルの祖先の世代のプログラムファイルのファイル名を、前記ファイル名記憶手段から削除するファイル名管理手段と、
を有することを特徴とするプログラム開発管理装置。 A program development management device that manages program files for each generation when a program file created in a programming language is converted one or more times to generate a program file in machine language by stepping through the generations of the programming language. In
File name storage means for storing the file name of the program file that is the generation source of the latest target program among the file names of the multiple generation program files;
Program file editing means for editing each program file,
If the program file has been edited, and the file name management means that the file name of the program file of generations of ancestors of the edited the program file is deleted from the file name storage means,
A program development management device comprising:
プログラムファイルに対する編集と変換とによって生成された、複数の世代のプログラムファイルのファイル名を記憶するファイル名記憶手段と、
前記各プログラムファイルを編集するプログラムファイル編集手段と、
前記プログラムファイルが編集された場合、編集された前記プログラムファイルのファイル名に、フラグを設定するファイル名管理手段と、
を有し、
前記プログラムファイル編集手段は、前記フラグが設定されたプログラムファイル、及び、前記フラグが設定されたプログラムファイルから生成された各世代のプログラムファイルを編集する、
ことを特徴とするプログラム開発管理装置。 A program development management device that manages program files for each generation when a program file created in a programming language is converted one or more times to generate a program file in machine language by stepping through the generations of the programming language. In
File name storage means for storing file names of a plurality of generations of program files generated by editing and converting the program file;
Program file editing means for editing each program file,
If the program file has been edited, the file name of the edited the program file, and the file name managing means for setting the flag,
Have
The program file editing means edits a program file in which the flag is set and a program file for each generation generated from the program file in which the flag is set.
A program development management device characterized by that.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005097081A JP4805594B2 (en) | 2005-03-30 | 2005-03-30 | Program development management device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005097081A JP4805594B2 (en) | 2005-03-30 | 2005-03-30 | Program development management device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006277457A JP2006277457A (en) | 2006-10-12 |
| JP4805594B2 true JP4805594B2 (en) | 2011-11-02 |
Family
ID=37212138
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005097081A Expired - Fee Related JP4805594B2 (en) | 2005-03-30 | 2005-03-30 | Program development management device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4805594B2 (en) |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04335428A (en) * | 1991-05-13 | 1992-11-24 | Mitsubishi Electric Corp | How to version files |
| JPH05298077A (en) * | 1992-04-17 | 1993-11-12 | Hitachi Ltd | Customizing development procedure support method |
| JPH09128228A (en) * | 1995-10-26 | 1997-05-16 | Toshiba Corp | Computer equipment |
| JP2001092674A (en) * | 1999-09-17 | 2001-04-06 | Nec Ic Microcomput Syst Ltd | Program creation device and program creation method |
-
2005
- 2005-03-30 JP JP2005097081A patent/JP4805594B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006277457A (en) | 2006-10-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7086046B2 (en) | Method and apparatus for displaying compiler-optimizated code | |
| US8046738B2 (en) | Efficiently developing encoded instructions by tracking multiple unverified instances of repetitive code segments | |
| US9524279B2 (en) | Help document animated visualization | |
| CN113360156B (en) | An IOS compilation method and related equipment | |
| JP6940751B2 (en) | Information processing equipment, information processing methods and information processing programs | |
| JP2018092383A (en) | Compiling program, compiling method, and information processing apparatus | |
| JP2020119348A (en) | Analysis program, analysis method, and analysis device | |
| JPWO2010044150A1 (en) | Program change management apparatus, program change management program, and program change management method | |
| US20080270984A1 (en) | Script program execution device, script program execution method, and optical disk device | |
| US7712088B2 (en) | Method and system for a batch parser | |
| JP2009059351A (en) | System, method, and computer program product for recording operations performed on computer source code | |
| WO2007116490A1 (en) | Source code generation program, source code generation method, and source code generation device | |
| CN111984300B (en) | Code copying method and device, electronic equipment and computer readable storage medium | |
| JP4805594B2 (en) | Program development management device | |
| JP5962350B2 (en) | Program, information processing apparatus and test method | |
| GB2420638A (en) | Method of substituting code fragments in Internal Representation | |
| JP2019179383A (en) | API processing method, terminal, API processing program | |
| JP7524690B2 (en) | JUDGMENT PROGRAM, JUDGMENT METHOD, AND INFORMATION PROCESSING APPARATUS | |
| KR100846203B1 (en) | Recording medium recording method of generating mobile application and program for implementing same | |
| JP5181788B2 (en) | Source program language conversion apparatus, method and program | |
| KR102760575B1 (en) | System and method for processing messages operable on a multiple operating system | |
| JP7332951B2 (en) | Processing server, processing method and processing program | |
| JP2011180814A (en) | Compiler apparatus, compiling method and program | |
| US20020010914A1 (en) | Componentware creating method and recording medium | |
| JP2018032119A (en) | Information processing apparatus, method for controlling information processing apparatus, and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080212 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080729 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110120 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110531 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110725 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110809 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110811 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140819 Year of fee payment: 3 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |