JPH1011299A - 遅延評価機能付きコンパイル装置、コンパイル方法、およびコンパイルプログラムを記憶する媒体 - Google Patents

遅延評価機能付きコンパイル装置、コンパイル方法、およびコンパイルプログラムを記憶する媒体

Info

Publication number
JPH1011299A
JPH1011299A JP16775896A JP16775896A JPH1011299A JP H1011299 A JPH1011299 A JP H1011299A JP 16775896 A JP16775896 A JP 16775896A JP 16775896 A JP16775896 A JP 16775896A JP H1011299 A JPH1011299 A JP H1011299A
Authority
JP
Japan
Prior art keywords
token
delay evaluation
evaluation
delay
read
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
JP16775896A
Other languages
English (en)
Inventor
Masaya Obata
雅哉 小畑
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 JP16775896A priority Critical patent/JPH1011299A/ja
Publication of JPH1011299A publication Critical patent/JPH1011299A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】前方参照を指示する命令文がどのような構文解
析の要素かにかかわらず、該命令文を含むソースプログ
ラムを構文解析し、効率良くコンパイルする。 【解決手段】トークン選択読み込み部4がソースファイ
ル1から読み込んだトークンが、遅延評価の開始位置か
ら終了位置の間のトークンであるか否かを遅延評価開始
位置判定部5と遅延評価終端位置判定部6とにより判定
し、遅延評価区間以外のトークンは評価処理部9により
オブジェクト化してオブジェクトファイル10へ出力
し、遅延評価区間のトークンは遅延評価部分記憶部7に
より遅延評価トークン記憶テーブル2に記憶し、読み込
んだトークンが遅延評価の展開位置のトークンであると
遅延評価展開位置判定部8が判定した後は、トークン選
択読み込み部4は遅延評価トークン記憶テーブル2に記
憶したトークンを読み出し、評価処理部9によりオブジ
ェクト化してオブジェクトファイル10へ出力する。

Description

