JPH05100866A - コンパイル・リンク方式 - Google Patents

コンパイル・リンク方式

Info

Publication number
JPH05100866A
JPH05100866A JP26155291A JP26155291A JPH05100866A JP H05100866 A JPH05100866 A JP H05100866A JP 26155291 A JP26155291 A JP 26155291A JP 26155291 A JP26155291 A JP 26155291A JP H05100866 A JPH05100866 A JP H05100866A
Authority
JP
Japan
Prior art keywords
external identifier
target program
hash value
processing
program
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
JP26155291A
Other languages
English (en)
Inventor
Tomiko Nakajima
登美子 中島
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.)
KOBE NIPPON DENKI SOFTWARE KK
NEC Software Kobe Ltd
Original Assignee
KOBE NIPPON DENKI SOFTWARE KK
NEC Software Kobe Ltd
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 KOBE NIPPON DENKI SOFTWARE KK, NEC Software Kobe Ltd filed Critical KOBE NIPPON DENKI SOFTWARE KK
Priority to JP26155291A priority Critical patent/JPH05100866A/ja
Publication of JPH05100866A publication Critical patent/JPH05100866A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 リンク時における外部識別子の探索速度を高
速化する。 【構成】 ソースプログラムf1を入力し、目的プログ
ラムf2を生成するコンパイル処理S1において、識別
子探索のために算出したハッシュ値を外部識別子に対す
る従来の情報に添加した形式の外部識別子情報(ハッシ
ュ値付き外部識別子情報形式t1)を目的プログラムf
2に出力する。コンパイル処理S1が生成した目的プロ
グラム群F2を入力し、ロードモジュールf3を生成す
るリンク処理S2では、外部識別子を探索する際に、新
たにハッシュ値を算出せずに目的プログラム内の外部識
別子情報に含まれるハッシュ値を利用して外部識別子探
索を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソースプログラムを入
力して目的プログラムを生成し、さらに目的プログラム
群からロードモジュールを生成するコンパイル・リンク
方式に関し、特にリンク速度の向上につながる外部識別
子の探索速度の高速化に関する。
【0002】
【従来の技術】従来のコンパイル・リンク方式で識別子
の探索を行なう方式として図5に示されるような方式が
知られている。すなわち目的プログラムf2を入力し、
外部識別子情報を認識する度に適切なハッシュ関数を用
いて、ある数値(ハッシュ値)とその名前を対応付け、
そのハッシュ値をもとに、その外部識別子がすでに出現
した外部識別子か否かを調べていた。
【0003】
【発明が解決しようとする課題】上述した従来のコンパ
イル・リンク方式は、リンク時に、入力した目的プログ
ラム中に存在する外部識別子情報の処理を行う度にハッ
シュ値を計算する必要があり、外部結合の強い大規模な
プログラムにおいては、リンク速度の低下を引き起こし
やすいという欠点がある。一般にシステム開発時のテス
ト段階においては、何度もコンパイル・リンクすること
があり、コンパイル・リンク速度はシステム開発時の生
産性に大きく影響する。
【0004】一方、コンパイル処理では、一般的に識別
子の探索のためにハッシュ値を計算する方法がすでにと
られており、ハッシュ値を外部識別子情報に添加する処
理を加えてもさほどCPU時間の使用量の低下はおこら
ないという特徴がある。
【0005】
【課題を解決するための手段】本発明は、ソースプログ
ラムをコンパイルすることにより目的プログラムを生成
し、さらに、その目的プログラムをリンクすることによ
りロードモジュールを作成するコンパイル・リンク方式
において、ソースプログラム中に出現する識別子を探索
する段階でハッシュ値を算出し、外部識別子の情報を生
成する際に、外部識別子に対するハッシュ値を付加した
形式の外部識別子情報を生成し目的プログラムに出力す
るコンパイル手段と、前記目的プログラムを入力し、外
部識別子を探索する際には、新たにハッシュ値を計算せ
ずに目的プログラム内のハッシュ値を利用して外部識別
子探索を行なうリンク手段とを有している。
【0006】
【実施例】次に本発明について図面を参照して説明す
る。
【0007】図1は、本発明の一実施例の処理の流れで
ある。本実施例では、コンパイル手段S1がソースプロ
グラムf1から目的プログラムf2を生成し、複数の目
的プログラムf2の目的プログラム群F2からリンク手
段S2がロードモジュールf3を生成する。
【0008】本実施例の各処理の内容と制御の流れを図
2、図3、および図4を参照しながら説明する。
【0009】コンパイル手段S2は、図2に示すよう
に、初期化処理C1、ソースレコード入力処理C2、ソ
ースファイル終了判定処理C3、翻訳処理C4および終
了処理C5から構成され、ソースプログラムf1のファ
イルを入力し、識別子処理を行う際にハッシュテーブル
を生成し翻訳処理C4を行ない、ハッシュ値付き外部識
別子情報(図3)を生成する。
【0010】各処理の内容を以下に示す。
【0011】(初期化処理C1)ソースプログラムf1
のソースファイルをオープンし、目的プログラムf2の
ファイルをオープンし、制御をソースレコード入力処理
C2に移す。
【0012】(ソースレコード入力処理C2)ソースフ
ァイルからソースレコードを入力し、制御をソースファ
イル入力終了判定処理C3に移す。
【0013】(ソースファイル入力終了判定処理C3)
ソースレコード入力処理C2でソースプログラムf1を
入力しようとして、ファイルの終わりであることが認識
されたら、制御を終了処理C5に移す。ファイルの終わ
りでなければ、翻訳処理C4に制御を移す。
【0014】(翻訳処理C4)ソースレコード入力処理
C2で入力したソースレコード中に識別子が存在すれば
識別子に対応するハッシュ値を計算し、識別子の探索を
行ない、外部識別子の定義・参照であればハッシュ値付
き外部識別子情報を目的プログラムf2に出力する。さ
らに、識別子処理以外の翻訳処理を行い目的プログラム
f2を目的プログラムファイルに出力し、制御をソース
レコード入力処理C2に戻す。
【0015】(終了処理C5)ソースプログラムf1の
ファイル、目的プログラムf2のファイルをクローズ
し、処理を終える。
【0016】リンク手段S2は、コンパイル手段S1に
よって作成された目的プログラム群F2を入力し、ハッ
シュテーブルを作成・参照しながら、外部識別子結合処
理C5を行う。リンク手段S2は、図4に示すように初
期化処理E1、目的プログラム入力処理E2、目的プロ
グラム終了判定処理E3、外部識別子結合処理E4、終
了処理E5から構成されている。
【0017】各処理の内容を以下に示す。
【0018】(初期化処理E1)ロードモジュールf3
をオープンし、制御を目的プログラム入力処理E2に移
す。
【0019】(目的プログラム入力処理E2)コンパイ
ル手段S1で作成された目的プログラム群F2を順次オ
ープンし、さらに目的プログラムファイルを入力し、制
御を目的プログラム入力終了判定処理E3に移す。
【0020】(目的プログラム入力終了判定処理E3)
目的プログラム入力処理E2で目的プログラムを入力し
ようとして、ファイルの終りであることが認識された
ら、制御を終了処理E5に移す。ファイルの終わりでな
ければ、外部識別子結合処理E4に制御を移す。
【0021】(外部識別子結合処理E4)目的プログラ
ム入力処理E2で入力した目的プログラム中にハッシュ
値付き外部識別子情報が存在すれば、ハッシュ値をもと
にハッシュテーブルを生成・参照して、外部識別子の処
理をおこない、さらに外部識別子処理以外のリンク処理
を行いロードモジュールf3に出力し、制御を目的プロ
グラム入力処理E2に戻す。
【0022】(終了処理E5)目的プログラム群F2、
ロードモジュールf3をクローズし、処理を終える。
【0023】
【発明の効果】以上説明したように本発明は、ソースプ
ログラムを入力し目的プログラムを生成し、さらに目的
プログラム群を入力ロードモジュールを生成する従来の
コンパイラ・リンクの処理方式に加えて、コンパイル時
に算出した識別子のハッシュ値を目的プログラムに出力
することにより、目的プログラムをリンクする過程にお
いて、リンク時に行うハッシュ値の算出を省略させるこ
とでリンク速度が向上できる効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例の全体の流れ図である。
【図2】図1中のコンパイル手段S1の処理の流れ図で
ある。
【図3】図2中の翻訳処理C4で出力されるハッシュ値
付き外部識別子情報の形式を示す図である。
【図4】図1中のリンク手段S2の処理の流れ図であ
る。
【図5】従来コンパイル・リンク方式の流れ図である。
【符号の説明】
C1 初期化処理 C2 ソースレコード入力処理 C3 ソースファイル入力判定処理 C4 翻訳処理 C5 終了処理 E1 初期化処理 E2 目的プログラム入力処理 E3 目的プログラム入力判定処理 E4 外部識別子結合処理 E5 終了処理 f1 ソースプログラム f2 目的プログラム F2 目的プログラム群 f3 ロードモジュール S1 コンパイル手段 S2 リンク手段

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムをコンパイルすること
    により目的プログラムを生成し、さらに、その目的プロ
    グラムをリンクすることによりロードモジュールを作成
    するコンパイル・リンク方式において、ソースプログラ
    ム中に出現する識別子を探索する段階でハッシュ値を算
    出し、外部識別子の情報を生成する際に、外部識別子に
    対するハッシュ値を付加した形式の外部識別子情報を生
    成し目的プログラムに出力するコンパイル手段と、前記
    目的プログラムを入力し、外部識別子を探索する際に
    は、新たにハッシュ値を計算せずに目的プログラム内の
    ハッシュ値を利用して外部識別子探索を行なうリンク手
    段とを有することを特徴とするコンパイル・リンク方
    式。
