JPS62182843A - 高速コンパイル/リンク方式 - Google Patents

高速コンパイル/リンク方式

Info

Publication number
JPS62182843A
JPS62182843A JP2295286A JP2295286A JPS62182843A JP S62182843 A JPS62182843 A JP S62182843A JP 2295286 A JP2295286 A JP 2295286A JP 2295286 A JP2295286 A JP 2295286A JP S62182843 A JPS62182843 A JP S62182843A
Authority
JP
Japan
Prior art keywords
text
address
operand
output
instruction
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
Application number
JP2295286A
Other languages
English (en)
Inventor
Shigeru Yamamoto
茂 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2295286A priority Critical patent/JPS62182843A/ja
Publication of JPS62182843A publication Critical patent/JPS62182843A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンピュータシステムにおけるコンパイル/リ
ンク方式に関する。
一般に、コンパイラのコード生成には、複数パス処理方
式と1パス処理力式とが知られている。
複数パス処理方式は、生成するテキストの命令のオペラ
ンドに入るアドレスを決定してからテキスト出力を行な
うもので、コード最適化がし易い等の長所を持つが、そ
の反面、中間コードの書込み。
取出しに多くの入出力時間を要する欠点がある。
これに対し、1パス処理力式は、コード最適化にはあま
り適さないが、コンパイラの構成が面単になると共に、
コンパイル時間も複数パス方式より短くなるという優れ
た利点を有している。
〔従来の技術〕
ところで、従来の1パス処理力式においては、生成する
テキストの命令のオペランドに入るアドレスが未決定の
場合、その命令のテキストの出力を一時中止して、それ
以前の命令のテキストを先に出力し、命令のオペランド
に入るアドレスが決定した時点で、オペランドに入るア
ドレスの決定した命令のテキストだけを出力していた。
以下、図面を用いて、テキスト出力における従来の動作
について説明する。
従来の1パス処理方式におけるテキスト出力処理の流れ
を示す第5図において、ステップ51は、オペランドに
埋込まれるアドレスが決定しているか否かを判定するも
ので、アドレスが決定していると判定されたときはステ
ップ52を実行してテキストを出力する。また、アドレ
スが決定していないと判定されたときは、ステップ53
を実行してテキストをアドレス決定後に出力するため、
命令を一時格納しておく。
第6図は第5図のステップ52の詳細な動作を示す流れ
図である。第6図に示すように、先ず、ステップ61に
おいてテキストが出力用バッファ内での最初のテキスト
であるか否かを判定する。この判定の結果、最初のテキ
ストであると判明したときは、ステップ62を実行して
テキストを出力用バッファ内に格納する0次にステップ
63を実行して出力用バッツァ内に格納したテキストの
ロケーションを覚えておく。
またステップ61でテキストが出力用バッファ内で最初
のテキストでない、つまり既にテキストが出力用バッフ
ァに格納されていると判明したときは、ステップ64を
実行して格納しようとするテキストのロケーションが、
既に出力用バソフプ内に格納されている最後のテキスト
のロケーションと連続しているか否かを判定する。この
判定ステップで連続していると判定されたときは、ステ
ップ65を実行してテキストを出力用バッファに追加す
る。またステップ66で出力用バッファに追加したテキ
ストのロケーションを覚えておき、次のステップ67で
出力用バッファにこれ以上テキストを格納できるか否か
を判定する。そして格納できないときは、ステップ68
を実行して出力用バッファ内のテキストをファイルに出
力する。また、ステップ67でまだ格納できると判定さ
れたときはファイルへの出力は行なわない。
一方、ステップ64でテキストのロケーションが出力用
バッファ内の最後のテキストのロケーションと連続して
いないと判定されたときは、ステップ69を実行して出
力用バッファ内に格納されているテキストをファイルに
出力する。そして次にステップ70で新テキストを出力
用バッファに格納し、次のステップ71で格納したテキ
ストのロケーションを覚えておく。
〔発明が解決しようとする問題点〕
上述したように、従来のコンパイラのコード生成におけ
る1パス処理の出力では、命令のオペランドに入るアド
レスが未決定の場合は、それまでの命令についてのテキ
ストを出力し、命令のオペランドに入るアドレスが決定
した時点で、その命令のテキストのみを出力するため、
テキストは細分化され、そのためテキストを格納する記
憶装置へのアクセス効率が悪くなる。
また、リンク処理においてもテキストが細分化されてい
ることから、テキストを入力するとき、テキストが格納
されている記憶装置へのアクセス効率が悪くなる。
以上より、従来のコンパイル処理/リンク処理では、い
ずれの処理においてもテキストが格納される記憶装置へ
のアクセス効率が悪くなるため、コンパイル/リンク処
理の性能低下をもたらすという欠点がある。
本発明はこのような従来の1パス処理方式の持つ欠点を
解決したもので、その目的は、出力されたテキストの細
分化を防ぐことにより、コンパイル/リンク処理を高速
に行ない得る高速コンパイル/リンク方式を提供するこ
とにある。
〔問題点を解決するための手段〕
本発明は上記目的を達成するために、コンパイル処理に
おいて生成するテキストの命令のオペランドに埋込むア
ドレスが未決定のときは該オペランドにアドレスを埋込
まないままの命令のテキストを出力するテキスト出力手
段と、 コンパイル処理において前記オペランドに埋込むアドレ
スが決定したとき該アドレスを一種の再配置情報に変換
して出力する再配置情報出力手段と、 リンク処理において前記テキスト出力手段の出力と前記
再配置情報出力手段の出力とを入力し、前記再配置情報
形式に含まれるオペランドに埋込むアドレス情報に基づ
いて対応するテキストの命令のオペランド内にアドレス
を埋込むオペランド埋込手段とを有する。
〔作用〕
コンパイル処理において生成するテキストの命令のオペ
ランドに埋込むアドレスが未決定の場合、そのオペラン
ドにアドレスを埋込まないままの命令のテキストを出力
するようにしたので、テキストが細分化されることがな
くなる。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の実施例のブロック図であり、lはコン
パイラ、2はテキスト出力手段、3は再配置情報出力手
段、4はテキスト記憶手段、5は再配置情報記憶手段、
6はテキスト入力手段、7は再配置情報入力手段、8は
リンカ、9はオペランド埋込手段である。
コンパイラ1はテキストおよび再配置情報を出力するも
ので、テキスト出力手段2と再配置情報出力手段3とを
含む。テキスト出力手段2は、生成するテキストの命令
のオペランドに埋込まれるアドレスが未決定のときは、
オペランドにアドレスを埋込まないままの命令のテキス
トを出力するもので、この出力されたテキストはテキス
ト記憶手段4に格納される。また、再配置情報出力手段
3は、オペランドに埋込まれるアドレスが決定したとき
にオペランドに埋込むアドレスを再配置情報の特別な形
式である例えばオペランドアドレス変換情報に変換して
出力する等の処理を行ない、この出力された再配置情報
は再配置情報記憶手段5に格納される。
リンカ8は、テキスト入力手段6と、再配置情報入力手
段7と、オペランド埋込手段9とを含む。
テキスト入力手段6は、テキスト記憶手段4からテキス
トを取出し、再配置情報入力手段7は再配置情報記憶手
段5から再配置情報を取出す。また、オペランド埋込手
段9は、再配置情報入力手段7で取出された再配置情報
に含まれるオペランドアドレス変換情報に基づいてオペ
ランドに埋込むアドレスを決定して、テキスト入力手段
6から取出された対応するテキスト内の命令のオペラン
ドに埋込む処理を行なう。
第2図はテキスト出力手段2の処理例を示す流れ図、第
3図は再配置情報出力手段3の処理例を示す流れ図、第
4図はオペランド埋込手段9の処理例を示す流れ図であ
り、以下各図を参照して本実施例の動作を説明する。
コンパイラ1の入力ソースの解析、所定のテーブルの作
成処理の終了等によりテキスト出力手段2が起動される
と、テキスト出力手段2は第2図に示したように、先ず
ステップ21においてテキスト内の命令のオペランドに
埋込まれるアドレスが決定しているか否かを判定する。
そして、未決定の場合は、ステップ22を実行してオペ
ランドにアドレスを埋込まないままの命令のテキストを
作成し、次のステップ24でこのテキストをテキスト記
憶手段4に出力する。また、ステップ21でオペランド
に埋込まれるアドレスが決定しているときは、ステップ
23を実行してオペランドにアドレスを埋込んだ命令の
テキストを作成し、次のステップ24でテキストをテキ
スト記憶手段4に出力する。なお、上記ステップ24は
従来の処理におけるステップ52と同じである。
このように本実施例では、オペランドに埋込まれるアド
レスが未決定の場合にアドレスを埋込まないままの命令
のテキストを作成、出力しているので、従来におけるテ
キスト出力では不連続になる場合も、本実施例ではテキ
スト出力は連続になり、テキストが細分化されることは
ない。
また、コンパイラlの処理の実行に伴って再配置情報出
力手段3が起動されると、再配置情報出力手段3は第3
図に示すように、先ずステップ31においてコンパイル
1内の図示しない手段から与えられる入力データがオペ
ランドに埋込まれるアドレスであるか否かを判定する。
この判定の結果、オペランドに埋込まれるアドレスであ
るときは、ステップ32を実行してオペランドに埋込む
アドレス情報を再配置情報の特別な形式となるオペラン
ドアドレス変換情報に変換する。なお、このオペランド
アドレス変換情報は、形式的には通常の再配置情報と同
じであり、その中には、埋込むべきアドレス情報と埋込
み先の情報等が含まれる。そして、次のステップ34で
このオペランドアドレス情報を再配置情報として再配置
情報記憶手段5に出力する。
一方、ステップ31の判定において、入力データがオペ
ランドのアドレスでない、つまり通常の再配置情報であ
ると判定されたときは、ステップ33を実行して通常の
再配置情報を作成し、次のステップ34でその再配置情
報を再配置情報記憶手段5に出力する。
以上のような処理が行なわれることにより、テキスト記
憶手段4には、オペランドにアドレスが埋込まれた命令
のテキストと、埋込まれていない命令のテキストとが順
次記憶され、そのアドレスが埋込まれていない命令のテ
キストに対応する一種の再配置情報および通常の再配置
情報が再配置情報記憶手段5に順次記憶されることにな
る。
さて、コンパイル1の処理が終了し制御がリンカ8に渡
り、リンカ8の処理の実行に伴ってオペランド埋込手段
9が起動されると、オペランド埋込手段9は第4図に示
すように、先ずステップ42において再配置情報入力手
段7を介して読取った再配置情報が一種の再配置情報で
あるオペランドアドレス変換情報であるか否かを判定す
る。そして、オペランドアドレス変換情報であるときは
、ステップ42を実行してそのオペランドアドレス変換
情報からオペランドに埋込むアドレスを取出し、テキス
ト入力手段6を介して読取った対応するテキストの命令
のオペランドにそのアドレスを埋込む、また、ステップ
41でオペランドアドレス変換情報でなく通常の再配置
情報であると判定されたときは、ステップ43を実行し
て通常の再配置処理を実行する。
〔発明の効果〕
以上説明したように、本発明では、テキスト内の命令の
オペランドに埋込むアドレスが未決定の場合にはアドレ
スを埋込まないままの命令のテキストを出力しているの
で、テキストの細分化が防げ、それによってコンパイル
/リンク処理を高速化できるという効果がある。なお、
アドレスが決定されたときには埋込むべきアドレス情報
と埋込み先の情報とを含む一種の再配置情報を出力して
おり、リンカ処理においてはその再配置情報からアドレ
スを対応する命令のオペランドに埋込むことができる。
【図面の簡単な説明】
第1図は本発明の実施例のブロック図、第2図はテキス
ト出力手段2の処理例を示す流れ図、 第3図は再配置情報出力手段3の処理例を示す流れ図、 第4図はオペランド埋込手段9の処理例を示す流れ図、 第5図は従来の1パス処理方式におけるテキスト出力処
理の流れ図および、 第6図は第5図のステップ52の詳細な他作を示す流れ
図であ為。 図において、1・・・コンパイラ、2・・・テキスト出
力手段、3・・・再配置情報出力手段、4・・・テキス
ト記憶手段、5・・・再配置情報記憶手段、6・・・テ
キスト入力手段、7・・・再配置情報入力手段、8・・
・リンカ、9・・・オペランド埋込手段。