【発明の詳細な説明】
【発明の属する技術分野】本発明は、原始プログラムを
翻訳して目的プログラムを生成するコンパイル装置に関
し、特に、前方参照が発生する可能性のある原始プログ
ラムを翻訳して目的プログラムを生成する遅延評価機能
付きコンパイル装置、コンパイル方法、およびコンパイ
ルプログラムを記憶する媒体に関する。
【0001】
【従来の技術】「佐々政孝著、プログラミング言語処理
系、岩波書店、1989年10月31日発行」には、
「前方参照」と「バックパッチング」について記載され
ている。
【0002】前方参照とは、ソースプログラム中の命令
文が後から定義されるものを参照することを指示する方
法であり、例えばgoto文の飛び先のラベルが該go
to文より後で定義されている場合がこれに当てはま
る。
【0003】このような前方参照を指示するgoto文
を含むソースプログラムを頭から順番に入力して目的プ
ログラムを生成する場合には、該goto文に関しては
飛び先の番地をその場では決定することができないた
め、とりあえずそのgoto文の位置を覚えておき、後
で飛び先のラベルが実際に定義されたときに、先ほど覚
えておいたgoto文の飛び先の欄に正しい番地を埋め
込む。この方法をバックパッチングと呼ぶ。
【0004】
【発明が解決しようとする課題】この従来のバックパッ
チング方法は、goto文のラベルを処理対象としてい
る。該バックパッチング方法においては、goto文の
ラベルが必要とする情報が、定義されたラベル位置だけ
なので、該ラベルが未定義であっても構文解析を続ける
ことができる。
【0005】例えば、以下のようなソースプログラムに
おいて、 goto文のラベルL1が未定義であっても、構文解析
の要素としては該ラベルを含んだgoto文の全てを識
別子として扱うことで構文解析木を作成することができ
るので、構文解析処理を続行することができる。
【0006】しかしながら、以下のようなgoto文を
含まないソースプログラムでは、 Tがどのような構文解析の要素なのかを特定することが
できないため、構文解析木を作成することができず、こ
のような命令文が出現した時点で構文解析処理を続行す
ることができなくなるという問題点があった。
【0007】本発明の目的は、前方参照を指示する命令
文がどのような構文解析の要素であるかにかかわらず、
該命令文を含むソースプログラムを構文解析し、効率良
くコンパイルすることができるコンパイル装置を提供す
ることにある。
【0008】
【課題を解決するための手段】本発明の第1の遅延評価
機能付きコンパイル装置は、ソースプログラムに含まれ
るトークン列からトークンを順次読み込むトークン選択
読み込み部と、前記トークン選択読み込み部が読み込ん
だトークンが、予め前記トークン列の任意の区間に設定
した遅延評価区間内のトークンである場合には、該トー
クンを遅延評価トークン記憶テーブルに記憶する遅延評
価部分記憶部と、前記遅延評価部分記憶部により前記遅
延評価トークン記憶テーブルに記憶されたトークンを順
次読み込み、オブジェクト化してオブジェクトファイル
へ出力する評価処理部とから構成されている。
【0009】本発明の第2の遅延評価機能付きコンパイ
ル装置は、第1の遅延評価機能付きコンパイル装置にお
いて、前記評価処理部が、さらに、前記トークン選択読
み込み部が読み込んだトークンが、予め前記トークン列
の任意の区間に設定した遅延評価区間外のトークンであ
る場合には、該トークンをオブジェクト化してオブジェ
クトファイルへ出力することを特徴とする。
【0010】本発明の第3の遅延評価機能付きコンパイ
ル装置は、第2の遅延評価機能付きコンパイル装置にお
いて、さらに、前記トークン選択読み込み部が読み込ん
だトークンが予め前記トークン列の任意の箇所に設定し
た遅延評価の開始位置のトークンに一致するか否かを判
定し、一致した場合には読み込んだトークンに対応する
オブジェクトを生成し、オブジェクトファイルへ出力す
る遅延評価開始位置判定部と、前記ソースプログラムか
ら前記遅延評価開始位置判定部がオブジェクト化したト
ークンの位置以降のトークンを順次読み込み、該トーク
ンが予め前記トークン列の任意の箇所に設定した遅延評
価の終了位置のトークンに一致するか否かを判定する遅
延評価終了位置判定部とを備え、前記遅延評価部分記憶
部が、前記遅延評価終了位置判定部が前記遅延評価の終
了位置のトークンに一致するトークンを読み込んだ時点
で、該遅延評価終了位置判定部がそれまでに読み込んだ
トークンを定義情報なしに変更することができる状態に
まで評価して前記遅延評価トークン記憶テーブルに記憶
することを特徴とする。
【0011】本発明の第4の遅延評価機能付きコンパイ
ル装置は、第3の遅延評価機能付きコンパイル装置にお
いて、さらに、前記トークン選択読み込み部が読み込ん
だトークンが、予め設定した遅延評価の展開位置のトー
クンに一致するか否かを判定する遅延評価展開位置判定
部を備え、前記トークン選択読み込み部が、読み込んだ
トークンが前記遅延評価展開位置判定部により遅延評価
の展開位置のトークンに一致すると判定された場合、そ
の後は前記遅延評価トークン記憶テーブルからトークン
を読み込み、読み込んだトークンを前記評価処理部によ
ってオブジェクト化して前記オブジェクトファイルへ出
力することを特徴とする。
【0012】本発明の第5の遅延評価機能付きコンパイ
ル装置は、第4の遅延評価機能付きコンパイル装置にお
いて、さらに、前記トークン選択読み込み部が、前記遅
延評価トークン記憶テーブルからトークンを読み込むこ
とができない場合には、前記ソースプログラムからトー
クンを読み込むことを特徴とする。
【0013】本発明の第1の遅延評価機能付きコンパイ
ル方法は、ソースプログラムに含まれるトークン列から
トークンを順次読み込むトークン選択読み込みステップ
と、前記トークン選択読み込みステップが読み込んだト
ークンが、予め前記トークン列の任意の区間に設定した
遅延評価区間内のトークンである場合には、該トークン
を遅延評価トークン記憶テーブルに記憶する遅延評価部
分記憶ステップと、前記遅延評価部分記憶ステップによ
り前記遅延評価トークン記憶テーブルに記憶されたトー
クンを順次読み込み、オブジェクト化してオブジェクト
ファイルへ出力する評価処理ステップとを含む。
【0014】本発明の第2の遅延評価機能付きコンパイ
ル方法は、第1の遅延評価機能付きコンパイル方法にお
いて、前記評価処理ステップが、さらに、前記トークン
選択読み込みステップが読み込んだトークンが、予め前
記トークン列の任意の区間に設定した遅延評価区間外の
トークンである場合には、該トークンをオブジェクト化
してオブジェクトファイルへ出力することを特徴とす
る。
【0015】本発明の第3の遅延評価機能付きコンパイ
ル方法は、第2の遅延評価機能付きコンパイル方法にお
いて、さらに、前記トークン選択読み込みステップが読
み込んだトークンが予め前記トークン列の任意の箇所に
設定した遅延評価の開始位置のトークンに一致するか否
かを判定し、一致した場合には読み込んだトークンに対
応するオブジェクトを生成し、オブジェクトファイルへ
出力する遅延評価開始位置判定ステップと、前記ソース
プログラムから前記遅延評価開始位置判定ステップがオ
ブジェクト化したトークンの位置以降のトークンを順次
読み込み、該トークンが予め前記トークン列の任意の箇
所に設定した遅延評価の終了位置のトークンに一致する
か否かを判定する遅延評価終了位置判定ステップとを含
み、前記遅延評価部分記憶ステップが、前記遅延評価終
了位置判定ステップが前記遅延評価の終了位置のトーク
ンに一致するトークンを読み込んだ時点で、該遅延評価
終了位置判定ステップがそれまでに読み込んだトークン
を定義情報なしに変更することができる状態にまで評価
して前記遅延評価トークン記憶テーブルに記憶すること
を特徴とする。
【0016】本発明の第4の遅延評価機能付きコンパイ
ル方法は、第3の遅延評価機能付きコンパイル方法にお
いて、さらに、前記トークン選択読み込みステップが読
み込んだトークンが、予め設定した遅延評価の展開位置
のトークンに一致するか否かを判定する遅延評価展開位
置判定ステップを含み、前記トークン選択読み込みステ
ップが、読み込んだトークンが前記遅延評価展開位置判
定ステップにより遅延評価の展開位置のトークンに一致
すると判定された場合、その後は前記遅延評価トークン
記憶テーブルからトークンを読み込み、読み込んだトー
クンを前記評価処理ステップによってオブジェクト化し
て前記オブジェクトファイルへ出力することを特徴とす
る。
【0017】本発明の第5の遅延評価機能付きコンパイ
ル方法は、第4の遅延評価機能付きコンパイル方法にお
いて、さらに、前記トークン選択読み込みステップが、
前記遅延評価トークン記憶テーブルからトークンを読み
込むことができない場合には、前記ソースプログラムか
らトークンを読み込むことを特徴とする。
【0018】本発明の第1の媒体は、ソースプログラム
に含まれるトークン列からトークンを順次読み込むトー
クン選択読み込みステップと、前記トークン選択読み込
みステップが読み込んだトークンが、予め前記トークン
列の任意の区間に設定した遅延評価区間内のトークンで
ある場合には、該トークンを遅延評価トークン記憶テー
ブルに記憶する遅延評価部分記憶ステップと、前記遅延
評価部分記憶ステップにより前記遅延評価トークン記憶
テーブルに記憶されたトークンを順次読み込み、オブジ
ェクト化してオブジェクトファイルへ出力する評価処理
ステップとを含む処理をコンピュータに行わせるプログ
ラムを記憶する。
【0019】本発明の第2の媒体は、第1の媒体におい
て、前記評価処理ステップが、さらに、前記トークン選
択読み込みステップが読み込んだトークンが、予め前記
トークン列の任意の区間に設定した遅延評価区間外のト
ークンである場合には、該トークンをオブジェクト化し
てオブジェクトファイルへ出力することを特徴とする。
【0020】本発明の第3の媒体は、第2の媒体におい
て、さらに、前記プログラムが、前記トークン選択読み
込みステップが読み込んだトークンが予め前記トークン
列の任意の箇所に設定した遅延評価の開始位置のトーク
ンに一致するか否かを判定し、一致した場合には読み込
んだトークンに対応するオブジェクトを生成し、オブジ
ェクトファイルへ出力する遅延評価開始位置判定ステッ
プと、前記ソースプログラムから前記遅延評価開始位置
判定ステップがオブジェクト化したトークンの位置以降
のトークンを順次読み込み、該トークンが予め前記トー
クン列の任意の箇所に設定した遅延評価の終了位置のト
ークンに一致するか否かを判定する遅延評価終了位置判
定ステップとを含み、前記遅延評価部分記憶ステップ
が、前記遅延評価終了位置判定ステップが前記遅延評価
の終了位置のトークンに一致するトークンを読み込んだ
時点で、該遅延評価終了位置判定ステップがそれまでに
読み込んだトークンを定義情報なしに変更することがで
きる状態にまで評価して前記遅延評価トークン記憶テー
ブルに記憶することを特徴とする。
【0021】本発明の第4の媒体は、第3の媒体におい
て、さらに、前記プログラムが、前記トークン選択読み
込みステップが読み込んだトークンが、予め設定した遅
延評価の展開位置のトークンに一致するか否かを判定す
る遅延評価展開位置判定ステップを含み、前記トークン
選択読み込みステップが、読み込んだトークンが前記遅
延評価展開位置判定ステップにより遅延評価の展開位置
のトークンに一致すると判定された場合、その後は前記
遅延評価トークン記憶テーブルからトークンを読み込
み、読み込んだトークンを前記評価処理ステップによっ
てオブジェクト化して前記オブジェクトファイルへ出力
することを特徴とする。
【0022】本発明の第5の媒体は、第4の媒体におい
て、さらに、前記トークン選択読み込みステップが、前
記遅延評価トークン記憶テーブルからトークンを読み込
むことができない場合には、前記ソースプログラムから
トークンを読み込むことを特徴とする。
【0023】
【発明の実施の形態】以下、本発明の実施例について、
図を参照しながら詳細に説明する。
【0024】図1を参照すると、本発明の第1の実施例
である遅延評価機能付きコンパイル装置は、前方参照が
生じる可能性がある高級言語で記述されたソースプログ
ラムを含むソースファイル1と、遅延評価トークン記憶
テーブル2と、ソースプログラム解析部3と、オブジェ
クトファイル10とを含み、ソースプログラム解析部3
は、トークン選択読み込み部4と、遅延評価開始位置判
定部5と、遅延評価終端位置判定部6と、遅延評価部分
記憶部7と、遅延評価展開位置判定部8と、評価処理部
9とを含む。
【0025】トークン選択読み込み部4は、遅延評価展
開位置判定部8からの制御情報によって、ソースファイ
ル1と遅延評価トークン記憶テーブル2とのいずれか
ら、識別子・リテラル・文字列・予約語・演算子等の字
句要素(以下、トークンとする)を読み込むかを決定
し、該トークンを読み込む処理を行う。
【0026】遅延評価開始位置判定部5は、トークン選
択読み込み部4から渡されるトークン列の種別および順
番から遅延評価を開始するか否かを判定し、遅延評価を
開始するトークンであると判定した場合には、該トーク
ンを評価し、必要なオブジェクトをオブジェクトファイ
ル10へ出力する。
【0027】遅延評価終端位置判定部6は、ソースファ
イル1からトークンを読み込み、読み込んだトークン列
の種別および順番から遅延評価を終了するか否かを判定
する。
【0028】遅延評価部分記憶部7は、遅延評価終端位
置判定部6から渡されるトークンを、該トークンの定義
情報が不要な部分までの評価を予め解決してから遅延評
価トークン記憶テーブル2に記憶する。
【0029】遅延評価展開位置判定部8は、遅延評価開
始位置判定部5または遅延評価終端位置判定部6から渡
されるトークン列の種別および順番から遅延評価させる
部分を展開するか否かを判定する。
【0030】評価処理部9は、遅延評価展開位置判定部
8から渡されるトークンを評価し、必要なオブジェクト
をオブジェクトファイル10へ出力する。
【0031】以下に本発明の第1の実施例である遅延評
価機能付きコンパイル装置について、図1〜図4を参照
して説明する。
【0032】図3は、仮想的な高級言語で記述されたソ
ースプログラムの例であり、アルファベットは単なるト
ークンを、<refer Z> はZを参照するトークンを、<def
ineZ>はZを定義するトークンを示す。
【0033】図4は、図3のソースプログラムがどのよ
うにコンパイルされていくかを示すタイミングチャート
であり、C’はC定義情報が不要な部分まで評価したト
ークンを、()で囲まれたアルファベットはそれぞれのト
ークンに対応するオブジェクトを、... はそれ以降にト
ークンが続くことを示す。
【0034】また、この仮想的な高級言語で記述された
ソースプログラムの例では、遅延評価開始位置はB、遅
延評価終端位置はD、遅延評価展開位置はGであるとす
る。
【0035】今、ソースファイル1の初期状態が図4
(1)であるとする。
【0036】初期状態において、トークン読み込み部4
は、ソースファイル1からAトークンの読み込み処理を
行い、該Aトークンを遅延評価開始位置判定部5へ送る
(ステップS1、ステップS2、およびステップS
4)。
【0037】遅延評価開始位置判定部5は、Aトークン
は遅延評価開始位置でないことを判定して、該Aトーク
ンを遅延評価展開位置判定部8へ送る(ステップS
6)。
【0038】遅延評価展開位置判定部8は、Aトークン
は遅延評価展開位置でないことを判定して、該Aトーク
ンを評価処理部9へ送る(ステップS12)。
【0039】評価処理部9は、Aトークンを受け取り、
該Aトークンに対応するオブジェクトを生成して、オブ
ジェクトファイル10へ出力する(ステップS14)。
【0040】この状態が図4(2)である。
【0041】次に、トークン読み込み部4は、ソースフ
ァイル1からBトークンの読み込み処理を行い、該Bト
ークンを遅延評価開始位置判定部5へ送る(ステップS
1、ステップS2、およびステップS4)。
【0042】遅延評価開始位置判定部5は、Bトークン
が遅延評価開始位置であることを判定して、該Bトーク
ンを評価し、必要なオブジェクトを生成して、オブジェ
クトファイル10へ出力する(ステップS6、およびス
テップS7)。
【0043】遅延評価終端位置判定部6は、ソースファ
イル1から<refer Z> トークンの読み込み処理を行い、
<refer Z> トークンが遅延評価終端位置でないことを判
定して、該<refer Z> トークンを遅延評価部分記憶部7
へ送る(ステップS8、およびステップ9)。
【0044】遅延評価部分記憶部7は、<refer Z> トー
クンは定義情報なしには変換することができないトーク
ンであることを判定して、<refer Z> トークンをそのま
ま遅延評価トークン記憶テーブル2に記憶する(ステッ
プS10、およびステップS11)。
【0045】この状態が図4(3)である。
【0046】次に、遅延評価終端位置判定部6は、ソー
スファイル1からCトークンの読み込み処理を行い、該
Cトークンが遅延評価終端位置でないことを判定して、
該Cトークンを遅延評価部分記憶部7へ送る(ステップ
S8、およびステップS9)。
【0047】遅延評価部分記憶部7は、Cトークンは定
義情報なしにC’トークンに変更することができるトー
クンであることを判定して、C’トークンを遅延評価ト
ークン記憶テーブル2に記憶する(ステップS10、お
よびステップS11)。ここで、Cトークンをそのまま
でなく、定義情報なしに変更することができる状態にま
で評価したC’トークンに変更してから遅延評価トーク
ン記憶テーブル2に記憶する点も本発明の特徴である。
【0048】この状態が図4(4)である。
【0049】次に、遅延評価終端位置判定部6は、ソー
スファイル1からDトークンの読み込み処理を行い、該
Dトークンが遅延評価終端位置であることを判定して、
該Dトークンを遅延評価展開位置判定部8へ送る(ステ
ップS8、およびステップS9)。
【0050】遅延評価展開位置判定部8は、Dトークン
は遅延評価展開位置でないことを判定して、該Dトーク
ンを評価処理部9へ送る(ステップS12)。
【0051】評価処理部9は、Dトークンを受け取り、
該Dトークンに対応するオブジェクトを生成して、オブ
ジェクトファイル10へ出力する(ステップS14)。
【0052】この状態が図4(5)である。
【0053】次に、トークン選択読み込み部4は、ソー
スファイル1からE、<define Z>、Fトークンの読み込
み処理を順次行い、E、<define Z>、Fトークンをそれ
ぞれ遅延評価開始位置判定部5へ送る(ステップS1、
ステップS2、およびステップS4)。
【0054】遅延評価開始位置判定部5は、E、<defin
e Z>、Fトークンがそれぞれ遅延評価開始位置でないこ
とを判定して、該E、<define Z>、Fトークンを遅延評
価展開位置判定部8へ送る(ステップS6)。
【0055】遅延評価展開位置判定部8は、E、<defin
e Z>、Fトークンがそれぞれ遅延評価展開位置でないこ
とを判定して、該E、<define Z>、Fトークンを評価処
理部9へ送る(ステップS12)。
【0056】評価処理部9は、E、<define Z>、Fトー
クンをそれぞれ受け取り、該E、<define Z>、Fトーク
ンに対応するオブジェクトを生成して、オブジェクトフ
ァイル10へ出力する(ステップS14)。
【0057】この状態が図4(6)である。
【0058】次に、トークン選択読み込み部4は、ソー
スファイル1からGトークンの読み込み処理を行い、G
トークンを遅延評価開始位置判定部5へ送る(ステップ
S1、ステップS2、およびステップS4)。
【0059】遅延評価開始位置判定部5は、Gトークン
は遅延評価開始位置でないことを判定して、該Gトーク
ンを遅延評価展開位置判定部8へ送る(ステップS
6)。
【0060】遅延評価展開位置判定部8は、Gトークン
が遅延評価展開位置であることを判定して、該Gトーク
ンを評価処理部9へ送る。また同時に、トークン選択読
み込み部4に対して、今後のトークン読み込み処理は遅
延評価トークン記憶テーブル2から行うという制御情報
を送る(ステップS12、およびステップS13)。
【0061】評価処理部9は、Gトークンを受け取り、
該Gトークンに対応するオブジェクトを生成して、オブ
ジェクトファイル10へ出力する(ステップS14)。
【0062】この状態が図4(7)である。
【0063】次に、トークン選択読み込み部4は、遅延
評価トークン記憶テーブル2から<refer Z> 、C’トー
クンの読み込み処理を順次行い、<refer Z> 、C’トー
クンをそれぞれ遅延評価開始位置判定部5へ送る(ステ
ップS1、ステップS3、およびステップS5)。
【0064】遅延評価開始位置判定部5は、<refer Z>
、C’トークンがそれぞれ遅延評価開始位置でないこ
とを判定して、該<refer Z> 、C’トークンを遅延評価
展開位置判定部8へ送る(ステップS6)。
【0065】遅延評価展開位置判定部8は、<refer Z>
、C’トークンがそれぞれ遅延評価展開位置でないこ
とを判定して、該<refer Z> 、C’トークンを評価処理
部9へ送る(ステップS12)。
【0066】評価処理部9は、<refer Z> 、C’トーク
ンを受け取り、該<refer Z> 、C’トークンに対応する
オブジェクトを生成して、オブジェクトファイル10へ
出力する(ステップS14)。
【0067】この状態が図4(8)である。
【0068】次に、トークン選択読み込み部4は、遅延
評価トークン記憶テーブル2からトークンを読み込もう
とするが、もはやトークンはないことを判定し、今後の
トークン読み込み処理はソースファイル1から行うとい
う制御情報を送る。そして、ソースファイル1からHト
ークンの読み込み処理を行い、Hトークンを遅延評価開
始位置判定部5へ送る(ステップS1、ステップS3、
ステップS15、ステップS2、およびステップS
4)。
【0069】遅延評価開始位置判定部5は、Hトークン
は遅延評価開始位置でないことを判定して、該Hトーク
ンを遅延評価展開位置判定部8へ送る(ステップS
6)。
【0070】遅延評価展開位置判定部8は、Hトークン
は遅延評価展開位置でないことを判定して、該Hトーク
ンを評価処理部9へ送る(ステップS12)。
【0071】評価処理部9は、Hトークンを受け取り、
該Hトークンに対応するオブジェクトを生成して、オブ
ジェクトファイル10へ出力する(ステップS14)。
【0072】この状態が図4(9)である。
【0073】以上により、本発明の第1の実施例である
遅延評価機能付きコンパイル装置の処理が完了する。
【0074】本発明の第1の実施例である遅延評価機能
付きコンパイル装置は、ソースプログラム解析部3が、
トークン選択読み込み部4、遅延評価開始位置判定部
5、遅延評価終端位置判定部6、遅延評価部分記憶部
7、遅延評価展開位置判定部8、およぴ評価処理部9と
を含み、前方参照が行われる可能性のある高級言語で記
述されたソースプログラム1の一部を遅延評価部分とし
て記憶し、該遅延評価部分を必要な個所で展開すること
によって、該ソースプログラムのコンパイル処理におけ
る走査を一度で済むようにすることにより、該コンパイ
ル処理を高速に実行することができる効果を有してい
る。
【0075】また、本発明の他の実施例である遅延評価
機能付きコンパイル装置として、図5に示すように、遅
延評価展開位置判定部8と遅延評価開始位置判定部4と
の処理順序を入れ替えたり、図6に示すように遅延評価
トークン記憶テーブル2を遅延評価トークン記憶ファイ
ル11に置き換えることができる。
【0076】
【発明の効果】以上説明したように、本発明の遅延評価
機能付きコンパイル装置、コンパイル方法、およびコン
パイルプログラムを記憶する媒体は、前方参照を指示す
る命令文がどのような構文解析の要素であるかにかかわ
らず、該命令文を含むソースプログラムを構文解析し、
効率良くコンパイルすることができる効果を有してい
る。
【図面の簡単な説明】
【図1】図1は、本発明の第1の実施例である遅延評価
機能付きコンパイル装置の構成を示すブロック図であ
る。
【図2】図2は、本発明の第1の実施例におけるソース
プログラム解析部3、トークン選択読み込み部4、遅延
評価開始位置判定部5、遅延評価終端位置判定部6、遅
延評価部分記憶部7、遅延評価展開位置判定部8、およ
び評価処理部9の処理を示す流れ図である。
【図3】図3は、本発明の第1の実施例における仮想的
な高級言語で記述されたソースプログラムを示す図であ
る。
【図4】図4は、第1の実施例において、ソースプログ
ラムがどのようにコンパイルされていくかを示すタイミ
ングチャートである。
【図5】図5は、本発明の他の実施例である遅延評価機
能付きコンパイル装置の構成を示すブロック図である。
【図6】図6は、本発明の他の実施例である遅延評価機
能付きコンパイル装置の構成を示すブロック図である。
【符号の説明】
1 ソースファイル 2 遅延評価トークン記憶テーブル 3 ソースプログラム解析部 4 トークン選択読み込み部 5 遅延評価開始位置判定部 6 遅延評価終端位置判定部 7 遅延評価部分記憶部 8 遅延評価展開位置判定部 9 評価処理部 10 オブジェクトファイル 11 遅延評価トークン記憶ファイル

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムに含まれるトークン列
    からトークンを順次読み込むトークン選択読み込み部
    と、 前記トークン選択読み込み部が読み込んだトークンが、
    予め前記トークン列の任意の区間に設定した遅延評価区
    間内のトークンである場合には、該トークンを遅延評価
    トークン記憶テーブルに記憶する遅延評価部分記憶部
    と、 前記遅延評価部分記憶部により前記遅延評価トークン記
    憶テーブルに記憶されたトークンを順次読み込み、オブ
    ジェクト化してオブジェクトファイルへ出力する評価処
    理部とを備えたことを特徴とする遅延評価機能付きコン
    パイル装置。
  2. 【請求項2】 前記評価処理部は、さらに、前記トーク
    ン選択読み込み部が読み込んだトークンが、予め前記ト
    ークン列の任意の区間に設定した遅延評価区間外のトー
    クンである場合には、該トークンをオブジェクト化して
    オブジェクトファイルへ出力することを特徴とする請求
    項1記載の遅延評価機能付きコンパイル装置。
  3. 【請求項3】 さらに、前記トークン選択読み込み部が
    読み込んだトークンが予め前記トークン列の任意の箇所
    に設定した遅延評価の開始位置のトークンに一致するか
    否かを判定し、一致した場合には読み込んだトークンに
    対応するオブジェクトを生成し、オブジェクトファイル
    へ出力する遅延評価開始位置判定部と、 前記ソースプログラムから前記遅延評価開始位置判定部
    がオブジェクト化したトークンの位置以降のトークンを
    順次読み込み、該トークンが予め前記トークン列の任意
    の箇所に設定した遅延評価の終了位置のトークンに一致
    するか否かを判定する遅延評価終了位置判定部とを備
    え、 前記遅延評価部分記憶部は、前記遅延評価終了位置判定
    部が前記遅延評価の終了位置のトークンに一致するトー
    クンを読み込んだ時点で、該遅延評価終了位置判定部が
    それまでに読み込んだトークンを定義情報なしに変更す
    ることができる状態にまで評価して前記遅延評価トーク
    ン記憶テーブルに記憶することを特徴とする請求項2記
    載の遅延評価機能付きコンパイル装置。
  4. 【請求項4】 さらに、前記トークン選択読み込み部が
    読み込んだトークンが、予め設定した遅延評価の展開位
    置のトークンに一致するか否かを判定する遅延評価展開
    位置判定部を備え、 前記トークン選択読み込み部は、読み込んだトークンが
    前記遅延評価展開位置判定部により遅延評価の展開位置
    のトークンに一致すると判定された場合、その後は前記
    遅延評価トークン記憶テーブルからトークンを読み込
    み、読み込んだトークンを前記評価処理部によってオブ
    ジェクト化して前記オブジェクトファイルへ出力するこ
    とを特徴とする請求項3記載の遅延評価機能付きコンパ
    イル装置。
  5. 【請求項5】 さらに、前記トークン選択読み込み部
    は、前記遅延評価トークン記憶テーブルからトークンを
    読み込むことができない場合には、前記ソースプログラ
    ムからトークンを読み込むことを特徴とする請求項4記
    載の遅延評価機能付きコンパイル装置。
  6. 【請求項6】 ソースプログラムに含まれるトークン列
    からトークンを順次読み込むトークン選択読み込みステ
    ップと、 前記トークン選択読み込みステップが読み込んだトーク
    ンが、予め前記トークン列の任意の区間に設定した遅延
    評価区間内のトークンである場合には、該トークンを遅
    延評価トークン記憶テーブルに記憶する遅延評価部分記
    憶ステップと、 前記遅延評価部分記憶ステップにより前記遅延評価トー
    クン記憶テーブルに記憶されたトークンを順次読み込
    み、オブジェクト化してオブジェクトファイルへ出力す
    る評価処理ステップとを含むことを特徴とする遅延評価
    機能付きコンパイル方法。
  7. 【請求項7】 前記評価処理ステップは、さらに、前記
    トークン選択読み込みステップが読み込んだトークン
    が、予め前記トークン列の任意の区間に設定した遅延評
    価区間外のトークンである場合には、該トークンをオブ
    ジェクト化してオブジェクトファイルへ出力することを
    特徴とする請求項6記載の遅延評価機能付きコンパイル
    方法。
  8. 【請求項8】 さらに、前記トークン選択読み込みステ
    ップが読み込んだトークンが予め前記トークン列の任意
    の箇所に設定した遅延評価の開始位置のトークンに一致
    するか否かを判定し、一致した場合には読み込んだトー
    クンに対応するオブジェクトを生成し、オブジェクトフ
    ァイルへ出力する遅延評価開始位置判定ステップと、 前記ソースプログラムから前記遅延評価開始位置判定ス
    テップがオブジェクト化したトークンの位置以降のトー
    クンを順次読み込み、該トークンが予め前記トークン列
    の任意の箇所に設定した遅延評価の終了位置のトークン
    に一致するか否かを判定する遅延評価終了位置判定ステ
    ップとを含み、 前記遅延評価部分記憶ステップは、前記遅延評価終了位
    置判定ステップが前記遅延評価の終了位置のトークンに
    一致するトークンを読み込んだ時点で、該遅延評価終了
    位置判定ステップがそれまでに読み込んだトークンを定
    義情報なしに変更することができる状態にまで評価して
    前記遅延評価トークン記憶テーブルに記憶することを特
    徴とする請求項7記載の遅延評価機能付きコンパイル方
    法。
  9. 【請求項9】 さらに、前記トークン選択読み込みステ
    ップが読み込んだトークンが、予め設定した遅延評価の
    展開位置のトークンに一致するか否かを判定する遅延評
    価展開位置判定ステップを含み、 前記トークン選択読み込みステップは、読み込んだトー
    クンが前記遅延評価展開位置判定ステップにより遅延評
    価の展開位置のトークンに一致すると判定された場合、
    その後は前記遅延評価トークン記憶テーブルからトーク
    ンを読み込み、読み込んだトークンを前記評価処理ステ
    ップによってオブジェクト化して前記オブジェクトファ
    イルへ出力することを特徴とする請求項8記載の遅延評
    価機能付きコンパイル方法。
  10. 【請求項10】 さらに、前記トークン選択読み込みス
    テップは、前記遅延評価トークン記憶テーブルからトー
    クンを読み込むことができない場合には、前記ソースプ
    ログラムからトークンを読み込むことを特徴とする請求
    項9記載の遅延評価機能付きコンパイル方法。
  11. 【請求項11】 ソースプログラムに含まれるトークン
    列からトークンを順次読み込むトークン選択読み込みス
    テップと、 前記トークン選択読み込みステップが読み込んだトーク
    ンが、予め前記トークン列の任意の区間に設定した遅延
    評価区間内のトークンである場合には、該トークンを遅
    延評価トークン記憶テーブルに記憶する遅延評価部分記
    憶ステップと、 前記遅延評価部分記憶ステップにより前記遅延評価トー
    クン記憶テーブルに記憶されたトークンを順次読み込
    み、オブジェクト化してオブジェクトファイルへ出力す
    る評価処理ステップとを含む処理をコンピュータに行わ
    せるプログラムを記憶する媒体。
  12. 【請求項12】 前記評価処理ステップは、さらに、前
    記トークン選択読み込みステップが読み込んだトークン
    が、予め前記トークン列の任意の区間に設定した遅延評
    価区間外のトークンである場合には、該トークンをオブ
    ジェクト化してオブジェクトファイルへ出力することを
    特徴とする請求項11記載の媒体。
  13. 【請求項13】 さらに、前記プログラムが、前記トー
    クン選択読み込みステップが読み込んだトークンが予め
    前記トークン列の任意の箇所に設定した遅延評価の開始
    位置のトークンに一致するか否かを判定し、一致した場
    合には読み込んだトークンに対応するオブジェクトを生
    成し、オブジェクトファイルへ出力する遅延評価開始位
    置判定ステップと、 前記ソースプログラムから前記遅延評価開始位置判定ス
    テップがオブジェクト化したトークンの位置以降のトー
    クンを順次読み込み、該トークンが予め前記トークン列
    の任意の箇所に設定した遅延評価の終了位置のトークン
    に一致するか否かを判定する遅延評価終了位置判定ステ
    ップとを含み、 前記遅延評価部分記憶ステップは、前記遅延評価終了位
    置判定ステップが前記遅延評価の終了位置のトークンに
    一致するトークンを読み込んだ時点で、該遅延評価終了
    位置判定ステップがそれまでに読み込んだトークンを定
    義情報なしに変更することができる状態にまで評価して
    前記遅延評価トークン記憶テーブルに記憶することを特
    徴とする請求項12記載の媒体。
  14. 【請求項14】 さらに、前記プログラムが、前記トー
    クン選択読み込みステップが読み込んだトークンが、予
    め設定した遅延評価の展開位置のトークンに一致するか
    否かを判定する遅延評価展開位置判定ステップを含み、 前記トークン選択読み込みステップは、読み込んだトー
    クンが前記遅延評価展開位置判定ステップにより遅延評
    価の展開位置のトークンに一致すると判定された場合、
    その後は前記遅延評価トークン記憶テーブルからトーク
    ンを読み込み、読み込んだトークンを前記評価処理ステ
    ップによってオブジェクト化して前記オブジェクトファ
    イルへ出力することを特徴とする請求項13記載の媒
    体。
  15. 【請求項15】 さらに、前記トークン選択読み込みス
    テップは、前記遅延評価トークン記憶テーブルからトー
    クンを読み込むことができない場合には、前記ソースプ
    ログラムからトークンを読み込むことを特徴とする請求
    項14記載の媒体。