JP26155291A 1991-10-09 1991-10-09 コンパイル・リンク方式 Pending JPH05100866A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26155291A JPH05100866A (ja) 1991-10-09 1991-10-09 コンパイル・リンク方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26155291A JPH05100866A (ja) 1991-10-09 1991-10-09 コンパイル・リンク方式

Publications (1)

Publication Number Publication Date
JPH05100866A true JPH05100866A (ja) 1993-04-23

Family

ID=17363485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26155291A Pending JPH05100866A (ja) 1991-10-09 1991-10-09 コンパイル・リンク方式

Country Status (1)

Country Link
JP (1) JPH05100866A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404179B2 (en) 2004-09-16 2008-07-22 International Business Machines Corporation Fast source file to line number table association

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404179B2 (en) 2004-09-16 2008-07-22 International Business Machines Corporation Fast source file to line number table association
US7984030B2 (en) 2004-09-16 2011-07-19 International Business Machines Corporation Fast source file to line number table association

Similar Documents

Publication Publication Date Title
JP4118456B2 (ja) プログラム言語処理システム、コード最適化方法、及び機械読み出し可能な記憶媒体
CN102929853A (zh) 基于Excel表单关联的DCS项目数据生成系统和方法
JPH11250112A (ja) ハードウェア合成方法およびハードウェア合成装置並びにハードウェア合成プログラムを記録した記録媒体
JP3318051B2 (ja) 翻訳処理方法
JPH05100866A (ja) コンパイル・リンク方式
CN106598839A (zh) 一种面向目标代码的程序静态分析方法
JPH05204699A (ja) デバッグ時識別子探索方式
JP2000122876A (ja) 情報処理装置
JP2585793B2 (ja) コンパイラシステム
JPH0683597A (ja) オブジェクト指向プログラム開発装置およびオブジェクト指向プログラム開発方法
JPH0744397A (ja) プログラム処理高速化方式
JPH0414144A (ja) コンパイル処理方法
JPS64725B2 (ja)
CN115729623A (zh) 参数本地化方法及装置
JPH0561687A (ja) コンパイラの処理方式
JPH0795275B2 (ja) コンパイル処理装置
JPH04248624A (ja) プログラム変換処理装置
JPH02231638A (ja) オブジエクト指向データベース管理システムにおけるメツセージ処理方法
JPH11161500A (ja) 実行時依存解析を行う目的プログラムの生成方法
WO1997007452A1 (en) Programmable compiler
JPS63201833A (ja) 未解決ラベル参照解決方式
JPH05313910A (ja) 機械語命令生成方式
JPH0371229A (ja) プログラム制御装置
JPH0319041A (ja) 制御項目自動管理方式
JPH04330521A (ja) クロスリファレンスリスト生成方式