Claims (1)

  1. 【特許請求の範囲】 コンパイル処理において生成するテキストの命令のオペ
    ランドに埋込むアドレスが未決定のときは該オペランド
    にアドレスを埋込まないままの命令のテキストを出力す
    るテキスト出力手段と、コンパイル処理において前記オ
    ペランドに埋込むアドレスが決定したとき該アドレスを
    一種の再配置情報に変換して出力する再配置情報出力手
    段と、 リンク処理において前記テキスト出力手段の出力と前記
    再配置情報出力手段の出力とを入力し、前記再配置情報
    に含まれるオペランドに埋込むアドレス情報に基づいて
    対応するテキストの命令のオペランド内にアドレスを埋
    込むオペランド埋込手段とを具備した高速コンパイル/
    リンク方式。
JP2295286A 1986-02-06 1986-02-06 高速コンパイル/リンク方式 Pending JPS62182843A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2295286A JPS62182843A (ja) 1986-02-06 1986-02-06 高速コンパイル/リンク方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2295286A JPS62182843A (ja) 1986-02-06 1986-02-06 高速コンパイル/リンク方式

Publications (1)

Publication Number Publication Date
JPS62182843A true JPS62182843A (ja) 1987-08-11

Family

ID=12096948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2295286A Pending JPS62182843A (ja) 1986-02-06 1986-02-06 高速コンパイル/リンク方式

