JPH0612259A - コンパイラ処理方式 - Google Patents
コンパイラ処理方式Info
- Publication number
- JPH0612259A JPH0612259A JP18888592A JP18888592A JPH0612259A JP H0612259 A JPH0612259 A JP H0612259A JP 18888592 A JP18888592 A JP 18888592A JP 18888592 A JP18888592 A JP 18888592A JP H0612259 A JPH0612259 A JP H0612259A
- Authority
- JP
- Japan
- Prior art keywords
- program
- compiler
- file
- information
- intermediate information
- 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.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【目的】 分割コンパイル方式におけるプログラム開発
のコンパイル時間短縮。 【構成】 プログラム解析手段102はソースプログラ
ムを入力して中間情報105に変換し、データ領域ダン
プ手段106はコンパイラのデータ領域をコンパイラダ
ンプ情報ファイル107に出力する。プログラムファイ
ル書き換え構築手段108はダンプ情報とコンパイラプ
ログラム110から中間情報を持つ中間情報付コンパイ
ラプログラム109を出力する。
のコンパイル時間短縮。 【構成】 プログラム解析手段102はソースプログラ
ムを入力して中間情報105に変換し、データ領域ダン
プ手段106はコンパイラのデータ領域をコンパイラダ
ンプ情報ファイル107に出力する。プログラムファイ
ル書き換え構築手段108はダンプ情報とコンパイラプ
ログラム110から中間情報を持つ中間情報付コンパイ
ラプログラム109を出力する。
Description
【0001】
【産業上の利用分野】本発明は、ソースプログラムファ
イルから入力し、アセンブリ命令列に変換するコンパイ
ラの処理方式に関する。
イルから入力し、アセンブリ命令列に変換するコンパイ
ラの処理方式に関する。
【0002】
【従来の技術】従来、ソースプログラムを入力しアセン
ブリ命令列に変換するコンパイラにおいては、ソースプ
ログラムを構成する複数のモジュールの、個々のモジュ
ールをアセンブリ命令列に変換する、分割コンパイラ方
式が広く使われている。分割された個々のモジュール
を、翻訳単位と呼び、コンパイラプログラムは、翻訳単
位毎に別々のプロセスとして実行される。
ブリ命令列に変換するコンパイラにおいては、ソースプ
ログラムを構成する複数のモジュールの、個々のモジュ
ールをアセンブリ命令列に変換する、分割コンパイラ方
式が広く使われている。分割された個々のモジュール
を、翻訳単位と呼び、コンパイラプログラムは、翻訳単
位毎に別々のプロセスとして実行される。
【0003】この方式で生成される、アセンブリプログ
ラムの各モジュールは、アセンブラにより機械語に翻訳
され、全モジュールが結合されて、実行可能なプログラ
ムが生成される。分割コンパイル方式は、ソースプログ
ラムの規模が大きい場合などに、部分的な修正のために
必要な再コンパイルにかかるコンパイル時間を短くする
上で有効である。
ラムの各モジュールは、アセンブラにより機械語に翻訳
され、全モジュールが結合されて、実行可能なプログラ
ムが生成される。分割コンパイル方式は、ソースプログ
ラムの規模が大きい場合などに、部分的な修正のために
必要な再コンパイルにかかるコンパイル時間を短くする
上で有効である。
【0004】この方式で変換されるソースプログラムに
おいて、複数のモジュールで共通に参照するデータがあ
る場合、そのデータの定義情報は参照している全てのモ
ジュールに必要であるが、別々のプロセスとして実行さ
れるコンパイラプログラムの間で、データの定義情報を
共有することが出来ないため、コンパイラは翻訳単位毎
に毎回データの定義情報を解析しなければならない。
おいて、複数のモジュールで共通に参照するデータがあ
る場合、そのデータの定義情報は参照している全てのモ
ジュールに必要であるが、別々のプロセスとして実行さ
れるコンパイラプログラムの間で、データの定義情報を
共有することが出来ないため、コンパイラは翻訳単位毎
に毎回データの定義情報を解析しなければならない。
【0005】一方、一般に計算機上で実行可能なプログ
ラムは、機械語命令列からなるプログラム領域と、読み
出しと書き込みが可能なデータ領域から構成される。プ
ログラムの実行は、プログラム領域とデータ領域を計算
機メモリ上に展開し、プログラム領域の機械語命令を逐
次実行することにより実現される。
ラムは、機械語命令列からなるプログラム領域と、読み
出しと書き込みが可能なデータ領域から構成される。プ
ログラムの実行は、プログラム領域とデータ領域を計算
機メモリ上に展開し、プログラム領域の機械語命令を逐
次実行することにより実現される。
【0006】このようなプログラム実行の実現におい
て、初期化処理に時間がかかるプログラムの、起動を高
速にする方法として、初期化が行なわれた状態の実行可
能なプログラムを生成する方法が知られている。実行中
のプログラムのデータ領域を外部ファイルにダンプし、
その外部ファイルを使って、実行可能な機械語プログラ
ムを生成する。この方法では、当初の実行可能なプログ
ラムのデータ領域を、ダンプした外部ファイル中のデー
タ領域の値で置き換えて、新しい機械語プログラムを生
成する。
て、初期化処理に時間がかかるプログラムの、起動を高
速にする方法として、初期化が行なわれた状態の実行可
能なプログラムを生成する方法が知られている。実行中
のプログラムのデータ領域を外部ファイルにダンプし、
その外部ファイルを使って、実行可能な機械語プログラ
ムを生成する。この方法では、当初の実行可能なプログ
ラムのデータ領域を、ダンプした外部ファイル中のデー
タ領域の値で置き換えて、新しい機械語プログラムを生
成する。
【0007】図4は従来のコンパイラの構成説明図であ
る。
る。
【0008】プログラム解析手段402はシステムの外
部記憶装置に格納されたソースプログラムファイル40
1を入力し、データや手続きの定義を解析して、中間情
報405に変換し、コード生成手段403は中間情報4
05をアセンブリ命令列に変換して、アセンブリ命令列
ファイル404に出力する。
部記憶装置に格納されたソースプログラムファイル40
1を入力し、データや手続きの定義を解析して、中間情
報405に変換し、コード生成手段403は中間情報4
05をアセンブリ命令列に変換して、アセンブリ命令列
ファイル404に出力する。
【0009】中間情報405はシステムの主記憶装置に
格納されており、コンパイラのデータ領域に含まれてい
て、アセンブリ命令列を出力したのちそのまま削除され
ていた。
格納されており、コンパイラのデータ領域に含まれてい
て、アセンブリ命令列を出力したのちそのまま削除され
ていた。
【0010】
【発明が解決しようとする課題】しかしながら、以上で
述べたように、従来の分割コンパイル方式においては、
翻訳単位毎に共通に参照されるデータの定義情報を解析
するが、特に、ソースプログラムが、多様な機能を持つ
高級言語で記述されている場合、データの定義情報は複
雑で大量になるため、コンパイル時間に占める、データ
の定義情報の解析に要する時間の割合は大きくなる。
述べたように、従来の分割コンパイル方式においては、
翻訳単位毎に共通に参照されるデータの定義情報を解析
するが、特に、ソースプログラムが、多様な機能を持つ
高級言語で記述されている場合、データの定義情報は複
雑で大量になるため、コンパイル時間に占める、データ
の定義情報の解析に要する時間の割合は大きくなる。
【0011】また、汎用的なサブルーチンの集まりをラ
イブラリと呼ぶが、汎用的なサブルーチンの定義情報は
殆んど稀にしか変更されないのに、コンパイラ実行のつ
ど、定義情報を解析しなければならない。大規模なライ
ブラリを利用する場合には、コンパイル時に、必要なデ
ータやサブルーチンの定義情報が大きいため、解析にか
かる時間が長くなるなどの問題があった。
イブラリと呼ぶが、汎用的なサブルーチンの定義情報は
殆んど稀にしか変更されないのに、コンパイラ実行のつ
ど、定義情報を解析しなければならない。大規模なライ
ブラリを利用する場合には、コンパイル時に、必要なデ
ータやサブルーチンの定義情報が大きいため、解析にか
かる時間が長くなるなどの問題があった。
【0012】本発明の目的は、ソースプログラムのコン
パイルに当たって、データの定義情報を解析して変更し
た中間結果を保存し、計算機の内部のメモリに、中間情
報が構成されている状態からコンパイラプログラムの実
行を再開することにより、コンパイルに要する時間を短
縮するコンパイラ処理方式を提供することである。
パイルに当たって、データの定義情報を解析して変更し
た中間結果を保存し、計算機の内部のメモリに、中間情
報が構成されている状態からコンパイラプログラムの実
行を再開することにより、コンパイルに要する時間を短
縮するコンパイラ処理方式を提供することである。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、本発明はファイルからソースプログラムを入力し中
間情報に変換する解析手段と、中間情報をアセンブリ命
令列に変換するコード生成手段を有するコンパイラの処
理方式において、コンパイラを実行中の計算機の内部の
メモリに存在する入力したソースファイルから変換した
中間情報を含むコンパイラのデータ領域を外部ファイル
に出力する手段と、メモリ中の情報からなる外部ファイ
ルからコンパイラの実行プログラムを生成する手段を有
している。
め、本発明はファイルからソースプログラムを入力し中
間情報に変換する解析手段と、中間情報をアセンブリ命
令列に変換するコード生成手段を有するコンパイラの処
理方式において、コンパイラを実行中の計算機の内部の
メモリに存在する入力したソースファイルから変換した
中間情報を含むコンパイラのデータ領域を外部ファイル
に出力する手段と、メモリ中の情報からなる外部ファイ
ルからコンパイラの実行プログラムを生成する手段を有
している。
【0014】
【作用】上記構成によれば、プログラム解析手段により
ファイルからのソースプログラムを中間情報に変換し、
コード生成手段によって中間情報をアセンブリ命令列に
変換して、中間情報はそのまま削除せずに、データ領域
の出力手段により中間情報を含むコンパイラのデータ領
域として外部ファイルに出力し、実行プログラムを生成
する手段によりメモリ中の情報からなる外部ファイルか
ら中間情報を持ったコンパイラの機械語プログラムを生
成するので、コンパイルに要する時間短縮が可能とな
る。
ファイルからのソースプログラムを中間情報に変換し、
コード生成手段によって中間情報をアセンブリ命令列に
変換して、中間情報はそのまま削除せずに、データ領域
の出力手段により中間情報を含むコンパイラのデータ領
域として外部ファイルに出力し、実行プログラムを生成
する手段によりメモリ中の情報からなる外部ファイルか
ら中間情報を持ったコンパイラの機械語プログラムを生
成するので、コンパイルに要する時間短縮が可能とな
る。
【0015】
【実施例】以下、本発明の一実施例を図に基づいて説明
する。
する。
【0016】図1は本発明の一実施例によるコンパイラ
処理方式の構成説明図である。
処理方式の構成説明図である。
【0017】図1において、ソースプログラムファイル
101から、ソースプログラムを入力して解析し、中間
情報105に変換するプログラム解析手段102と、中
間情報105をアセンブリ命令列に変換するコード生成
手段103に加えて、実行中のコンパイラの内部状態を
外部ファイルに出力するデータ領域ダンプ手段106
と、外部ファイル上のダンプ情報107と、コンパイラ
の機械語プログラムファイル110からコンパイラプロ
グラムを生成するプログラムファイル書き換え手段10
8を備え、起動時に中間情報が構成されているコンパイ
ラプログラム109の生成を可能とする様に構成され
る。
101から、ソースプログラムを入力して解析し、中間
情報105に変換するプログラム解析手段102と、中
間情報105をアセンブリ命令列に変換するコード生成
手段103に加えて、実行中のコンパイラの内部状態を
外部ファイルに出力するデータ領域ダンプ手段106
と、外部ファイル上のダンプ情報107と、コンパイラ
の機械語プログラムファイル110からコンパイラプロ
グラムを生成するプログラムファイル書き換え手段10
8を備え、起動時に中間情報が構成されているコンパイ
ラプログラム109の生成を可能とする様に構成され
る。
【0018】図2は、図1に示す実施例のシステムブロ
ック図であり、中央処理装置21と、主記憶装置22
と、入力装置23、出力装置24と、ソースプログラム
ファイルが格納された外部記憶装置25と、外部記憶制
御装置26とで構成される。
ック図であり、中央処理装置21と、主記憶装置22
と、入力装置23、出力装置24と、ソースプログラム
ファイルが格納された外部記憶装置25と、外部記憶制
御装置26とで構成される。
【0019】つぎに動作について説明する。
【0020】プログラム解析手段102は外部記憶装置
25に格納されたソースプログラムファイル101を入
力し、データや手続きの定義を解析して、中間情報10
5に変換し、コード生成手段103は中間情報105を
アセンブリ命令列に変換してアセンブリ命令列ファイル
104に出力する。中間情報105は主記憶装置22に
格納されておりコンパイラのデータ領域に含まれてい
る。
25に格納されたソースプログラムファイル101を入
力し、データや手続きの定義を解析して、中間情報10
5に変換し、コード生成手段103は中間情報105を
アセンブリ命令列に変換してアセンブリ命令列ファイル
104に出力する。中間情報105は主記憶装置22に
格納されておりコンパイラのデータ領域に含まれてい
る。
【0021】データ領域のダンプを行なうかどうかは、
入力装置23から指定する。データ領域ダンプ手段10
6は、主記憶装置22上に格納されているコンパイラの
データ領域を、外部記憶装置25に格納されたコンパイ
ラダンプ情報ファイル107に出力する。
入力装置23から指定する。データ領域ダンプ手段10
6は、主記憶装置22上に格納されているコンパイラの
データ領域を、外部記憶装置25に格納されたコンパイ
ラダンプ情報ファイル107に出力する。
【0022】プログラムファイル書き換え構築手段10
8は、ダンプ情報ファイル107とコンパイラプログラ
ムファイル110を入力し、コンパイラプログラムのデ
ータ領域を、ダンプ情報ファイル中のデータ領域の値に
変更して、中間情報を持ったコンパイラプログラムファ
イル109を出力する。このファイルは実行可能な機械
語プログラムであり、そのプログラム領域の内容は、当
初のコンパイラプログラムのプログラム領域と同一であ
る。
8は、ダンプ情報ファイル107とコンパイラプログラ
ムファイル110を入力し、コンパイラプログラムのデ
ータ領域を、ダンプ情報ファイル中のデータ領域の値に
変更して、中間情報を持ったコンパイラプログラムファ
イル109を出力する。このファイルは実行可能な機械
語プログラムであり、そのプログラム領域の内容は、当
初のコンパイラプログラムのプログラム領域と同一であ
る。
【0023】図3は図1に示すコンパイラプログラムの
構成説明図である。一点鎖線で囲んだ部分の構成は、図
1の、中間情報を持ったコンパイラプログラムファイル
109に対応している。
構成説明図である。一点鎖線で囲んだ部分の構成は、図
1の、中間情報を持ったコンパイラプログラムファイル
109に対応している。
【0024】中間情報を持ったコンパイラプログラムを
実行した時、その起動の時点で、ソースプログラムファ
イル101に含まれていた共通データ定義は、中間情報
305として主記憶装置上に構成された状態となる。
実行した時、その起動の時点で、ソースプログラムファ
イル101に含まれていた共通データ定義は、中間情報
305として主記憶装置上に構成された状態となる。
【0025】以上本発明の実施例について説明したが、
ソースプログラムのモジュールの間で共有するデータ定
義が多い場合、共有するデータ定義を解析し、初期化済
みのコンパイラプログラムを生成して各モジュールをコ
ンパイルすれば、翻訳単位毎のコンパイル時間を短縮す
ることができる。
ソースプログラムのモジュールの間で共有するデータ定
義が多い場合、共有するデータ定義を解析し、初期化済
みのコンパイラプログラムを生成して各モジュールをコ
ンパイルすれば、翻訳単位毎のコンパイル時間を短縮す
ることができる。
【0026】
【発明の効果】以上説明したように、本発明は、分割コ
ンパイル方式において、共通のデータ定義に対応する中
間情報を組み込んだコンパイラを生成することにより、
プログラム開発におけるコンパイル時間を短縮する効果
がある。
ンパイル方式において、共通のデータ定義に対応する中
間情報を組み込んだコンパイラを生成することにより、
プログラム開発におけるコンパイル時間を短縮する効果
がある。
【図1】本発明の一実施例によるコンパイラ処理方式の
構成説明図である。
構成説明図である。
【図2】図1に示す実施例のシステムブロック図であ
る。
る。
【図3】図1に示すコンパイラプログラムの構成説明図
である。
である。
【図4】従来のコンパイラの構成説明図である。
101 ソースプログラムファイル 102 プログラム解析手段 103 コード生成手段 104 アセンブリ命令列ファイル 105 中間情報 106 データ領域ダンプ手段 107 コンパイラダンプ情報 108 プログラムファイル書き換え手段 109 中間情報付コンパイラプログラム 110 コンパイラプログラム
Claims (1)
- 【請求項1】 ファイルからソースプログラムを入力し
中間情報に変換する解析手段と、中間情報をアセンブリ
命令列に変換するコード生成手段を有するコンパイラの
処理方式において、コンパイラを実行中の計算機の内部
のメモリに存在する入力したソースファイルから変換し
た中間情報を含むコンパイラのデータ領域を外部ファイ
ルに出力する手段と、前記メモリ中の情報からなる外部
ファイルからコンパイラの実行プログラムを生成する手
段とを有することを特徴とするコンパイラの処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18888592A JPH0612259A (ja) | 1992-06-24 | 1992-06-24 | コンパイラ処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18888592A JPH0612259A (ja) | 1992-06-24 | 1992-06-24 | コンパイラ処理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0612259A true JPH0612259A (ja) | 1994-01-21 |
Family
ID=16231586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18888592A Pending JPH0612259A (ja) | 1992-06-24 | 1992-06-24 | コンパイラ処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0612259A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011129445A1 (ja) | 2010-04-16 | 2011-10-20 | 旭化成ケミカルズ株式会社 | ポリアセタール樹脂組成物、その製造方法及び成形体 |
-
1992
- 1992-06-24 JP JP18888592A patent/JPH0612259A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011129445A1 (ja) | 2010-04-16 | 2011-10-20 | 旭化成ケミカルズ株式会社 | ポリアセタール樹脂組成物、その製造方法及び成形体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5586328A (en) | Module dependency based incremental compiler and method | |
JPH08202545A (ja) | ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 | |
JPH05257709A (ja) | 並列化判別方法およびそれを用いた並列化支援方法 | |
CN112882718A (zh) | 编译处理方法、装置、设备及存储介质 | |
US20150020051A1 (en) | Method and apparatus for automated conversion of software applications | |
JP3318051B2 (ja) | 翻訳処理方法 | |
JP3196675B2 (ja) | 言語処理方式 | |
JPH0612259A (ja) | コンパイラ処理方式 | |
JPH05346332A (ja) | 試験プログラム実行方法 | |
JP3424596B2 (ja) | シンボル参照情報のキャッシュ方法ならびに装置 | |
JP3018783B2 (ja) | コンパイル方式 | |
JP3044953B2 (ja) | 言語処理システムのシンボル処理方式 | |
JPH1083328A (ja) | 単体テスト用疑似入出力実現方式 | |
JPH02253443A (ja) | プログラム生成方法 | |
JPH07105014A (ja) | 言語処理システムのシンボル処理方式 | |
JPH05120025A (ja) | ソースプログラムのインライン展開方法 | |
JPH0293948A (ja) | 計算機システム | |
Metzner | Program generator systems | |
JPH04120629A (ja) | コード生成方法 | |
JPH05143356A (ja) | コンパイラ装置 | |
JPH05108372A (ja) | コンパイラ最適化処理内容の出力方式 | |
JPH11161501A (ja) | コンパイル装置 | |
JP2000081984A (ja) | コンパイル処理装置およびコンパイル処理方法 | |
JPH0425969A (ja) | If文下定義配列ベクトル化コンパイル方式 | |
Shen et al. | Optimized parallel execution of declarative programs on distributed memory multiprocessors |