JPH06100971B2 - 翻訳処理方式 - Google Patents
翻訳処理方式Info
- Publication number
- JPH06100971B2 JPH06100971B2 JP24184788A JP24184788A JPH06100971B2 JP H06100971 B2 JPH06100971 B2 JP H06100971B2 JP 24184788 A JP24184788 A JP 24184788A JP 24184788 A JP24184788 A JP 24184788A JP H06100971 B2 JPH06100971 B2 JP H06100971B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- translation
- common information
- definition
- translation unit
- 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 - Lifetime
Links
- 238000003672 processing method Methods 0.000 title description 11
- 238000012545 processing Methods 0.000 claims description 75
- 238000000034 method Methods 0.000 claims description 18
- 230000010365 information processing Effects 0.000 claims description 14
- 230000002950 deficient Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012958 reprocessing Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は翻訳処理方式に関し、特に翻訳単位間で共通な
情報である共通データや共通手続き(以下、共通情報と
称する)の定義と参照とを別々の翻訳単位に記述可能な
高級プログラミング言語で記述された原始プログラムを
翻訳して目的プログラムを生成するコンパイラにおける
翻訳処理方式に関する。
情報である共通データや共通手続き(以下、共通情報と
称する)の定義と参照とを別々の翻訳単位に記述可能な
高級プログラミング言語で記述された原始プログラムを
翻訳して目的プログラムを生成するコンパイラにおける
翻訳処理方式に関する。
従来、この種の翻訳処理方式では、翻訳単位間の共通情
報の定義と参照とを別々の翻訳単位に記述可能な高級プ
ログラミング言語で記述された原始プログラムを翻訳す
る場合に、共通情報の参照を含む翻訳単位は、参照すべ
き共通情報の定義を含む翻訳単位の翻訳が成功して目的
プログラムが生成された結果として生成される当該共通
情報の定義情報を参照して翻訳している。
報の定義と参照とを別々の翻訳単位に記述可能な高級プ
ログラミング言語で記述された原始プログラムを翻訳す
る場合に、共通情報の参照を含む翻訳単位は、参照すべ
き共通情報の定義を含む翻訳単位の翻訳が成功して目的
プログラムが生成された結果として生成される当該共通
情報の定義情報を参照して翻訳している。
上述した従来の翻訳処理方式では、共通情報の参照を含
む翻訳単位は、参照すべき共通情報の定義情報を参照し
なければならないので、コンパイラの利用者は、共通情
報の定義を含む翻訳単位が当該共通情報の参照を含む翻
訳単位よりも前に翻訳されるように意識して原始プログ
ラムを記述したり、共通情報の定義を含む翻訳単位を当
該共通情報の参照を含む翻訳単位よりも前に翻訳される
ように翻訳の指示を出さなければならないという欠点が
ある。
む翻訳単位は、参照すべき共通情報の定義情報を参照し
なければならないので、コンパイラの利用者は、共通情
報の定義を含む翻訳単位が当該共通情報の参照を含む翻
訳単位よりも前に翻訳されるように意識して原始プログ
ラムを記述したり、共通情報の定義を含む翻訳単位を当
該共通情報の参照を含む翻訳単位よりも前に翻訳される
ように翻訳の指示を出さなければならないという欠点が
ある。
本発明の目的は、上述の点に鑑み、コンパイラの利用者
が共通情報の定義を含む翻訳単位が当該共通情報の参照
を含む翻訳単位よりも前に翻訳されるように意識して原
始プログラムを記述したり、翻訳の指示を出したりしな
くても共通情報の定義と参照とが別々の翻訳単位に記述
された原始プログラムを翻訳することができる翻訳処理
方式を提供することにある。
が共通情報の定義を含む翻訳単位が当該共通情報の参照
を含む翻訳単位よりも前に翻訳されるように意識して原
始プログラムを記述したり、翻訳の指示を出したりしな
くても共通情報の定義と参照とが別々の翻訳単位に記述
された原始プログラムを翻訳することができる翻訳処理
方式を提供することにある。
本発明の翻訳処理方式は、翻訳単位間の共通情報の定義
と参照とを別々の翻訳単位に記述可能であり共通情報の
参照を含む翻訳単位が参照すべき共通情報の定義を含む
翻訳単位を翻訳して生成される共通情報の定義情報を参
照して翻訳される高級プログラミング言語で記述された
原始プログラムを入力して目的プログラムを生成するコ
ンパイラにおいて、前記原始プログラムの翻訳処理を翻
訳単位毎に行い翻訳処理中の翻訳単位が共通情報の参照
を含む場合には参照すべき共通情報の定義情報が共通情
報定義情報ファイルに存在するか否かと参照すべき共通
情報に関する情報とを翻訳処理中の翻訳単位の翻訳単位
名とともに共通情報格納領域に格納して参照すべき共通
情報の定義情報が前記共通情報定義情報ファイルに存在
すれば前記共通情報定義情報ファイルから参照すべき共
通情報の定義情報を入力して翻訳し翻訳処理中の翻訳単
位が共通情報の定義を含む場合には定義している共通情
報に関する情報を翻訳処理中の翻訳単位の翻訳単位名と
ともに共通情報格納領域に格納して当該翻訳単位の目的
プログラムが生成されたならばその結果生成される定義
している共通情報の定義情報を前記共通情報定義情報フ
ァイルに出力する翻訳処理手段と、この翻訳処理手段に
より1つの翻訳単位の翻訳処理が終了する毎に目的プロ
グラムが生成されたか否かと参照すべき共通情報の定義
情報が前記共通情報定義情報ファイルに存在しないため
に目的プログラムが生成されなかった翻訳単位であれば
再度翻訳処理をするのに必要な情報とを当該翻訳単位の
翻訳単位名とともに翻訳単位結果情報として翻訳単位結
果情報格納領域に格納する翻訳結果情報処理手段と、前
記原始プログラムの全ての翻訳単位についての前記翻訳
処理手段および前記翻訳結果情報処理手段による処理が
終了した後に前記翻訳単位結果情報格納領域に格納され
た翻訳単位結果情報を基に参照すべき共通情報の定義情
報が前記共通情報定義情報ファイルに存在しなかったた
めに目的プログラムが生成されなかった翻訳単位を抜き
出して当該翻訳単位の前記共通情報格納領域の参照すべ
き共通情報に関する情報を基に前記共通情報定義情報フ
ァイルおよび前記共通情報格納領域を参照することによ
り前記共通情報定義情報ファイルに参照すべき共通情報
の定義情報が存在しなかったために目的プログラムが生
成されなかった翻訳単位のうちから参照すべき共通情報
の定義情報が現在前記共通情報定義情報ファィルに存在
するために再翻訳可能な翻訳単位と参照すべき共通情報
の定義を含む翻訳単位との間の翻訳順序を入れ替えるこ
とで再翻訳可能な翻訳単位とを抽出して必要であれば再
翻訳処理の順序を入れ替えた後に再翻訳可能な翻訳単位
の前記翻訳単位結果情報格納領域の再翻訳処理をするの
に必要な情報を渡して前記翻訳処理手段に再翻訳可能な
翻訳単位の再翻訳処理を指示する再翻訳処理手段とを有
する。
と参照とを別々の翻訳単位に記述可能であり共通情報の
参照を含む翻訳単位が参照すべき共通情報の定義を含む
翻訳単位を翻訳して生成される共通情報の定義情報を参
照して翻訳される高級プログラミング言語で記述された
原始プログラムを入力して目的プログラムを生成するコ
ンパイラにおいて、前記原始プログラムの翻訳処理を翻
訳単位毎に行い翻訳処理中の翻訳単位が共通情報の参照
を含む場合には参照すべき共通情報の定義情報が共通情
報定義情報ファイルに存在するか否かと参照すべき共通
情報に関する情報とを翻訳処理中の翻訳単位の翻訳単位
名とともに共通情報格納領域に格納して参照すべき共通
情報の定義情報が前記共通情報定義情報ファイルに存在
すれば前記共通情報定義情報ファイルから参照すべき共
通情報の定義情報を入力して翻訳し翻訳処理中の翻訳単
位が共通情報の定義を含む場合には定義している共通情
報に関する情報を翻訳処理中の翻訳単位の翻訳単位名と
ともに共通情報格納領域に格納して当該翻訳単位の目的
プログラムが生成されたならばその結果生成される定義
している共通情報の定義情報を前記共通情報定義情報フ
ァイルに出力する翻訳処理手段と、この翻訳処理手段に
より1つの翻訳単位の翻訳処理が終了する毎に目的プロ
グラムが生成されたか否かと参照すべき共通情報の定義
情報が前記共通情報定義情報ファイルに存在しないため
に目的プログラムが生成されなかった翻訳単位であれば
再度翻訳処理をするのに必要な情報とを当該翻訳単位の
翻訳単位名とともに翻訳単位結果情報として翻訳単位結
果情報格納領域に格納する翻訳結果情報処理手段と、前
記原始プログラムの全ての翻訳単位についての前記翻訳
処理手段および前記翻訳結果情報処理手段による処理が
終了した後に前記翻訳単位結果情報格納領域に格納され
た翻訳単位結果情報を基に参照すべき共通情報の定義情
報が前記共通情報定義情報ファイルに存在しなかったた
めに目的プログラムが生成されなかった翻訳単位を抜き
出して当該翻訳単位の前記共通情報格納領域の参照すべ
き共通情報に関する情報を基に前記共通情報定義情報フ
ァイルおよび前記共通情報格納領域を参照することによ
り前記共通情報定義情報ファイルに参照すべき共通情報
の定義情報が存在しなかったために目的プログラムが生
成されなかった翻訳単位のうちから参照すべき共通情報
の定義情報が現在前記共通情報定義情報ファィルに存在
するために再翻訳可能な翻訳単位と参照すべき共通情報
の定義を含む翻訳単位との間の翻訳順序を入れ替えるこ
とで再翻訳可能な翻訳単位とを抽出して必要であれば再
翻訳処理の順序を入れ替えた後に再翻訳可能な翻訳単位
の前記翻訳単位結果情報格納領域の再翻訳処理をするの
に必要な情報を渡して前記翻訳処理手段に再翻訳可能な
翻訳単位の再翻訳処理を指示する再翻訳処理手段とを有
する。
本発明の翻訳処理方式では、翻訳処理手段が原始プログ
ラムの翻訳処理を翻訳単位毎に行い翻訳処理中の翻訳単
位が共通情報の参照を含む場合には参照すべき共通情報
の定義情報が共通情報定義情報ファイルに存在するか否
かと参照すべき共通情報に関する情報とを翻訳処理中の
翻訳単位の翻訳単位名とともに共通情報格納領域に格納
して参照すべき共通情報の定義情報が共通情報定義情報
ファイルに存在すれば共通情報定義情報ファイルから参
照すべき共通情報の定義情報を入力して翻訳し翻訳処理
中の翻訳単位が共通情報の定義を含む場合には定義して
いる共通情報に関する情報を翻訳処理中の翻訳単位の翻
訳単位名とともに共通情報格納領域に格納して当該翻訳
単位の目的プログラムが生成されたならばその結果生成
される定義している共通情報の定義情報を共通情報定義
情報ファイルに出力し、翻訳結果情報処理手段が翻訳処
理手段により1つの翻訳単位の翻訳処理が終了する毎に
目的プログラムが生成されたか否かと参照すべき共通情
報の定義情報が共通情報定義情報ファイルに存在しない
ために目的プログラムが生成されなかった翻訳単位であ
れば再度翻訳処理をするのに必要な情報とを当該翻訳単
位の翻訳単位名とともに翻訳単位結果情報として翻訳単
位結果情報格納領域に格納し、再翻訳処理手段が原始プ
ログラムの全ての翻訳単位についての翻訳処理手段およ
び翻訳結果情報処理手段による処理が終了した後に翻訳
単位結果情報格納領域に格納された翻訳単位結果情報を
基に参照すべき共通情報の定義情報が共通情報定義情報
ファイルに存在しなかったために目的プログラムが生成
されなかった翻訳単位を抜き出して当該翻訳単位の共通
情報格納領域の参照すべき共通情報に関する情報を基に
共通情報定義情報ファイルおよび共通情報格納領域を参
照することにより共通情報定義情報ファイルに参照すべ
き共通情報の定義情報が存在しなかったために目的プロ
グラムが生成されなかった翻訳単位のうちから参照すべ
き共通情報の定義情報が現在共通情報定義情報ファィル
に存在するために再翻訳可能な翻訳単位と参照すべき共
通情報の定義を含む翻訳単位との間の翻訳順序を入れ替
えることで再翻訳可能な翻訳単位とを抽出して必要であ
れば再翻訳処理の順序を入れ替えた後に再翻訳可能な翻
訳単位の翻訳単位結果情報格納領域の再翻訳処理をする
のに必要な情報を渡して翻訳処理手段に再翻訳可能な翻
訳単位の再翻訳処理を指示する。
ラムの翻訳処理を翻訳単位毎に行い翻訳処理中の翻訳単
位が共通情報の参照を含む場合には参照すべき共通情報
の定義情報が共通情報定義情報ファイルに存在するか否
かと参照すべき共通情報に関する情報とを翻訳処理中の
翻訳単位の翻訳単位名とともに共通情報格納領域に格納
して参照すべき共通情報の定義情報が共通情報定義情報
ファイルに存在すれば共通情報定義情報ファイルから参
照すべき共通情報の定義情報を入力して翻訳し翻訳処理
中の翻訳単位が共通情報の定義を含む場合には定義して
いる共通情報に関する情報を翻訳処理中の翻訳単位の翻
訳単位名とともに共通情報格納領域に格納して当該翻訳
単位の目的プログラムが生成されたならばその結果生成
される定義している共通情報の定義情報を共通情報定義
情報ファイルに出力し、翻訳結果情報処理手段が翻訳処
理手段により1つの翻訳単位の翻訳処理が終了する毎に
目的プログラムが生成されたか否かと参照すべき共通情
報の定義情報が共通情報定義情報ファイルに存在しない
ために目的プログラムが生成されなかった翻訳単位であ
れば再度翻訳処理をするのに必要な情報とを当該翻訳単
位の翻訳単位名とともに翻訳単位結果情報として翻訳単
位結果情報格納領域に格納し、再翻訳処理手段が原始プ
ログラムの全ての翻訳単位についての翻訳処理手段およ
び翻訳結果情報処理手段による処理が終了した後に翻訳
単位結果情報格納領域に格納された翻訳単位結果情報を
基に参照すべき共通情報の定義情報が共通情報定義情報
ファイルに存在しなかったために目的プログラムが生成
されなかった翻訳単位を抜き出して当該翻訳単位の共通
情報格納領域の参照すべき共通情報に関する情報を基に
共通情報定義情報ファイルおよび共通情報格納領域を参
照することにより共通情報定義情報ファイルに参照すべ
き共通情報の定義情報が存在しなかったために目的プロ
グラムが生成されなかった翻訳単位のうちから参照すべ
き共通情報の定義情報が現在共通情報定義情報ファィル
に存在するために再翻訳可能な翻訳単位と参照すべき共
通情報の定義を含む翻訳単位との間の翻訳順序を入れ替
えることで再翻訳可能な翻訳単位とを抽出して必要であ
れば再翻訳処理の順序を入れ替えた後に再翻訳可能な翻
訳単位の翻訳単位結果情報格納領域の再翻訳処理をする
のに必要な情報を渡して翻訳処理手段に再翻訳可能な翻
訳単位の再翻訳処理を指示する。
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例の翻訳処理方式が適用され
たコンパイラ10の構成を示すブロック図である。このコ
ンパイラ10は、共通情報格納領域10aと、翻訳単位結果
情報格納領域10bと、翻訳処理手段11と、翻訳結果情報
処理手段12と、再翻訳処理手段13とを含んで構成されて
おり、原始プログラム2が格納されている入力原始プロ
グラムファイル1および共通情報定義情報4が格納され
る共通情報定義情報ファイル3に対してアクセス可能と
なっている。
たコンパイラ10の構成を示すブロック図である。このコ
ンパイラ10は、共通情報格納領域10aと、翻訳単位結果
情報格納領域10bと、翻訳処理手段11と、翻訳結果情報
処理手段12と、再翻訳処理手段13とを含んで構成されて
おり、原始プログラム2が格納されている入力原始プロ
グラムファイル1および共通情報定義情報4が格納され
る共通情報定義情報ファイル3に対してアクセス可能と
なっている。
次に、このように構成された本実施例の翻訳処理方式の
動作について説明する。
動作について説明する。
コンパイラ10が入力原始プログラムファイル1中の原始
プログラム2を入力すると、翻訳処理手段11は、入力さ
れた原始プログラム2の翻訳処理を翻訳単位毎に行う。
プログラム2を入力すると、翻訳処理手段11は、入力さ
れた原始プログラム2の翻訳処理を翻訳単位毎に行う。
任意の翻訳単位の翻訳処理中に共通情報の参照が現れた
ならば、翻訳処理手段11は、共通情報定義情報ファイル
3を検索して参照すべき共通情報の定義情報が存在する
か否かを調べて、参照すべき共通情報の定義情報が共通
情報定義情報ファイル3に存在するか否かと参照すべき
共通情報に関する情報とを翻訳処理中の翻訳単位の翻訳
単位名とともに共通情報格納領域10aに格納し、参照す
べき共通情報の定義情報が共通情報定義情報ファイル3
に存在した場合には当該共通情報の定義情報を参照して
翻訳する。また、翻訳処理中の翻訳単位が共通情報の定
義を含むならば、翻訳処理手段11は、定義している共通
情報に関する情報を共通情報格納領域10aに格納して翻
訳する。
ならば、翻訳処理手段11は、共通情報定義情報ファイル
3を検索して参照すべき共通情報の定義情報が存在する
か否かを調べて、参照すべき共通情報の定義情報が共通
情報定義情報ファイル3に存在するか否かと参照すべき
共通情報に関する情報とを翻訳処理中の翻訳単位の翻訳
単位名とともに共通情報格納領域10aに格納し、参照す
べき共通情報の定義情報が共通情報定義情報ファイル3
に存在した場合には当該共通情報の定義情報を参照して
翻訳する。また、翻訳処理中の翻訳単位が共通情報の定
義を含むならば、翻訳処理手段11は、定義している共通
情報に関する情報を共通情報格納領域10aに格納して翻
訳する。
さらに、翻訳処理手段11は、共通情報の定義を含む翻訳
単位の翻訳に成功して目的プログラムが生成されたなら
ば、その結果として生成される定義している共通情報の
定義情報と翻訳処理を行った翻訳単位の翻訳単位名とを
共通情報定義情報4として共通情報定義情報ファイル3
に出力する。
単位の翻訳に成功して目的プログラムが生成されたなら
ば、その結果として生成される定義している共通情報の
定義情報と翻訳処理を行った翻訳単位の翻訳単位名とを
共通情報定義情報4として共通情報定義情報ファイル3
に出力する。
翻訳結果情報処理手段12は、翻訳処理手段11において1
翻訳単位の翻訳処理が終了する毎に、翻訳処理が終了し
た翻訳単位の翻訳単位名,目的プログラムか生成された
か否か,参照すべき共通情報の定義情報が共通情報定義
情報ファイル3に存在しなかったために目的プログラム
が生成されなかった翻訳単位(以下、参照情報不足翻訳
単位と称する)ならば翻訳単位が格納されているファイ
ルのファイル名および当該ファイル内での位置情報等か
らなる再翻訳処理をするのに必要な情報等を翻訳単位結
果情報として翻訳単位結果情報格納領域10bに格納す
る。
翻訳単位の翻訳処理が終了する毎に、翻訳処理が終了し
た翻訳単位の翻訳単位名,目的プログラムか生成された
か否か,参照すべき共通情報の定義情報が共通情報定義
情報ファイル3に存在しなかったために目的プログラム
が生成されなかった翻訳単位(以下、参照情報不足翻訳
単位と称する)ならば翻訳単位が格納されているファイ
ルのファイル名および当該ファイル内での位置情報等か
らなる再翻訳処理をするのに必要な情報等を翻訳単位結
果情報として翻訳単位結果情報格納領域10bに格納す
る。
翻訳処理手段11および翻訳結果情報処理手段12は、原始
プログラム2内の全ての翻訳単位について上記の処理を
繰り返して行う。
プログラム2内の全ての翻訳単位について上記の処理を
繰り返して行う。
コンパイラ10に入力された原始プログラム2の全ての翻
訳単位について翻訳処理手段11および翻訳結果情報処理
手段12による処理が終了したならば、再翻訳処理手段13
は、翻訳単位結果情報格納領域10bの再翻訳処理をする
のに必要な情報を基に参照情報不足翻訳単位を全て検出
する。次に、再翻訳処理手段13は、検出された参照情報
不足翻訳単位が参照すべき共通情報の定義情報名を共通
情報格納領域10aの参照情報不足翻訳単位の参照すべき
共通情報に関する情報から取り出して、参照すべき共通
情報の定義情報が現在共通情報定義情報ファイル3に存
在するか否かを調べる。その結果、参照情報不足翻訳単
位が参照すべき全ての共通情報の定義情報が共通情報定
義情報ファイル3に存在したならば、再翻訳処理手段13
は、この参照情報不足翻訳単位を再翻訳可能とする。参
照情報不足翻訳単位が参照すべき共通情報の定義情報が
共通情報定義情報ファイル3に存在しなければ、再翻訳
処理手段13は、当該共通情報の定義情報名を基に共通情
報格納領域10aからこの参照情報不足翻訳単位が参照す
べき共通情報を定義している翻訳単位を検索し、当該共
通情報を定義している翻訳単位が見つかったならば当該
翻訳単位の翻訳単位名を基に翻訳単位結果情報格納領域
10bを参照して当該翻訳単位が参照情報不足翻訳単位で
あるかどうかを調べる。当該翻訳単位が参照情報不足翻
訳単位であれば、再翻訳処理手段13は、この参照情報不
足翻訳単位(共通情報定義情報ファイル3には参照すべ
き共通情報の定義情報の全ては存在していないが、参照
すべき共通情報を定義している参照情報不足翻訳単位が
存在する翻訳単位)を順序制限付きで再翻訳可能とす
る。
訳単位について翻訳処理手段11および翻訳結果情報処理
手段12による処理が終了したならば、再翻訳処理手段13
は、翻訳単位結果情報格納領域10bの再翻訳処理をする
のに必要な情報を基に参照情報不足翻訳単位を全て検出
する。次に、再翻訳処理手段13は、検出された参照情報
不足翻訳単位が参照すべき共通情報の定義情報名を共通
情報格納領域10aの参照情報不足翻訳単位の参照すべき
共通情報に関する情報から取り出して、参照すべき共通
情報の定義情報が現在共通情報定義情報ファイル3に存
在するか否かを調べる。その結果、参照情報不足翻訳単
位が参照すべき全ての共通情報の定義情報が共通情報定
義情報ファイル3に存在したならば、再翻訳処理手段13
は、この参照情報不足翻訳単位を再翻訳可能とする。参
照情報不足翻訳単位が参照すべき共通情報の定義情報が
共通情報定義情報ファイル3に存在しなければ、再翻訳
処理手段13は、当該共通情報の定義情報名を基に共通情
報格納領域10aからこの参照情報不足翻訳単位が参照す
べき共通情報を定義している翻訳単位を検索し、当該共
通情報を定義している翻訳単位が見つかったならば当該
翻訳単位の翻訳単位名を基に翻訳単位結果情報格納領域
10bを参照して当該翻訳単位が参照情報不足翻訳単位で
あるかどうかを調べる。当該翻訳単位が参照情報不足翻
訳単位であれば、再翻訳処理手段13は、この参照情報不
足翻訳単位(共通情報定義情報ファイル3には参照すべ
き共通情報の定義情報の全ては存在していないが、参照
すべき共通情報を定義している参照情報不足翻訳単位が
存在する翻訳単位)を順序制限付きで再翻訳可能とす
る。
再翻訳処理手段13は、翻訳単位結果情報格納領域10bか
ら検出した全ての参照情報不足翻訳単位について上記の
処理を行って、再翻訳可能な翻訳単位および翻訳順序制
限付きで再翻訳可能な翻訳単位を全て選択する。次に、
再翻訳処理手段13は、選択した全ての再翻訳可能な翻訳
単位および順序制限付きで再翻訳可能な翻訳単位の間の
共通情報の定義と参照との依存関係を調べ、共通情報の
定義を含む翻訳単位を当該共通情報の参照を含む翻訳単
位よりも前に翻訳するように選択した翻訳単位の翻訳順
序を並びに替えた後に、選択した翻訳単位の再翻訳処理
を翻訳処理手段11に指示する。
ら検出した全ての参照情報不足翻訳単位について上記の
処理を行って、再翻訳可能な翻訳単位および翻訳順序制
限付きで再翻訳可能な翻訳単位を全て選択する。次に、
再翻訳処理手段13は、選択した全ての再翻訳可能な翻訳
単位および順序制限付きで再翻訳可能な翻訳単位の間の
共通情報の定義と参照との依存関係を調べ、共通情報の
定義を含む翻訳単位を当該共通情報の参照を含む翻訳単
位よりも前に翻訳するように選択した翻訳単位の翻訳順
序を並びに替えた後に、選択した翻訳単位の再翻訳処理
を翻訳処理手段11に指示する。
次に、共通情報定義情報ファイル3が第2図(c)に示
すようになっているときに、第2図(a)および(b)
に示す原始プログラム2aおよび2bを翻訳する場合につい
て具体的に説明する。
すようになっているときに、第2図(a)および(b)
に示す原始プログラム2aおよび2bを翻訳する場合につい
て具体的に説明する。
第2図(a)に示す原始プログラム2aは、翻訳単位名が
Aで共通情報B1および共通情報C1の参照を含む翻訳単位
21と、翻訳単位名がBで共通情報B1の定義を含む翻訳単
位22と、翻訳単位名がCで共通情報C1の定義および共通
情報E1の参照を含む翻訳単位23と、翻訳単位名がDで共
通情報H1の参照を含む翻訳単位24との4個の翻訳単位か
らなる原始プログラム2である。
Aで共通情報B1および共通情報C1の参照を含む翻訳単位
21と、翻訳単位名がBで共通情報B1の定義を含む翻訳単
位22と、翻訳単位名がCで共通情報C1の定義および共通
情報E1の参照を含む翻訳単位23と、翻訳単位名がDで共
通情報H1の参照を含む翻訳単位24との4個の翻訳単位か
らなる原始プログラム2である。
第2図(b)に示す原始プログラム2bは、翻訳単位名が
Eで共通情報E1の定義を含む翻訳単位25と、翻訳単位名
がFで共通情報B1の参照を含む翻訳単位26と、翻訳単位
名がGで共通情報I1の参照を含む翻訳単位27との3個の
翻訳単位からなる原始プログラム2である。
Eで共通情報E1の定義を含む翻訳単位25と、翻訳単位名
がFで共通情報B1の参照を含む翻訳単位26と、翻訳単位
名がGで共通情報I1の参照を含む翻訳単位27との3個の
翻訳単位からなる原始プログラム2である。
第2図(c)に示す共通情報定義情報ファイル3には、
翻訳単位名がHで共通情報H1の定義情報h1および共通情
報H2の定義情報h2を含む共通情報定義情報4hが格納され
ている。
翻訳単位名がHで共通情報H1の定義情報h1および共通情
報H2の定義情報h2を含む共通情報定義情報4hが格納され
ている。
なお、原始プログラム2aおよび原始プログラム2bの各々
の翻訳単位は、翻訳処理中に参照すべき共通情報の定義
情報が共通情報定義情報ファイル3に存在すれば当該共
通情報の定義情報を参照することにより翻訳されて目的
プログラムが生成されるものとし、また、目的プログラ
ムが生成された翻訳単位において定義されている共通情
報の定義情報は共通情報定義情報ファイル3に出力され
るものとする。
の翻訳単位は、翻訳処理中に参照すべき共通情報の定義
情報が共通情報定義情報ファイル3に存在すれば当該共
通情報の定義情報を参照することにより翻訳されて目的
プログラムが生成されるものとし、また、目的プログラ
ムが生成された翻訳単位において定義されている共通情
報の定義情報は共通情報定義情報ファイル3に出力され
るものとする。
コンパイラ10の翻訳処理手段11は、まず、原始プログラ
ム2aを入力し、原始プログラム2a内の記述に従って翻訳
処理を翻訳単位21,22,23および24の翻訳順序で翻訳単位
毎に行う。
ム2aを入力し、原始プログラム2a内の記述に従って翻訳
処理を翻訳単位21,22,23および24の翻訳順序で翻訳単位
毎に行う。
最初に翻訳処理が行われる翻訳単位21の翻訳処理中に共
通情報B1の参照が現れたならば、翻訳処理手段11は、共
通情報定義情報ファイル3を検索して共通情報B1の定義
情報b1が存在するか否かを調べる。ここでは、共通情報
B1の定義情報b1は共通情報定義情報ファイル3内に存在
しないので、翻訳処理手段11は、参照すべき共通情報B1
の定義情報b1が共通情報定義情報ファイル3に存在しな
いことと参照すべき共通情報B1に関する情報とを翻訳単
位名Aとともに共通情報格納領域10aに格納する。共通
情報C1の参照が現れた場合にも、翻訳処理手段11は、共
通情報B1の参照が現れた場合と同様の処理を行う。翻訳
単位21は、参照すべき共通情報B1の定義情報b1および共
通情報C1の定義情報c1が存在しないために、目的プログ
ラムは生成されない。
通情報B1の参照が現れたならば、翻訳処理手段11は、共
通情報定義情報ファイル3を検索して共通情報B1の定義
情報b1が存在するか否かを調べる。ここでは、共通情報
B1の定義情報b1は共通情報定義情報ファイル3内に存在
しないので、翻訳処理手段11は、参照すべき共通情報B1
の定義情報b1が共通情報定義情報ファイル3に存在しな
いことと参照すべき共通情報B1に関する情報とを翻訳単
位名Aとともに共通情報格納領域10aに格納する。共通
情報C1の参照が現れた場合にも、翻訳処理手段11は、共
通情報B1の参照が現れた場合と同様の処理を行う。翻訳
単位21は、参照すべき共通情報B1の定義情報b1および共
通情報C1の定義情報c1が存在しないために、目的プログ
ラムは生成されない。
翻訳単位21の翻訳処理が終了すると、翻訳結果情報処理
手段12は、翻訳単位名A,目的プログラムの生成ができな
かったこと,参照情報不足翻訳単位であるので翻訳単位
21を再翻訳処理するのに必要な情報等からなる翻訳単位
21の翻訳単位結果情報を翻訳単位結果情報格納領域10b
に格納する。
手段12は、翻訳単位名A,目的プログラムの生成ができな
かったこと,参照情報不足翻訳単位であるので翻訳単位
21を再翻訳処理するのに必要な情報等からなる翻訳単位
21の翻訳単位結果情報を翻訳単位結果情報格納領域10b
に格納する。
次に翻訳処理される翻訳単位22は共通情報B1の定義を含
むので、翻訳処理手段11は、翻訳単位22が定義している
共通情報B1に関する情報を翻訳単位名Bとともに共通情
報格納領域10aに格納する。翻訳単位22は、共通情報B1
の定義を含むだけなので目的プログラムが生成される。
翻訳単位22の目的プログラムが生成されると、翻訳処理
手段11は、共通情報B1の定義情報b1と翻訳単位名Bとか
らなる共通情報定義情報4bを共通情報定義情報ファイル
3に出力する。
むので、翻訳処理手段11は、翻訳単位22が定義している
共通情報B1に関する情報を翻訳単位名Bとともに共通情
報格納領域10aに格納する。翻訳単位22は、共通情報B1
の定義を含むだけなので目的プログラムが生成される。
翻訳単位22の目的プログラムが生成されると、翻訳処理
手段11は、共通情報B1の定義情報b1と翻訳単位名Bとか
らなる共通情報定義情報4bを共通情報定義情報ファイル
3に出力する。
翻訳単位22の翻訳が終了すると、翻訳結果情報処理手段
12は、翻訳単位名B,目的プログラムの生成ができたこと
等からなる翻訳単位22の翻訳単位結果情報を翻訳単位結
果情報格納領域10bに格納する。
12は、翻訳単位名B,目的プログラムの生成ができたこと
等からなる翻訳単位22の翻訳単位結果情報を翻訳単位結
果情報格納領域10bに格納する。
原始プログラム2aおよび2bの全ての翻訳単位に対して、
翻訳処理手段11および翻訳結果情報処理手段12は同様の
処理を行う。
翻訳処理手段11および翻訳結果情報処理手段12は同様の
処理を行う。
上記の処理の結果、翻訳単位22,24,25および26は目的プ
ログラムが生成され、翻訳単位21,23および27は翻訳処
理手段11による翻訳処理時に参照すべき共通情報の定義
情報が共通情報定義情報ファイル3に存在しないために
目的プログラムは生成されない。
ログラムが生成され、翻訳単位21,23および27は翻訳処
理手段11による翻訳処理時に参照すべき共通情報の定義
情報が共通情報定義情報ファイル3に存在しないために
目的プログラムは生成されない。
したがって、翻訳単位結果情報格納領域10bにおいて、
翻訳単位21,23および27の翻訳単位結果情報は、翻訳単
位21,23および27が参照情報不足翻訳単位であることを
示している。
翻訳単位21,23および27の翻訳単位結果情報は、翻訳単
位21,23および27が参照情報不足翻訳単位であることを
示している。
また、共通情報定義情報ファイル3には、翻訳単位名H
と共通情報H1の定義情報h1および共通情報H2の定義情報
h2とからなる共通情報定義情報4hと、翻訳単位名Bと共
通情報B1の定義情報b1とからなる共通情報定義情報4b
と、翻訳単位名Eと共通情報E1の定義情報e1とからなる
共通情報定義情報4eとが格納されている。
と共通情報H1の定義情報h1および共通情報H2の定義情報
h2とからなる共通情報定義情報4hと、翻訳単位名Bと共
通情報B1の定義情報b1とからなる共通情報定義情報4b
と、翻訳単位名Eと共通情報E1の定義情報e1とからなる
共通情報定義情報4eとが格納されている。
なお、共通情報格納領域10aには、各翻訳単位21,22,23,
24,25,26および27毎に参照すべき共通情報が共通情報定
義情報ファイル3に存在するか否か,参照すべき共通情
報に関する情報および定義している共通情報に関する情
報が格納されている。
24,25,26および27毎に参照すべき共通情報が共通情報定
義情報ファイル3に存在するか否か,参照すべき共通情
報に関する情報および定義している共通情報に関する情
報が格納されている。
原始プログラム2aおよび2bの全ての翻訳単位についての
翻訳処理手段11および翻訳結果情報処理手段12による処
理が終了すると、再翻訳処理手段13は、翻訳単位結果情
報格納領域10bの各翻訳単位の翻訳単位結果情報を基
に、参照情報不足翻訳単位(参照情報不足翻訳単位の翻
訳単位名)を検出する。ここでは、参照情報不足翻訳単
位21,23および27の翻訳単位名A,CおよびGが検出され
る。
翻訳処理手段11および翻訳結果情報処理手段12による処
理が終了すると、再翻訳処理手段13は、翻訳単位結果情
報格納領域10bの各翻訳単位の翻訳単位結果情報を基
に、参照情報不足翻訳単位(参照情報不足翻訳単位の翻
訳単位名)を検出する。ここでは、参照情報不足翻訳単
位21,23および27の翻訳単位名A,CおよびGが検出され
る。
続いて、再翻訳処理手段13は、まず、参照情報不足翻訳
単位21の翻訳単位名Aを基に共通情報格納領域10aから
参照情報不足翻訳単位21が参照すべき共通情報B1および
C1に関する情報を取り出す。次に、再翻訳処理手段13
は、取り出した共通情報B1およびC1に関する情報を基に
共通情報B1の定義情報b1および共通情報C1の定義情報c1
が現在共通情報定義情報ファイル3に存在するか否かを
調べる。共通情報定義情報ファイル3に共通情報B1の定
義情報b1は存在するが、共通情報C1の定義情報c1は存在
しないので、再翻訳処理手段13は、次に、共通情報格納
領域10aを検索して共通情報C1を定義している翻訳単位
が存在するかどうかを調べる。定義している共通情報C1
に関する情報を持っている翻訳単位名Cの翻訳単位23が
存在するので、再翻訳処理手段13は、続いて、翻訳単位
結果情報格納領域10bの翻訳単位23の翻訳単位結果情報
を参照して翻訳単位23が参照情報不足翻訳単位であるこ
とを認識し、翻訳単位21を翻訳順序制限付きで再翻訳可
能とする。
単位21の翻訳単位名Aを基に共通情報格納領域10aから
参照情報不足翻訳単位21が参照すべき共通情報B1および
C1に関する情報を取り出す。次に、再翻訳処理手段13
は、取り出した共通情報B1およびC1に関する情報を基に
共通情報B1の定義情報b1および共通情報C1の定義情報c1
が現在共通情報定義情報ファイル3に存在するか否かを
調べる。共通情報定義情報ファイル3に共通情報B1の定
義情報b1は存在するが、共通情報C1の定義情報c1は存在
しないので、再翻訳処理手段13は、次に、共通情報格納
領域10aを検索して共通情報C1を定義している翻訳単位
が存在するかどうかを調べる。定義している共通情報C1
に関する情報を持っている翻訳単位名Cの翻訳単位23が
存在するので、再翻訳処理手段13は、続いて、翻訳単位
結果情報格納領域10bの翻訳単位23の翻訳単位結果情報
を参照して翻訳単位23が参照情報不足翻訳単位であるこ
とを認識し、翻訳単位21を翻訳順序制限付きで再翻訳可
能とする。
再翻訳処理手段13は、翻訳単位23および27についても同
様の処理を行う。
様の処理を行う。
この結果、翻訳単位23は、参照すべき共通情報E1の定義
情報e1が共通情報定義情報ファイル3に存在するので、
再翻訳可能とされる。
情報e1が共通情報定義情報ファイル3に存在するので、
再翻訳可能とされる。
また、翻訳単位27は、参照すべき共通情報11の定義情報
i1が共通情報報定義情報ファイル3に存在せず、かつ、
共通情報11を定義している参照情報不足翻訳単位もない
ので、再翻訳不可能とされる。
i1が共通情報報定義情報ファイル3に存在せず、かつ、
共通情報11を定義している参照情報不足翻訳単位もない
ので、再翻訳不可能とされる。
したがって、再翻訳処理手段13は、参照情報不足翻訳単
位21,23および27のうち、翻訳順序制限付きで再翻訳可
能な翻訳単位21および再翻訳可能な翻訳単位23を選択し
て、翻訳単位21に含まれる共通情報B1および共通情報C1
の参照と、翻訳単位23に含まれる共通情報C1の定義およ
び共通情報E1の参照との依存関係を調べて、共通情報C1
の定義を含む翻訳単位23を共通情報C1の参照を含む翻訳
単位21の前に翻訳するように翻訳順序を入れ替えて、翻
訳単位23,21の翻訳順序での翻訳単位23および21の再翻
訳を翻訳処理手段11に指示する。
位21,23および27のうち、翻訳順序制限付きで再翻訳可
能な翻訳単位21および再翻訳可能な翻訳単位23を選択し
て、翻訳単位21に含まれる共通情報B1および共通情報C1
の参照と、翻訳単位23に含まれる共通情報C1の定義およ
び共通情報E1の参照との依存関係を調べて、共通情報C1
の定義を含む翻訳単位23を共通情報C1の参照を含む翻訳
単位21の前に翻訳するように翻訳順序を入れ替えて、翻
訳単位23,21の翻訳順序での翻訳単位23および21の再翻
訳を翻訳処理手段11に指示する。
以上説明したように本発明は、共通情報の定義と参照と
を別々の翻訳単位に記述可能な高級プログラミング言語
で記述された原始プログラムの翻訳において、翻訳処理
中に参照すべき共通情報および定義している共通情報に
関する情報を翻訳単位毎に格納するとともに各翻訳単位
の翻訳処理終了後に参照すべき共通情報の定義情報が生
成されていないために翻訳できなかった翻訳単位はその
旨を示す翻訳単位結果情報を格納しておきこれらの情報
を基に参照すべき共通情報の定義情報が生成されていな
いために翻訳できなかった翻訳単位の再翻訳を行うよう
にしたことにより、利用者は翻訳単位の翻訳処理順序を
意識して原始プログラムを記述したりコンパイラに対し
て翻訳順序を指示したりしなくてもよいという効果があ
る。
を別々の翻訳単位に記述可能な高級プログラミング言語
で記述された原始プログラムの翻訳において、翻訳処理
中に参照すべき共通情報および定義している共通情報に
関する情報を翻訳単位毎に格納するとともに各翻訳単位
の翻訳処理終了後に参照すべき共通情報の定義情報が生
成されていないために翻訳できなかった翻訳単位はその
旨を示す翻訳単位結果情報を格納しておきこれらの情報
を基に参照すべき共通情報の定義情報が生成されていな
いために翻訳できなかった翻訳単位の再翻訳を行うよう
にしたことにより、利用者は翻訳単位の翻訳処理順序を
意識して原始プログラムを記述したりコンパイラに対し
て翻訳順序を指示したりしなくてもよいという効果があ
る。
第1図は本発明の一実施例の翻訳処理方式が適用された
コンパイラの構成を示すブロック図、 第2図は本実施例の翻訳処理方式の動作を説明するため
の図である。 図において、 1……入力原始プログラムファイル、 2,2a,2b……原始プログラム、 3……共通情報定義情報ファイル、 4……共通情報定義情報、 10……コンパイラ、 10a……共通情報格納領域、 10b……翻訳単位結果情報格納領域、 11……翻訳処理手段、 12……翻訳結果情報処理手段、 13……再翻訳処理手段、 21,22,23,24,25,26,27……翻訳単位である。
コンパイラの構成を示すブロック図、 第2図は本実施例の翻訳処理方式の動作を説明するため
の図である。 図において、 1……入力原始プログラムファイル、 2,2a,2b……原始プログラム、 3……共通情報定義情報ファイル、 4……共通情報定義情報、 10……コンパイラ、 10a……共通情報格納領域、 10b……翻訳単位結果情報格納領域、 11……翻訳処理手段、 12……翻訳結果情報処理手段、 13……再翻訳処理手段、 21,22,23,24,25,26,27……翻訳単位である。
Claims (1)
- 【請求項1】翻訳単位間の共通情報の定義と参照とを別
々の翻訳単位に記述可能であり共通情報の参照を含む翻
訳単位が参照すべき共通情報の定義を含む翻訳単位を翻
訳して生成される共通情報の定義情報を参照して翻訳さ
れる高級プログラミング言語で記述された原始プログラ
ムを入力して目的プログラムを生成するコンパイラにお
いて、 前記原始プログラムの翻訳処理を翻訳単位毎に行い翻訳
処理中の翻訳単位が共通情報の参照を含む場合には参照
すべき共通情報の定義情報が共通情報定義情報ファイル
に存在するか否かと参照すべき共通情報に関する情報と
を翻訳処理中の翻訳単位の翻訳単位名とともに共通情報
格納領域に格納して参照すべき共通情報の定義情報が前
記共通情報定義情報ファイルに存在すれば前記共通情報
定義情報ファイルから参照すべき共通情報の定義情報を
入力して翻訳し翻訳処理中の翻訳単位が共通情報の定義
を含む場合には定義している共通情報に関する情報を翻
訳処理中の翻訳単位の翻訳単位名とともに共通情報格納
領域に格納して当該翻訳単位の目的プログラムが生成さ
れたならばその結果生成される定義している共通情報の
定義情報を前記共通情報定義情報ファイルに出力する翻
訳処理手段と、 この翻訳処理手段により1つの翻訳単位の翻訳処理が終
了する毎に目的プログラムが生成されたか否かと参照す
べき共通情報の定義情報が前記共通情報定義情報ファイ
ルに存在しないために目的プログラムが生成されなかっ
た翻訳単位であれば再度翻訳処理をするのに必要な情報
とを当該翻訳単位の翻訳単位名とともに翻訳単位結果情
報として翻訳単位結果情報格納領域に格納する翻訳結果
情報処理手段と、 前記原始プログラムの全ての翻訳単位についての前記翻
訳処理手段および前記翻訳結果情報処理手段による処理
が終了した後に前記翻訳単位結果情報格納領域に格納さ
れた翻訳単位結果情報を基に参照すべき共通情報の定義
情報が前記共通情報定義情報ファイルに存在しなかった
ために目的プログラムが生成されなかった翻訳単位を抜
き出して当該翻訳単位の前記共通情報格納領域の参照す
べき共通情報に関する情報を基に前記共通情報定義情報
ファイルおよび前記共通情報格納領域を参照することに
より前記共通情報定義情報ファイルに参照すべき共通情
報の定義情報が存在しなかったために目的プログラムが
生成されなかった翻訳単位のうちから参照すべき共通情
報の定義情報が現在前記共通情報定義情報ファィルに存
在するために再翻訳可能な翻訳単位と参照すべき共通情
報の定義を含む翻訳単位との間の翻訳順序を入れ替える
ことで再翻訳可能な翻訳単位とを抽出して必要であれば
再翻訳処理の順序を入れ替えた後に再翻訳可能な翻訳単
位の前記翻訳単位結果情報格納領域の再翻訳処理をする
のに必要な情報を渡して前記翻訳処理手段に再翻訳可能
な翻訳単位の再翻訳処理を指示する再翻訳処理手段と を有することを特徴とする翻訳処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP24184788A JPH06100971B2 (ja) | 1988-09-27 | 1988-09-27 | 翻訳処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP24184788A JPH06100971B2 (ja) | 1988-09-27 | 1988-09-27 | 翻訳処理方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0290233A JPH0290233A (ja) | 1990-03-29 |
| JPH06100971B2 true JPH06100971B2 (ja) | 1994-12-12 |
Family
ID=17080392
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP24184788A Expired - Lifetime JPH06100971B2 (ja) | 1988-09-27 | 1988-09-27 | 翻訳処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06100971B2 (ja) |
-
1988
- 1988-09-27 JP JP24184788A patent/JPH06100971B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0290233A (ja) | 1990-03-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0458052B2 (ja) | ||
| JPS6047606B2 (ja) | プログラム入力装置 | |
| JPH06100971B2 (ja) | 翻訳処理方式 | |
| JPS6027941A (ja) | 名標生成システム | |
| JPH11154093A (ja) | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 | |
| JP3031767B2 (ja) | 自然言語処理装置 | |
| JP2607975B2 (ja) | デバック方式 | |
| JPH0695890A (ja) | コンパイラにおける名前置換方式 | |
| JPS63269229A (ja) | 文字列操作系命令コンパイル処理方式 | |
| JPH01246633A (ja) | コンパイルユニットの検査方式 | |
| JPH04178829A (ja) | ロードモジュール内のファイル定義情報編集方式 | |
| JPH0769830B2 (ja) | 展開制御機能をもつプログラム翻訳装置 | |
| JPS62166432A (ja) | プログラム翻訳制御方式 | |
| JPH0421175A (ja) | 機械翻訳装置 | |
| JPH04106626A (ja) | プログラムの翻訳処理装置 | |
| JPH08263272A (ja) | 共通ルーチンのライブラリ登録方法およびそのための装置 | |
| JPS61245232A (ja) | 自動編集方法 | |
| JPH01211120A (ja) | 構文解析処理方法 | |
| JP2006085585A (ja) | ソースコード検索プログラム及び検索用テーブル作成プログラム | |
| JPH0750442B2 (ja) | 外部行番号によるデバッグ方式 | |
| JPS62204337A (ja) | プログラム翻訳装置 | |
| JPH02230330A (ja) | 推論装置 | |
| JPS62282334A (ja) | オブジエクト・リストへの名標表示方式 | |
| JPS63217433A (ja) | プログラム実行制御方式 | |
| JPH0421176A (ja) | 機械翻訳装置 |