JP16775896A 1996-06-27 1996-06-27 遅延評価機能付きコンパイル装置、コンパイル方法、およびコンパイルプログラムを記憶する媒体 Pending JPH1011299A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16775896A JPH1011299A (ja) 1996-06-27 1996-06-27 遅延評価機能付きコンパイル装置、コンパイル方法、およびコンパイルプログラムを記憶する媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16775896A JPH1011299A (ja) 1996-06-27 1996-06-27 遅延評価機能付きコンパイル装置、コンパイル方法、およびコンパイルプログラムを記憶する媒体

Publications (1)

Publication Number Publication Date
JPH1011299A true JPH1011299A (ja) 1998-01-16

Family

ID=15855554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16775896A Pending JPH1011299A (ja) 1996-06-27 1996-06-27 遅延評価機能付きコンパイル装置、コンパイル方法、およびコンパイルプログラムを記憶する媒体

Country Status (1)

Country Link
JP (1) JPH1011299A (ja)

Similar Documents

Publication Publication Date Title
US5606697A (en) Compiler system for language processing program
US8161466B2 (en) Method of pre-processing conditional region
JPH1011299A (ja) 遅延評価機能付きコンパイル装置、コンパイル方法、およびコンパイルプログラムを記憶する媒体
JPH1185486A (ja) プログラム編集装置,プログラム編集方法,及びコンピュータ可読媒体
JPH10187461A (ja) 言語処理方式
JP3921288B2 (ja) 言語処理装置およびインライン展開プログラムを記憶したコンピュータ読取可能な記憶媒体
JPH11110224A (ja) 言語処理装置及び方法、並びに情報記憶媒体
JPH05197561A (ja) コンパイル方式
JP3665392B2 (ja) 情報処理装置
JP2000132405A (ja) インライン展開処理装置及び方法
JP3604936B2 (ja) 最適化方法,最適化装置及び記録媒体
JP2827979B2 (ja) アセンブラ処理装置及びアセンブラ処理方法
JP2001075831A (ja) プログラム処理装置、ic試験システム、プログラム処理方法及び記憶媒体
JPH05313878A (ja) プログラムのコーディング支援方式
JPH06242958A (ja) コンパイル方式
JPH0353333A (ja) アセンブラのアセンブル処理方式
JPH0449421A (ja) ファイル編集方式
JPH11143705A (ja) ソースプログラムチェック装置および記録媒体
JPH1049378A (ja) コンパイラ開発装置
JP2001134431A (ja) 関数の再入可能性判定方法
JPH07105014A (ja) 言語処理システムのシンボル処理方式
JPH0512030A (ja) 実行形式プログラム生成方式
JPH03186933A (ja) 言語処理システムのシンボル処理方式
JPH05298116A (ja) コンパイラシステム
JPH02151931A (ja) 中間言語テキストの再利用方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19990511