Country Status (1)

Country Link
JP (1) JPS62182843A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003523891A (ja) * 2000-02-26 2003-08-12 フェデラル−モーガル コーポレイション エレクトロルミネセンスパネルを用いた乗物用室内照明システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003523891A (ja) * 2000-02-26 2003-08-12 フェデラル−モーガル コーポレイション エレクトロルミネセンスパネルを用いた乗物用室内照明システム
USRE42340E1 (en) 2000-02-26 2011-05-10 Federal Mogul World Wide, Inc. Vehicle interior lighting systems using electroluminescent panels

Similar Documents

Publication Publication Date Title
JPS6312029A (ja) 情報処理装置
JPH11242597A (ja) Javaバイトコードデータのフローグラフの生成方法
JP2001166947A (ja) コンパイル処理方式
JP3721780B2 (ja) 複数のパイプライン処理機構を有するデータ処理装置
JPH08305581A (ja) プログラム変換装置及びプロセッサ
JPH02195429A (ja) 情報処理装置
JPS62182843A (ja) 高速コンパイル/リンク方式
JPH0683615A (ja) 命令セットエミュレーションを行う計算機
CN102360306A (zh) 高级语言代码中循环数据流图提取优化信息处理方法
JP3495230B2 (ja) エミュレーション処理方式
JP2002268877A (ja) クロック制御方法及び当該クロック制御方法を用いた情報処理装置
JPH04268928A (ja) エミュレーション装置及び半導体装置
JP3323147B2 (ja) コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体
JPH0228174B2 (ja)
JPH0272407A (ja) ラダー・プログラム変換装置
JPH09171467A (ja) エミュレーション装置及びその方法
JP3018783B2 (ja) コンパイル方式
JPH02146688A (ja) データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法
JP2786689B2 (ja) コンパイラ処理方法
JPS5829051A (ja) 演算処理装置
JPH04248624A (ja) プログラム変換処理装置
JP2001202252A (ja) プログラム処理方法および記録媒体
JPS61208129A (ja) 命令先読制御方式
JPH01209542A (ja) 論理検証装置
JPH03186933A (ja) 言語処理システムのシンボル処理方式