JPH10301790A - アセンブル処理方式 - Google Patents
アセンブル処理方式Info
- Publication number
- JPH10301790A JPH10301790A JP9110819A JP11081997A JPH10301790A JP H10301790 A JPH10301790 A JP H10301790A JP 9110819 A JP9110819 A JP 9110819A JP 11081997 A JP11081997 A JP 11081997A JP H10301790 A JPH10301790 A JP H10301790A
- Authority
- JP
- Japan
- Prior art keywords
- macro
- processing
- symbol
- procedure
- token
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】マクロ機能を処理するアセンブル処理方式にお
いて、マクロ参照処理の実行時間の短縮と使用するメモ
リ領域の削減を図る。 【解決手段】アセンブラ102は、読み込んだソースプロ
グラムファイル101を、構文解析処理部1022で構文解析
し、マクロ定義行を見つけるとマクロ定義処理1023を呼
び出し、マクロ定義プログラム本体をマクロ定義領域10
27に格納する。マクロ参照処理1024はシンボルテーブル
1028にマクロ仮パラメータとマクロローカルシンボルを
登録し、構文解析処理終了後にシンボルテーブル1028か
らマクロ仮パラメータと、マクロローカルシンボルの削
除を行う。構文解析部1022は字句解析処理部10221で字
句解析し、字句解析処理部10221はシンボル処理部10221
1によってシンボルの登録および参照の処理をし、シン
ボルをシンボルテーブル1029に登録処理する。
いて、マクロ参照処理の実行時間の短縮と使用するメモ
リ領域の削減を図る。 【解決手段】アセンブラ102は、読み込んだソースプロ
グラムファイル101を、構文解析処理部1022で構文解析
し、マクロ定義行を見つけるとマクロ定義処理1023を呼
び出し、マクロ定義プログラム本体をマクロ定義領域10
27に格納する。マクロ参照処理1024はシンボルテーブル
1028にマクロ仮パラメータとマクロローカルシンボルを
登録し、構文解析処理終了後にシンボルテーブル1028か
らマクロ仮パラメータと、マクロローカルシンボルの削
除を行う。構文解析部1022は字句解析処理部10221で字
句解析し、字句解析処理部10221はシンボル処理部10221
1によってシンボルの登録および参照の処理をし、シン
ボルをシンボルテーブル1029に登録処理する。
Description
【0001】
【発明の属する技術分野】本発明のアセンブル処理方式
は、特にマクロ機能を処理可能なアセンブル処理方式に
関する。
は、特にマクロ機能を処理可能なアセンブル処理方式に
関する。
【0002】
【従来の技術】従来のアセンブラの構成を図6を参照し
て説明する。
て説明する。
【0003】図6で、アセンブラ202は、まずソース
ファイル入力部2021がソースファイル201を読み
込む。次に構文解析部2022で、読み込んだソースフ
ァイル201を構文解析する。構文解析終了後、コード
生成処理部2025でオブジェクトコードを作成し、オ
ブジェクトファイル203をオブジェクトファイル出力
部2026から出力する。
ファイル入力部2021がソースファイル201を読み
込む。次に構文解析部2022で、読み込んだソースフ
ァイル201を構文解析する。構文解析終了後、コード
生成処理部2025でオブジェクトコードを作成し、オ
ブジェクトファイル203をオブジェクトファイル出力
部2026から出力する。
【0004】構文解析部2022はマクロ定義行を見つ
けたときは、マクロ定義処理部2023を呼び出し、マ
クロ参照行を見つけたときは、マクロ参照処理部202
4を呼び出す。
けたときは、マクロ定義処理部2023を呼び出し、マ
クロ参照行を見つけたときは、マクロ参照処理部202
4を呼び出す。
【0005】マクロ定義処理部2023はマクロ定義さ
れたマクロプログラム本体を、マクロ定義領域2027
に格納し、マクロ仮パラメータとマクロローカルシンボ
ルをマクロシンボルテーブル2029に格納する。
れたマクロプログラム本体を、マクロ定義領域2027
に格納し、マクロ仮パラメータとマクロローカルシンボ
ルをマクロシンボルテーブル2029に格納する。
【0006】マクロ参照処理部2024は、マクロ定義
領域2027からマクロ定義されたマクロプログラム本
体を読み込み、マクロ仮パラメータとマクロローカルシ
ンボルをそれぞれマクロ実パラメータとグローバルシン
ボルに置き換えて、マクロプログラム本体の展開を行
い、展開したプログラムをマクロ展開領域2028に格
納する。
領域2027からマクロ定義されたマクロプログラム本
体を読み込み、マクロ仮パラメータとマクロローカルシ
ンボルをそれぞれマクロ実パラメータとグローバルシン
ボルに置き換えて、マクロプログラム本体の展開を行
い、展開したプログラムをマクロ展開領域2028に格
納する。
【0007】構文解析部2022は、字句解析部202
21によって字句の解析を行い、字句解析部20221
はシンボル処理部202211によってシンボルの登録
および参照の処理を行う。
21によって字句の解析を行い、字句解析部20221
はシンボル処理部202211によってシンボルの登録
および参照の処理を行う。
【0008】シンボル処理部202211はグローバル
シンボルをシンボルテーブル20210に登録の処理を
行う。
シンボルをシンボルテーブル20210に登録の処理を
行う。
【0009】次に、構文解析部2022の処理のフロー
を図7を参照して説明する。
を図7を参照して説明する。
【0010】まず、字句解析処理301によって、読み
込んだソースファイル201からトークンを一つ取り出
す。次に構文一致判定処理302によって、言語仕様に
一致する構文があるか否か判定を行う。一致する構文が
あれば構文判定処理303を行い、なければ字句解析処
理301を行う。構文判定処理303は、構文の判定を
行い、マクロ定義の構文であればマクロ定義処理304
を行い、マクロ参照の構文であればマクロ参照処理30
5を行い、終了の構文であれば構文解析部2022を終
了し、それ以外なら各トークンに対応する意味解析処理
3061〜306Nを行う。
込んだソースファイル201からトークンを一つ取り出
す。次に構文一致判定処理302によって、言語仕様に
一致する構文があるか否か判定を行う。一致する構文が
あれば構文判定処理303を行い、なければ字句解析処
理301を行う。構文判定処理303は、構文の判定を
行い、マクロ定義の構文であればマクロ定義処理304
を行い、マクロ参照の構文であればマクロ参照処理30
5を行い、終了の構文であれば構文解析部2022を終
了し、それ以外なら各トークンに対応する意味解析処理
3061〜306Nを行う。
【0011】マクロ定義処理304ではマクロ定義の処
理を行い、マクロ参照処理305ではマクロ参照の処理
を行う。
理を行い、マクロ参照処理305ではマクロ参照の処理
を行う。
【0012】次に、字句解析部20221の処理のフロ
ーを図8を参照して説明する。
ーを図8を参照して説明する。
【0013】まず、先頭文字判定処理401によって、
先頭の文字別にどの処理を行うかを判定する。先頭の文
字が数字なら数字処理402を行い、記号なら記号処理
403を行い、英字ならシンボル処理404を行う。
先頭の文字別にどの処理を行うかを判定する。先頭の文
字が数字なら数字処理402を行い、記号なら記号処理
403を行い、英字ならシンボル処理404を行う。
【0014】前記数字処理402は、字句の切れ目まで
文字を取り込み、取り込んだ文字列を数字として処理
し、字句解析部20221の処理を終了する。また、記
号処理403は、字句の切れ目まで文字を取り込み、取
り込んだ文字列を記号として処理し、字句解析部202
21の処理を終了する。
文字を取り込み、取り込んだ文字列を数字として処理
し、字句解析部20221の処理を終了する。また、記
号処理403は、字句の切れ目まで文字を取り込み、取
り込んだ文字列を記号として処理し、字句解析部202
21の処理を終了する。
【0015】また、シンボル処理404は、字句の切れ
目まで文字を取り込み、シンボルの判定処理405を行
う。シンボル判定処理405は、シンボルが予約語であ
るか、ユーザシンボルであるかの判定を行い、予約語で
あれば予約語処理406を行い、ユーザシンボルであれ
ば、ユーザシンボル処理407を行う。
目まで文字を取り込み、シンボルの判定処理405を行
う。シンボル判定処理405は、シンボルが予約語であ
るか、ユーザシンボルであるかの判定を行い、予約語で
あれば予約語処理406を行い、ユーザシンボルであれ
ば、ユーザシンボル処理407を行う。
【0016】予約語処理406は、予約語の処理を行
い、字句解析部20221の処理を終了する。また、ユ
ーザシンボル処理407は、ユーザシンボルの処理を行
い、字句解析部20221の処理を終了する。
い、字句解析部20221の処理を終了する。また、ユ
ーザシンボル処理407は、ユーザシンボルの処理を行
い、字句解析部20221の処理を終了する。
【0017】次に、マクロ定義処理部2023の処理フ
ローを図9を参照して説明する。
ローを図9を参照して説明する。
【0018】まず、マクロ仮パラメータ登録処理501
を行う。マクロ仮パラメータ登録処理501は、ソース
プログラムファイル中のマクロ定義行の解析を行い、解
析により得られたマクロ仮パラメータをマクロシンボル
テーブル2029に登録処理し、次にマクロローカルシ
ンボル登録処理502を行う。マクロローカルシンボル
登録処理502では、ソースプログラムファイル中のマ
クロローカルシンボル定義行の解析を行い、解析により
得られたマクロローカルシンボルをマクロシンボルテー
ブル2029に登録処理する、次に、マクロ定義プログ
ラム本体について先頭文字判定処理503を行う。
を行う。マクロ仮パラメータ登録処理501は、ソース
プログラムファイル中のマクロ定義行の解析を行い、解
析により得られたマクロ仮パラメータをマクロシンボル
テーブル2029に登録処理し、次にマクロローカルシ
ンボル登録処理502を行う。マクロローカルシンボル
登録処理502では、ソースプログラムファイル中のマ
クロローカルシンボル定義行の解析を行い、解析により
得られたマクロローカルシンボルをマクロシンボルテー
ブル2029に登録処理する、次に、マクロ定義プログ
ラム本体について先頭文字判定処理503を行う。
【0019】先頭文字判定処理503は、マクロ定義プ
ログラム本体の先頭文字が英字であるかどうかの判定を
行い、英字であるならマクロシンボルトークン判定処理
504を行い、そうでないなら、先頭文字を出力用バッ
ファに格納し、マクロ定義領域トークン出力処理507
を行う。
ログラム本体の先頭文字が英字であるかどうかの判定を
行い、英字であるならマクロシンボルトークン判定処理
504を行い、そうでないなら、先頭文字を出力用バッ
ファに格納し、マクロ定義領域トークン出力処理507
を行う。
【0020】マクロシンボルトークン判定処理504
は、トークンを読み出し、トークンがマクロ仮パラメー
タかマクロローカルシンボルかマクロ定義終了語かを判
定し、マクロ仮パラメータならマクロ仮パラメータ変換
処理505を行い、マクロローカルシンボルならマクロ
ローカルシンボル変換処理506を行い、マクロ定義終
了語ならマクロ定義処理を終了し、そうでなければ、ト
ークンを出力用バッファに格納し、マクロ定義領域トー
クン出力処理507を行う。
は、トークンを読み出し、トークンがマクロ仮パラメー
タかマクロローカルシンボルかマクロ定義終了語かを判
定し、マクロ仮パラメータならマクロ仮パラメータ変換
処理505を行い、マクロローカルシンボルならマクロ
ローカルシンボル変換処理506を行い、マクロ定義終
了語ならマクロ定義処理を終了し、そうでなければ、ト
ークンを出力用バッファに格納し、マクロ定義領域トー
クン出力処理507を行う。
【0021】マクロ仮パラメータ変換処理505はマク
ロ仮パラメータを、マクロ仮パラメータを表すメタ文字
から始まる文字列に変換し、出力用バッファに格納して
マクロ定義領域トークン出力処理507を行う。
ロ仮パラメータを、マクロ仮パラメータを表すメタ文字
から始まる文字列に変換し、出力用バッファに格納して
マクロ定義領域トークン出力処理507を行う。
【0022】マクロローカルシンボル変換処理506
は、マクロローカルシンボルをマクロローカルシンボル
を表すメタ文字から始まる文字列に変換し、出力用バッ
ファに格納してマクロ定義領域トークン出力処理507
を行う。
は、マクロローカルシンボルをマクロローカルシンボル
を表すメタ文字から始まる文字列に変換し、出力用バッ
ファに格納してマクロ定義領域トークン出力処理507
を行う。
【0023】マクロ定義領域トークン出力処理507
は、出力用バッファに格納された文字列を、マクロ定義
領域2027に出力し、先頭文字判定処理503に戻
る。
は、出力用バッファに格納された文字列を、マクロ定義
領域2027に出力し、先頭文字判定処理503に戻
る。
【0024】次に、マクロ参照処理部2024の処理フ
ローを図10及び図11を参照して説明する。
ローを図10及び図11を参照して説明する。
【0025】まず、マクロ実パラメータ登録処理601
を行う。マクロ実パラメータ登録処理601は、ソース
プログラムファイル中のマクロ参照行の解析を行い、解
析により得られたマクロ実パラメータの値を、マクロシ
ンボルテーブル2029のマクロ仮パラメータエントリ
領域に設定した後、マクロ展開領域終了判定処理602
を行う。マクロ展開領域終了判定処理602は、マクロ
展開領域2028に、トークンの最大値分の大きさの領
域があるか否かの判定を行い、領域があればマクロ定義
領域終了位置判定処理604を行い、終了位置でなけれ
ば、マクロ展開領域確保処理603を行う。マクロ展開
領域確保処理603は、マクロ展開領域2028を元の
領域に連続して追加確保し、マクロ定義領域終了位置判
定処理604を行う。マクロ定義領域終了位置判定処理
604は、マクロ定義領域2027の読み込み位置が、
マクロ定義領域2027の終了位置を指していないか判
定を行い、終了位置を指していれば、入力先変更処理6
11を行い、終了位置を指していなければ、メタ文字判
定処理605を行う。
を行う。マクロ実パラメータ登録処理601は、ソース
プログラムファイル中のマクロ参照行の解析を行い、解
析により得られたマクロ実パラメータの値を、マクロシ
ンボルテーブル2029のマクロ仮パラメータエントリ
領域に設定した後、マクロ展開領域終了判定処理602
を行う。マクロ展開領域終了判定処理602は、マクロ
展開領域2028に、トークンの最大値分の大きさの領
域があるか否かの判定を行い、領域があればマクロ定義
領域終了位置判定処理604を行い、終了位置でなけれ
ば、マクロ展開領域確保処理603を行う。マクロ展開
領域確保処理603は、マクロ展開領域2028を元の
領域に連続して追加確保し、マクロ定義領域終了位置判
定処理604を行う。マクロ定義領域終了位置判定処理
604は、マクロ定義領域2027の読み込み位置が、
マクロ定義領域2027の終了位置を指していないか判
定を行い、終了位置を指していれば、入力先変更処理6
11を行い、終了位置を指していなければ、メタ文字判
定処理605を行う。
【0026】メタ文字判定処理605は、マクロ定義領
域2027の読み込み位置の文字がメタ文字か否かを判
定し、メタ文字ならばマクロシンボルトークン判定処理
606を行い、メタ文字でなければ、マクロ定義領域2
027の読み込み位置の文字をそのまま出力用バッファ
に格納し、マクロ展開領域トークン出力処理610を行
う。
域2027の読み込み位置の文字がメタ文字か否かを判
定し、メタ文字ならばマクロシンボルトークン判定処理
606を行い、メタ文字でなければ、マクロ定義領域2
027の読み込み位置の文字をそのまま出力用バッファ
に格納し、マクロ展開領域トークン出力処理610を行
う。
【0027】マクロシンボルトークン判定処理606
は、マクロ定義領域2027の読み込み位置からトーク
ンを一つ取り出し、取り出したトークンがマクロ仮パラ
メータなら実パラメータ置換処理607を行い、マクロ
ローカルシンボルならマクロローカルシンボル生成処理
608を行う。
は、マクロ定義領域2027の読み込み位置からトーク
ンを一つ取り出し、取り出したトークンがマクロ仮パラ
メータなら実パラメータ置換処理607を行い、マクロ
ローカルシンボルならマクロローカルシンボル生成処理
608を行う。
【0028】マクロ実パラメータ置換処理607は、仮
パラメータを表すメタ文字から始まる文字列を、実パラ
メータに置き換え、出力用バッファに格納し、マクロ展
開領域トークン出力処理610を行う。
パラメータを表すメタ文字から始まる文字列を、実パラ
メータに置き換え、出力用バッファに格納し、マクロ展
開領域トークン出力処理610を行う。
【0029】マクロローカルシンボル生成処理608
は、他のシンボル名と重複をしないシンボル名を生成
し、マクロローカルシンボル置換処理609を行う。
は、他のシンボル名と重複をしないシンボル名を生成
し、マクロローカルシンボル置換処理609を行う。
【0030】マクロローカルシンボル置換処理609
は、マクロローカルシンボルを表すメタ文字から始まる
文字列を、マクロローカルシンボル生成処理608によ
って生成したシンボル名に置き換え、出力用バッファに
格納し、マクロ展開トークン出力処理610を行う。
は、マクロローカルシンボルを表すメタ文字から始まる
文字列を、マクロローカルシンボル生成処理608によ
って生成したシンボル名に置き換え、出力用バッファに
格納し、マクロ展開トークン出力処理610を行う。
【0031】マクロ展開領域トークン出力処理610
は、出力用バッファに格納された文字列を、マクロ展開
領域2028に出力する。
は、出力用バッファに格納された文字列を、マクロ展開
領域2028に出力する。
【0032】入力先変更処理611は、字句解析部20
221へのソースプログラムファイルの入力先を保存し
た後、字句解析部20221へのソースプログラムファ
イル入力先を、マクロ展開領域2028に変更し、構文
解析部2022を呼び出す。次に、構文解析部2022
から戻ってきたら、入力先復帰処理612を行う。入力
先復帰処理612は、字句解析部20221へのソース
プログラムファイルの入力先を、入力先変更処理611
で保存した入力先に復帰する処理を行い、マクロ展開領
域開放処理613を行う。
221へのソースプログラムファイルの入力先を保存し
た後、字句解析部20221へのソースプログラムファ
イル入力先を、マクロ展開領域2028に変更し、構文
解析部2022を呼び出す。次に、構文解析部2022
から戻ってきたら、入力先復帰処理612を行う。入力
先復帰処理612は、字句解析部20221へのソース
プログラムファイルの入力先を、入力先変更処理611
で保存した入力先に復帰する処理を行い、マクロ展開領
域開放処理613を行う。
【0033】マクロ展開領域開放処理613では、マク
ロ展開領域2028の開放を行い、マクロ参照処理を終
了する。
ロ展開領域2028の開放を行い、マクロ参照処理を終
了する。
【0034】次に、図12に示すようなソースプログラ
ムファイルが入力されたときのマクロ定義処理2023
と、マクロ展開処理2024の処理内容を具体的に例示
し、説明する。
ムファイルが入力されたときのマクロ定義処理2023
と、マクロ展開処理2024の処理内容を具体的に例示
し、説明する。
【0035】図12に示したソースプログラムファイル
は8行からなるソースプログラムファイルで、1行目か
ら6行目までがm1というマクロ名でマクロ定義を行っ
ており、7行目でマクロm1の参照を行っている。
は8行からなるソースプログラムファイルで、1行目か
ら6行目までがm1というマクロ名でマクロ定義を行っ
ており、7行目でマクロm1の参照を行っている。
【0036】図12のソースプログラムで、「macro」
はマクロ定義行を示す予約語で、「macro」の前にシン
ボル名が記述されると、そのシンボル名がマクロ名とな
り、「macro」の後ろに記述されるシンボル名がマクロ
仮パラメータ名になる。
はマクロ定義行を示す予約語で、「macro」の前にシン
ボル名が記述されると、そのシンボル名がマクロ名とな
り、「macro」の後ろに記述されるシンボル名がマクロ
仮パラメータ名になる。
【0037】「local」はローカル疑似命令を示す予約
語で、「local」の後ろにシンボル名が記述されると、
そのシンボル名はマクロローカルシンボルになる。
語で、「local」の後ろにシンボル名が記述されると、
そのシンボル名はマクロローカルシンボルになる。
【0038】「mov」は機械語の予約語で、その行にあ
る「#」はオペランドの修飾語である。
る「#」はオペランドの修飾語である。
【0039】「br」は機械語の予約語で、その行にある
「!」はオペランドの修飾語である。
「!」はオペランドの修飾語である。
【0040】「endm」はマクロ定義部の終了を示す予約
語で、「end」は、アセンブル処理するソースプログラ
ム全体の終了を示す予約語である。
語で、「end」は、アセンブル処理するソースプログラ
ム全体の終了を示す予約語である。
【0041】また、「10110110b」は2進数の
数字を表している。
数字を表している。
【0042】以上のようなソースプログラムについて、
マクロ定義処理2023の処理内容を図9を参照して説
明する。
マクロ定義処理2023の処理内容を図9を参照して説
明する。
【0043】まず、マクロ仮パラメータ登録処理501
でマクロ仮パラメータ「para1」の登録処理を行う。つ
ぎにマクロローカルシンボル登録処理502でマクロロ
ーカルシンボル「lab」の登録処理を行い、次に、マク
ロ定義領域終了判定処理1203を行う。
でマクロ仮パラメータ「para1」の登録処理を行う。つ
ぎにマクロローカルシンボル登録処理502でマクロロ
ーカルシンボル「lab」の登録処理を行い、次に、マク
ロ定義領域終了判定処理1203を行う。
【0044】このとき、ソースプログラムファイルの読
み出し位置は3行目の先頭の文字になっており、その文
字はタブであるので、マクロ定義領域トークン出力処理
507を行い、マクロ定義領域2027にタブを出力し
(図13の1文字目)、続いて先頭文字判定処理503
を行う。
み出し位置は3行目の先頭の文字になっており、その文
字はタブであるので、マクロ定義領域トークン出力処理
507を行い、マクロ定義領域2027にタブを出力し
(図13の1文字目)、続いて先頭文字判定処理503
を行う。
【0045】次の文字は「m」で、英字であるので、マ
クロシンボルトークン判定処理504を行う。マクロシ
ンボルトークン判定処理504は、トークン「mov」を
取り出す。トークン「mov」は、マクロ仮パラメータ、
マクロローカルシンボル、マクロ終了語のいずれでもな
いので、マクロ定義領域トークン出力処理507を行
う。
クロシンボルトークン判定処理504を行う。マクロシ
ンボルトークン判定処理504は、トークン「mov」を
取り出す。トークン「mov」は、マクロ仮パラメータ、
マクロローカルシンボル、マクロ終了語のいずれでもな
いので、マクロ定義領域トークン出力処理507を行
う。
【0046】マクロ定義領域トークン出力処理507
は、トークン「mov」を、マクロ定義領域2027に出
力して(図13の2から4文字目まで)、先頭文字判定
処理503に戻る。
は、トークン「mov」を、マクロ定義領域2027に出
力して(図13の2から4文字目まで)、先頭文字判定
処理503に戻る。
【0047】トークンの先頭が英字ではない、あるいは
トークンがマクロ仮パラメータ、マクロローカルシンボ
ル、マクロ終了語でないときは、前述したのと同様にマ
クロ定義処理を行う。
トークンがマクロ仮パラメータ、マクロローカルシンボ
ル、マクロ終了語でないときは、前述したのと同様にマ
クロ定義処理を行う。
【0048】同様の処理で、3行目のトークン「para
1」の先頭の文字までが、マクロ定義領域2027に出
力される(図13の5から8文字目まで)。
1」の先頭の文字までが、マクロ定義領域2027に出
力される(図13の5から8文字目まで)。
【0049】3行目のトークン「para1」の先頭からの
処理は以下のようになる。先頭文字判定処理503で、
「p」が英字と判定されて、マクロシンボルトークン判
定処理504が実行される。
処理は以下のようになる。先頭文字判定処理503で、
「p」が英字と判定されて、マクロシンボルトークン判
定処理504が実行される。
【0050】マクロシンボルトークン判定処理504は
トークン「para1」を取り出す。トークン「para
1」はマクロ仮パラメータなので、マクロ仮パラメータ
変換処理505を行う。
トークン「para1」を取り出す。トークン「para
1」はマクロ仮パラメータなので、マクロ仮パラメータ
変換処理505を行う。
【0051】マクロ仮パラメータ変換処理505では、
1つ目のマクロ仮パラメータを表すメタ文字「%」から始
まる文字列「%p1」に置き換えて、マクロ定義領域トー
クン出力処理507を行う。
1つ目のマクロ仮パラメータを表すメタ文字「%」から始
まる文字列「%p1」に置き換えて、マクロ定義領域トー
クン出力処理507を行う。
【0052】マクロ定義領域トークン出力処理507
は、マクロ定義領域2027に文字列「%p1」を出力し
て(図13の9から11文字目まで)、続いて先頭文字
判定処理503に戻る。
は、マクロ定義領域2027に文字列「%p1」を出力し
て(図13の9から11文字目まで)、続いて先頭文字
判定処理503に戻る。
【0053】引続き、トークンの先頭が英字ではない、
あるいはトークンがマクロ仮パラメータ、マクロローカ
ルシンボル、マクロ終了語でないときの処理が行われ
て、4行目の先頭の文字までがマクロ定義領域2027
に出力される(図13の12文字目)。
あるいはトークンがマクロ仮パラメータ、マクロローカ
ルシンボル、マクロ終了語でないときの処理が行われ
て、4行目の先頭の文字までがマクロ定義領域2027
に出力される(図13の12文字目)。
【0054】4行目のトークン「lab」の先頭からの処
理は以下のようになる。まず、先頭文字判定処理503
で「l」が英字と判定されて、マクロシンボルトークン
判定処理504を行う。マクロシンボルトークン判定処
理504は、トークン「lab」を取り出す。トークン「l
ab」はマクロローカルシンボルなので、マクロローカル
シンボル変換処理506を行う。
理は以下のようになる。まず、先頭文字判定処理503
で「l」が英字と判定されて、マクロシンボルトークン
判定処理504を行う。マクロシンボルトークン判定処
理504は、トークン「lab」を取り出す。トークン「l
ab」はマクロローカルシンボルなので、マクロローカル
シンボル変換処理506を行う。
【0055】マクロローカルシンボル変換処理506で
は、1つ目のマクロローカルシンボルを表すメタ文字
「%」から始まる文字列「%l1」に置き換えてマクロ定義
領域トークン出力処理507を行う。マクロ定義領域ト
ークン出力処理507は、マクロ定義領域2027に文
字列「%l1」を出力して(図13の13から15文字目
まで)、先頭文字判定処理503に戻る。
は、1つ目のマクロローカルシンボルを表すメタ文字
「%」から始まる文字列「%l1」に置き換えてマクロ定義
領域トークン出力処理507を行う。マクロ定義領域ト
ークン出力処理507は、マクロ定義領域2027に文
字列「%l1」を出力して(図13の13から15文字目
まで)、先頭文字判定処理503に戻る。
【0056】引続き、トークンの先頭が英字ではない、
あるいはトークンがマクロ仮パラメータ、マクロローカ
ルシンボル、マクロ終了語でないときの処理が行われ
て、5行目のトークン「lab」の先頭の文字までが、マ
クロ定義領域2027に出力される(図13の16から
22文字目まで)。
あるいはトークンがマクロ仮パラメータ、マクロローカ
ルシンボル、マクロ終了語でないときの処理が行われ
て、5行目のトークン「lab」の先頭の文字までが、マ
クロ定義領域2027に出力される(図13の16から
22文字目まで)。
【0057】5行目のトークン「lab」は、マクロロー
カルシンボルなので前述した処理と同様の処理によっ
て、文字列「%l1」に置換されてマクロ定義領域202
7に出力される(図13の23から25文字目まで)。
カルシンボルなので前述した処理と同様の処理によっ
て、文字列「%l1」に置換されてマクロ定義領域202
7に出力される(図13の23から25文字目まで)。
【0058】引続き、トークンの先頭が英字ではない、
あるいはトークンがマクロ仮パラメータ、マクロローカ
ルシンボル、マクロ終了語でないときの処理が行われ
て、6行目のトークン「endm」の直前の文字までがマク
ロ定義領域2027に出力される(図13の26文字
目)。
あるいはトークンがマクロ仮パラメータ、マクロローカ
ルシンボル、マクロ終了語でないときの処理が行われ
て、6行目のトークン「endm」の直前の文字までがマク
ロ定義領域2027に出力される(図13の26文字
目)。
【0059】6行目のトークン「endm」の先頭の文字か
らの処理は以下のようになる。まず、先頭文字判定処理
503で「e」が英字と判定されて、マクロシンボルト
ークン判定処理504を行う。マクロシンボルトークン
判定処理504はトークン「endm」を取り出す。
らの処理は以下のようになる。まず、先頭文字判定処理
503で「e」が英字と判定されて、マクロシンボルト
ークン判定処理504を行う。マクロシンボルトークン
判定処理504はトークン「endm」を取り出す。
【0060】トークン「endm」はマクロ終了語なので、
これでマクロ定義処理を終了し、もとの構文解析処理部
2022に戻る。
これでマクロ定義処理を終了し、もとの構文解析処理部
2022に戻る。
【0061】以上の処理によって図13の従来のマクロ
定義領域が作成される。
定義領域が作成される。
【0062】次にマクロ参照処理2024の処理内容に
ついて説明する。
ついて説明する。
【0063】まずマクロ参照行は「m1 10110110b」
で、マクロ実パラメータ登録処理601によって、1つ
目の実パラメータを「10110110b」と登録し、マクロ展
開領域終了判定処理602に移る。マクロ展開領域終了
判定処理602では、マクロ展開領域2028にトーク
ンの最大値分の大きさの領域があるか否かの判定を行
い、マクロ展開領域2028はまだ全く確保されていな
いので、トークンの最大値分の大きさの領域はないと判
定し、マクロ展開領域確保処理603を行う。マクロ展
開領域確保処理603は、ある一定の大きさのメモリ領
域の確保を行い、マクロ定義領域終了位置判定処理60
4を行う。
で、マクロ実パラメータ登録処理601によって、1つ
目の実パラメータを「10110110b」と登録し、マクロ展
開領域終了判定処理602に移る。マクロ展開領域終了
判定処理602では、マクロ展開領域2028にトーク
ンの最大値分の大きさの領域があるか否かの判定を行
い、マクロ展開領域2028はまだ全く確保されていな
いので、トークンの最大値分の大きさの領域はないと判
定し、マクロ展開領域確保処理603を行う。マクロ展
開領域確保処理603は、ある一定の大きさのメモリ領
域の確保を行い、マクロ定義領域終了位置判定処理60
4を行う。
【0064】マクロ定義領域終了位置判定処理604
は、マクロ定義領域2027の読み出し位置が、マクロ
定義領域2027の終了位置か否かの処理を行う。読み
出し位置はマクロ定義領域2027の一行目であるの
で、メタ文字判定処理605を行う。
は、マクロ定義領域2027の読み出し位置が、マクロ
定義領域2027の終了位置か否かの処理を行う。読み
出し位置はマクロ定義領域2027の一行目であるの
で、メタ文字判定処理605を行う。
【0065】メタ文字判定処理605は、読み込み位置
の文字がメタ文字か否かを判定するが、タブはメタ文字
でないのでマクロ展開領域トークン出力処理610を行
う。
の文字がメタ文字か否かを判定するが、タブはメタ文字
でないのでマクロ展開領域トークン出力処理610を行
う。
【0066】マクロ展開領域トークン出力処理610
は、タブをマクロ展開領域2028に出力したあと、マ
クロ定義領域終了判定処理604に戻る。
は、タブをマクロ展開領域2028に出力したあと、マ
クロ定義領域終了判定処理604に戻る。
【0067】マクロ定義領域2027の読み出し位置の
文字がメタ文字でないときは、前述したと同様にマクロ
参照処理を行う。
文字がメタ文字でないときは、前述したと同様にマクロ
参照処理を行う。
【0068】以上のようにして図13のマクロ定義領域
2027の8番目の文字までが図15の従来のマクロ展
開領域2028に出力される(図15の1から8文字目
まで)。 図13のマクロ定義領域2027の9番目の
文字からの処理は以下のようになる。マクロ定義領域終
了位置判定処理604では、終了位置ではないので、メ
タ文字判定処理605に移る。メタ文字判定処理605
は、マクロ定義領域2027の読み込み位置の文字がメ
タ文字なので、マクロシンボルトークン判定処理606
を行う。
2027の8番目の文字までが図15の従来のマクロ展
開領域2028に出力される(図15の1から8文字目
まで)。 図13のマクロ定義領域2027の9番目の
文字からの処理は以下のようになる。マクロ定義領域終
了位置判定処理604では、終了位置ではないので、メ
タ文字判定処理605に移る。メタ文字判定処理605
は、マクロ定義領域2027の読み込み位置の文字がメ
タ文字なので、マクロシンボルトークン判定処理606
を行う。
【0069】マクロシンボルトークン判定処理606
は、トークン「%p1」を取り出す。トークン「%p1」はマ
クロ仮パラメータであるので、実パラメータ置換処理6
07を行う。実パラメータ置換処理607は、トークン
「%p1」を、「10110110b」に置き換え、マクロ展開トー
クン出力処理610を行う。
は、トークン「%p1」を取り出す。トークン「%p1」はマ
クロ仮パラメータであるので、実パラメータ置換処理6
07を行う。実パラメータ置換処理607は、トークン
「%p1」を、「10110110b」に置き換え、マクロ展開トー
クン出力処理610を行う。
【0070】マクロ展開トークン出力処理610は、ト
ークン「10110110b」をマクロ展開領域2028に出力
(図15の9から17文字目まで)し、マクロ定義領域
終了位置判定処理604に移る。
ークン「10110110b」をマクロ展開領域2028に出力
(図15の9から17文字目まで)し、マクロ定義領域
終了位置判定処理604に移る。
【0071】引続き、マクロ定義領域2027の読み出
し位置の文字がメタ文字でないときの処理が行われ、マ
クロ定義領域2027の12番目の文字までが、マクロ
展開領域2028に出力される(図15の18文字
目)。
し位置の文字がメタ文字でないときの処理が行われ、マ
クロ定義領域2027の12番目の文字までが、マクロ
展開領域2028に出力される(図15の18文字
目)。
【0072】マクロ定義領域2027の13番目の文字
からの処理は以下のようになる。マクロ定義領域終了位
置判定処理604では、読み出し位置が終了位置ではな
いので、メタ文字判定処理605に移る。
からの処理は以下のようになる。マクロ定義領域終了位
置判定処理604では、読み出し位置が終了位置ではな
いので、メタ文字判定処理605に移る。
【0073】メタ文字判定処理605は、マクロ定義領
域2027の読み込み位置の文字がメタ文字なので、マ
クロシンボルトークン判定処理606に移る。マクロシ
ンボルトークン判定処理606は、トークン「%p1」を
取り出す。トークン「%p1」はマクロローカルシンボル
であるので、ローカルシンボル生成処理608を行う。
域2027の読み込み位置の文字がメタ文字なので、マ
クロシンボルトークン判定処理606に移る。マクロシ
ンボルトークン判定処理606は、トークン「%p1」を
取り出す。トークン「%p1」はマクロローカルシンボル
であるので、ローカルシンボル生成処理608を行う。
【0074】ローカルシンボル生成処理608では、他
のシンボル名と重複しないシンボル名「??lab」を生成
し、マクロローカルシンボル置換処理609を行う。
のシンボル名と重複しないシンボル名「??lab」を生成
し、マクロローカルシンボル置換処理609を行う。
【0075】マクロローカルシンボル置換処理609
は、トークン「%l1」を「??lab」に置き換え、マクロ展
開トークン出力処理610を行う(図15の19から2
3文字目まで)。
は、トークン「%l1」を「??lab」に置き換え、マクロ展
開トークン出力処理610を行う(図15の19から2
3文字目まで)。
【0076】引続き、マクロ定義領域2027の読み出
し位置の文字がメタ文字でないときの処理が行われて、
マクロ定義領域2027の22番目の文字までがマクロ
展開領域2028に出力される(図15の24から30
文字目まで)。
し位置の文字がメタ文字でないときの処理が行われて、
マクロ定義領域2027の22番目の文字までがマクロ
展開領域2028に出力される(図15の24から30
文字目まで)。
【0077】マクロ定義領域2027の23番目の文字
からのトークン「%l1」は、マクロローカルシンボルな
ので、前述したのと同様の処理によって、トークン「??
lab」に置き換えられてマクロ展開領域2028に出力
される(図15の31から35文字目まで)。
からのトークン「%l1」は、マクロローカルシンボルな
ので、前述したのと同様の処理によって、トークン「??
lab」に置き換えられてマクロ展開領域2028に出力
される(図15の31から35文字目まで)。
【0078】引続き、マクロ定義領域2027の読み出
し位置の文字がメタ文字でないときの処理が行われて、
マクロ定義領域2027の26番目の文字までがマクロ
展開領域2028に出力される(図15の36文字
目)。
し位置の文字がメタ文字でないときの処理が行われて、
マクロ定義領域2027の26番目の文字までがマクロ
展開領域2028に出力される(図15の36文字
目)。
【0079】その後、マクロ定義領域終了位置判定処理
604が行われる。マクロ定義領域終了位置判定処理6
04は、マクロ定義領域2027の読み込み位置が、マ
クロ定義領域2027の終了位置を指しているので、入
力先変更処理611を行う。ここまでの処理で図15の
従来のマクロ展開領域が作成される。
604が行われる。マクロ定義領域終了位置判定処理6
04は、マクロ定義領域2027の読み込み位置が、マ
クロ定義領域2027の終了位置を指しているので、入
力先変更処理611を行う。ここまでの処理で図15の
従来のマクロ展開領域が作成される。
【0080】入力先変更処理611は、字句解析部20
221の入力先を保存した後、字句解析部20221の
入力先を、マクロ展開領域2028に置き換えて、構文
解析部2022を呼び出す。
221の入力先を保存した後、字句解析部20221の
入力先を、マクロ展開領域2028に置き換えて、構文
解析部2022を呼び出す。
【0081】構文解析部2022では、マクロ展開領域
2028の構文解析を行い、構文解析部2022から戻
ってきたら、入力先復帰処理612を行う。入力先復帰
処理612は、保存したソースプログラムファイルの入
力先に復帰を行い、マクロ展開領域開放処理613を行
う。マクロ展開領域開放処理613ではマクロ展開領域
2028の開放を行い、マクロ参照処理を終了する。
2028の構文解析を行い、構文解析部2022から戻
ってきたら、入力先復帰処理612を行う。入力先復帰
処理612は、保存したソースプログラムファイルの入
力先に復帰を行い、マクロ展開領域開放処理613を行
う。マクロ展開領域開放処理613ではマクロ展開領域
2028の開放を行い、マクロ参照処理を終了する。
【0082】
【発明が解決しようとする課題】以上に説明したよう
に、従来のアセンブル処理方式では、マクロ展開領域2
028の作成をおこなうため、マクロの展開処理に時間
がかかる。従来の方式でマクロ処理にかかる時間は、全
マクロ参照中のトークンを判断する時間と、全マクロ参
照のコピーにかかる時間である。
に、従来のアセンブル処理方式では、マクロ展開領域2
028の作成をおこなうため、マクロの展開処理に時間
がかかる。従来の方式でマクロ処理にかかる時間は、全
マクロ参照中のトークンを判断する時間と、全マクロ参
照のコピーにかかる時間である。
【0083】具体的な例として定義の大きさが1000
ステップのマクロを10回参照する場合、マクロの展開
処理にかかる時間は、10×(A+B)+1×Cである。
ステップのマクロを10回参照する場合、マクロの展開
処理にかかる時間は、10×(A+B)+1×Cである。
【0084】A…1マクロ参照中のトークンを判断する
時間(1000ステップのトークン(マクロ仮パラメータおよ
びマクロローカルシンボルが記述されていない通常行)
を判断する時間) B…1マクロ参照のコピーにかかる時間 C…1マクロ定義中のトークンを判断する時間(1000ステ
ップのトークンを判断する時間)
時間(1000ステップのトークン(マクロ仮パラメータおよ
びマクロローカルシンボルが記述されていない通常行)
を判断する時間) B…1マクロ参照のコピーにかかる時間 C…1マクロ定義中のトークンを判断する時間(1000ステ
ップのトークンを判断する時間)
【0085】
【課題を解決するための手段】前述の課題を解決するた
め、本発明のアセンブル処理方式では、マクロ参照時
に、マクロローカルシンボルエントリとマクロ仮パラメ
ータエントリをシンボルテーブルに登録し、字句解析部
の入力先をマクロ定義領域のマクロ定義プログラム本体
に変更するマクロ参照処理部を有し、マクロローカルシ
ンボルあるいはマクロ仮パラメータを発見したときは、
グローバルシンボルやマクロ実パラメータなどの実際の
値に置き換えて、再度シンボル検索を行うマクロシンボ
ル再検索処理を実行するようにした。
め、本発明のアセンブル処理方式では、マクロ参照時
に、マクロローカルシンボルエントリとマクロ仮パラメ
ータエントリをシンボルテーブルに登録し、字句解析部
の入力先をマクロ定義領域のマクロ定義プログラム本体
に変更するマクロ参照処理部を有し、マクロローカルシ
ンボルあるいはマクロ仮パラメータを発見したときは、
グローバルシンボルやマクロ実パラメータなどの実際の
値に置き換えて、再度シンボル検索を行うマクロシンボ
ル再検索処理を実行するようにした。
【0086】
【発明の実施の形態】本発明の実施の形態について図面
を参照して説明する。
を参照して説明する。
【0087】図1は、本発明のアセンブル処理方式のア
センブラの構成を示したもので、アセンブラの入力とな
るソースプログラムファイル部101と、アセンブル処
理を行なうアセンブラ部102と、アセンブラの出力と
なるオブジェクトプログラムファイル部103から構成
されている。
センブラの構成を示したもので、アセンブラの入力とな
るソースプログラムファイル部101と、アセンブル処
理を行なうアセンブラ部102と、アセンブラの出力と
なるオブジェクトプログラムファイル部103から構成
されている。
【0088】アセンブラ102は、まずソースプログラ
ムファイル入力部1021がソースプログラムファイル
101を読み込む。
ムファイル入力部1021がソースプログラムファイル
101を読み込む。
【0089】次に、構文解析部1022が、前記読み込
んだソースプログラムファイルの内容を構文解析する。
んだソースプログラムファイルの内容を構文解析する。
【0090】構文解析終了後、コード生成処理部102
5はオブジェクトコードを作成し、オブジェクトプログ
ラムファイルをオブジェクトプログラムファイル出力部
1026から出力する。
5はオブジェクトコードを作成し、オブジェクトプログ
ラムファイルをオブジェクトプログラムファイル出力部
1026から出力する。
【0091】構文解析部1022は、マクロ定義行を見
つけたときはマクロ定義処理部1023を呼び出し、マ
クロ参照行を見つけたときにはマクロ参照処理部102
4を呼び出す。
つけたときはマクロ定義処理部1023を呼び出し、マ
クロ参照行を見つけたときにはマクロ参照処理部102
4を呼び出す。
【0092】マクロ定義処理部1023は、マクロ定義
されたマクロプログラム本体を、マクロ定義領域102
7に、マクロ仮パラメータとマクロローカルシンボルを
マクロシンボルテーブル1028に格納する。
されたマクロプログラム本体を、マクロ定義領域102
7に、マクロ仮パラメータとマクロローカルシンボルを
マクロシンボルテーブル1028に格納する。
【0093】マクロ参照処理部1024は、シンボルテ
ーブル1029にマクロ仮パラメータをマクロ仮パラメ
ータエントリ10291として、マクロローカルシンボ
ルをマクロローカルシンボルエントリ10292として
登録し、構文解析を行い、構文解析処理終了後にシンボ
ルテーブル1029から、マクロ仮パラメータエントリ
10291とマクロローカルシンボルエントリ1029
2の削除を行う。
ーブル1029にマクロ仮パラメータをマクロ仮パラメ
ータエントリ10291として、マクロローカルシンボ
ルをマクロローカルシンボルエントリ10292として
登録し、構文解析を行い、構文解析処理終了後にシンボ
ルテーブル1029から、マクロ仮パラメータエントリ
10291とマクロローカルシンボルエントリ1029
2の削除を行う。
【0094】構文解析部1022は字句解析部1022
1によって字句の解析を行い、字句解析部10221は
シンボル処理部102211によってシンボルの登録お
よび参照の処理を行う。
1によって字句の解析を行い、字句解析部10221は
シンボル処理部102211によってシンボルの登録お
よび参照の処理を行う。
【0095】シンボル処理部102211は、シンボル
をシンボルテーブル1029に登録処理する。
をシンボルテーブル1029に登録処理する。
【0096】次に、構文解析部1022の処理フローを
図2を参照して説明する。
図2を参照して説明する。
【0097】まず、字句解析処理1001によって読み
込んだソースプログラムファイルからトークンを一つ取
り出す。次に構文一致判定処理1002によって言語仕
様に一致する構文があるか否か判定を行う。一致する構
文があれば構文判定処理1003を行い、なければ字句
解析処理1001に戻る。
込んだソースプログラムファイルからトークンを一つ取
り出す。次に構文一致判定処理1002によって言語仕
様に一致する構文があるか否か判定を行う。一致する構
文があれば構文判定処理1003を行い、なければ字句
解析処理1001に戻る。
【0098】構文判定処理1003は、構文の判定を行
い、マクロ定義行の構文であればマクロ定義処理100
4を行い、マクロ参照行の構文であればマクロ参照処理
1005を行い、終了の構文であれば構文解析部102
2を終了し、それ以外なら各々のトークンに対応する意
味解析処理10061〜1006Nを行う。
い、マクロ定義行の構文であればマクロ定義処理100
4を行い、マクロ参照行の構文であればマクロ参照処理
1005を行い、終了の構文であれば構文解析部102
2を終了し、それ以外なら各々のトークンに対応する意
味解析処理10061〜1006Nを行う。
【0099】マクロ定義処理1004ではマクロ定義の
処理を行い、マクロ参照処理1005ではマクロ参照の
処理を行う。
処理を行い、マクロ参照処理1005ではマクロ参照の
処理を行う。
【0100】次に、字句解析部10221の処理フロー
を図3を参照して説明する。まず、先頭文字判定処理1
101によって先頭の文字別にどの処理を行うかを判定
する。先頭の文字が数字なら数字処理1102を行い、
記号なら記号処理1103を行い、英字ならシンボル処
理1104を行う。
を図3を参照して説明する。まず、先頭文字判定処理1
101によって先頭の文字別にどの処理を行うかを判定
する。先頭の文字が数字なら数字処理1102を行い、
記号なら記号処理1103を行い、英字ならシンボル処
理1104を行う。
【0101】数字処理1102では字句の切れ目まで文
字を取り込み、取り込んだ文字列を数字として処理し、
その後、字句解析部10221の処理を終了する。
字を取り込み、取り込んだ文字列を数字として処理し、
その後、字句解析部10221の処理を終了する。
【0102】記号処理1103では字句の切れ目まで文
字を取り込み、取り込んだ文字列を記号として処理し、
その後、字句解析部10221の処理を終了する。
字を取り込み、取り込んだ文字列を記号として処理し、
その後、字句解析部10221の処理を終了する。
【0103】シンボル処理1104では字句の切れ目ま
で文字を取り込み、シンボル判定処理1105を行う。
シンボル判定処理1105ではシンボルが予約語である
かユーザシンボルであるかの判定を行い、予約語であれ
ば予約語処理1106を行い、ユーザシンボルであれば
ユーザシンボル処理1107を行い、マクロ仮パラメー
タあるいはマクロローカルシンボルであればマクロシン
ボル再検索処理1108を行う。
で文字を取り込み、シンボル判定処理1105を行う。
シンボル判定処理1105ではシンボルが予約語である
かユーザシンボルであるかの判定を行い、予約語であれ
ば予約語処理1106を行い、ユーザシンボルであれば
ユーザシンボル処理1107を行い、マクロ仮パラメー
タあるいはマクロローカルシンボルであればマクロシン
ボル再検索処理1108を行う。
【0104】予約語処理1106では予約語の処理を行
い、その後、字句解析部10221の処理を終了する。
い、その後、字句解析部10221の処理を終了する。
【0105】ユーザシンボル処理1107ではユーザシ
ンボルの処理を行い、その後、字句解析部10221の
処理を終了する。
ンボルの処理を行い、その後、字句解析部10221の
処理を終了する。
【0106】次に、マクロ定義処理部1023の処理フ
ローを図4を参照して説明する。まずマクロ仮パラメー
タ登録処理1201を行う。マクロ仮パラメータ登録処
理1201では、プログラム中のマクロ定義行の解析を
行い、解析により得られたマクロ仮パラメータをマクロ
シンボルテーブル1028に登録処理し、次にマクロロ
ーカルシンボル登録処理1202を行う。
ローを図4を参照して説明する。まずマクロ仮パラメー
タ登録処理1201を行う。マクロ仮パラメータ登録処
理1201では、プログラム中のマクロ定義行の解析を
行い、解析により得られたマクロ仮パラメータをマクロ
シンボルテーブル1028に登録処理し、次にマクロロ
ーカルシンボル登録処理1202を行う。
【0107】マクロローカルシンボル登録処理1202
は、プログラム中のマクロローカルシンボル定義行の解
析を行い、解析により得られたマクロローカルシンボル
を、マクロシンボルテーブル1028に登録処理し、次
にマクロ定義領域終了判定処理1203を行う。
は、プログラム中のマクロローカルシンボル定義行の解
析を行い、解析により得られたマクロローカルシンボル
を、マクロシンボルテーブル1028に登録処理し、次
にマクロ定義領域終了判定処理1203を行う。
【0108】マクロ定義領域終了判定処理1203はト
ークンを読み出し、トークンがマクロ定義終了語ならば
マクロ定義処理を終了し、そうでないならトークンを出
力用バッファに格納し、マクロ定義領域トークン出力処
理1204を行う。マクロ定義領域トークン出力処理1
204は出力用バッファに格納されたトークンをマクロ
定義領域1027に出力し、マクロ定義領域終了判定処
理1203に戻る。
ークンを読み出し、トークンがマクロ定義終了語ならば
マクロ定義処理を終了し、そうでないならトークンを出
力用バッファに格納し、マクロ定義領域トークン出力処
理1204を行う。マクロ定義領域トークン出力処理1
204は出力用バッファに格納されたトークンをマクロ
定義領域1027に出力し、マクロ定義領域終了判定処
理1203に戻る。
【0109】次に、マクロ参照処理部1024の処理フ
ローを図5を参照して説明する。まず入力先変更処理1
301を行う。入力先変更処理1301は、字句解析部
10221の入力先を保存した後、字句解析部1022
1の入力先をマクロ定義領域1027に変更し、マクロ
仮パラメータ登録処理1302を行う。
ローを図5を参照して説明する。まず入力先変更処理1
301を行う。入力先変更処理1301は、字句解析部
10221の入力先を保存した後、字句解析部1022
1の入力先をマクロ定義領域1027に変更し、マクロ
仮パラメータ登録処理1302を行う。
【0110】マクロ仮パラメータ登録処理1302で
は、ソースプログラム中のマクロ参照行の解析を行い、
解析により得られたマクロ実パラメータの値を、各々マ
クロ仮パラメータエントリ10291に設定し、マクロ
仮パラメータエントリをシンボルテーブル1029に登
録し、マクロローカルシンボル登録処理1303を行
う。
は、ソースプログラム中のマクロ参照行の解析を行い、
解析により得られたマクロ実パラメータの値を、各々マ
クロ仮パラメータエントリ10291に設定し、マクロ
仮パラメータエントリをシンボルテーブル1029に登
録し、マクロローカルシンボル登録処理1303を行
う。
【0111】マクロローカルシンボル登録処理1303
は、他のシンボル名と重複をしないシンボル名を生成
し、そのシンボル名を各々マクロローカルシンボルエン
トリ10292に設定し、マクロローカルシンボルエン
トリ10292をシンボルテーブル1029に登録し、
構文解析処理部1022を呼び出す。
は、他のシンボル名と重複をしないシンボル名を生成
し、そのシンボル名を各々マクロローカルシンボルエン
トリ10292に設定し、マクロローカルシンボルエン
トリ10292をシンボルテーブル1029に登録し、
構文解析処理部1022を呼び出す。
【0112】次に構文解析処理部1022から戻ってき
たら、マクロ仮パラメータ削除処理1304を行う。マ
クロ仮パラメータ削除処理1304は、マクロ仮パラメ
ータエントリをシンボルテーブルから削除し、マクロロ
ーカルシンボル削除処理1305を行う。マクロローカ
ルシンボル削除処理1305は、マクロローカルシンボ
ルエントリをシンボルテーブルから削除し、入力先復帰
処理1306を行う。
たら、マクロ仮パラメータ削除処理1304を行う。マ
クロ仮パラメータ削除処理1304は、マクロ仮パラメ
ータエントリをシンボルテーブルから削除し、マクロロ
ーカルシンボル削除処理1305を行う。マクロローカ
ルシンボル削除処理1305は、マクロローカルシンボ
ルエントリをシンボルテーブルから削除し、入力先復帰
処理1306を行う。
【0113】入力先復帰処理1306は、字句解析部1
0221の入力先を、入力先変更処理1301で保存し
たソースプログラムファイルの入力先に復帰を行い、マ
クロ参照処理1024を終了する。
0221の入力先を、入力先変更処理1301で保存し
たソースプログラムファイルの入力先に復帰を行い、マ
クロ参照処理1024を終了する。
【0114】次に、図12に示したソースプログラムフ
ァイルが入力されたときを具体例として、処理内容を説
明する。
ァイルが入力されたときを具体例として、処理内容を説
明する。
【0115】マクロ定義領域1027はマクロ定義処理
1023によって以下のように作られる。まず、マクロ
仮パラメータ登録処理1201でマクロ仮パラメータ
「para1」の登録を行う。
1023によって以下のように作られる。まず、マクロ
仮パラメータ登録処理1201でマクロ仮パラメータ
「para1」の登録を行う。
【0116】つぎに、マクロローカルシンボル登録処理
1202でマクロローカルシンボル「lab」の登録を行
う。
1202でマクロローカルシンボル「lab」の登録を行
う。
【0117】次にマクロ定義領域終了判定処理1203
を行う。このとき、ソースプログラムファイルの読み出
し位置は3行目の先頭の文字になっており、その文字は
タブであり、マクロ終了語ではないのでマクロ定義領域
トークン出力処理1204を行い、マクロ定義領域10
27にタブを出力して(図14の1文字目)、マクロ定
義領域終了判定処理1203に戻る。
を行う。このとき、ソースプログラムファイルの読み出
し位置は3行目の先頭の文字になっており、その文字は
タブであり、マクロ終了語ではないのでマクロ定義領域
トークン出力処理1204を行い、マクロ定義領域10
27にタブを出力して(図14の1文字目)、マクロ定
義領域終了判定処理1203に戻る。
【0118】トークンがマクロ終了語でないときは、上
記の要領でマクロ定義処理が行われる。
記の要領でマクロ定義処理が行われる。
【0119】したがって同様の処理で6行目のトークン
「endm」の先頭の文字までがマクロ定義領域2027に
出力される(図14の2から28文字目まで)。
「endm」の先頭の文字までがマクロ定義領域2027に
出力される(図14の2から28文字目まで)。
【0120】6行目のトークン「endm」の先頭の文字か
らの処理は以下のようになる。マクロ定義領域終了判定
処理1203は、トークン「endm」を取り出す。トーク
ン「endm」はマクロ終了語なので、これでマクロ定義処
理を終了する。
らの処理は以下のようになる。マクロ定義領域終了判定
処理1203は、トークン「endm」を取り出す。トーク
ン「endm」はマクロ終了語なので、これでマクロ定義処
理を終了する。
【0121】
【発明の効果】マクロ展開処理でマクロ展開領域を作成
する必要がないので、アセンブル処理時間の短縮が図れ
る。短縮される時間は全マクロ参照中のトークンを判断
する時間と、全マクロ参照のコピーにかかる時間であ
る。またマクロ展開領域を作成する必要がないため使用
するメモリの低減ができる。低減されるメモリはアセン
ブラプログラム中の最大のマクロ定義の大きさである。
する必要がないので、アセンブル処理時間の短縮が図れ
る。短縮される時間は全マクロ参照中のトークンを判断
する時間と、全マクロ参照のコピーにかかる時間であ
る。またマクロ展開領域を作成する必要がないため使用
するメモリの低減ができる。低減されるメモリはアセン
ブラプログラム中の最大のマクロ定義の大きさである。
【0122】具体例としてマクロ定義プログラム本体の
大きさが1000ステップのマクロプログラムを10回
参照するような場合、本アセンブル処理方式においてマ
クロ参照処理にかかる時間は、1 × C のみである。
大きさが1000ステップのマクロプログラムを10回
参照するような場合、本アセンブル処理方式においてマ
クロ参照処理にかかる時間は、1 × C のみである。
【0123】C…1マクロ定義中のトークンを判断する
時間(1000ステップのトークンを判断する時間) また、1つのマクロ参照中のトークンを判断する時間は
1つのマクロ定義プログラム中のトークンを判断する時
間と等しい。
時間(1000ステップのトークンを判断する時間) また、1つのマクロ参照中のトークンを判断する時間は
1つのマクロ定義プログラム中のトークンを判断する時
間と等しい。
【0124】さらに通常、1マクロ参照中のトークンを
判断する時間は1マクロ参照のコピーにかかる時間の5
倍程度かかるので、従来のマクロ処理にかかる時間と本
方式のマクロ処理にかかる時間徒の比は、10×A+1
0×(A/5)+1×A:1×A=13×A:1×Aとな
る。
判断する時間は1マクロ参照のコピーにかかる時間の5
倍程度かかるので、従来のマクロ処理にかかる時間と本
方式のマクロ処理にかかる時間徒の比は、10×A+1
0×(A/5)+1×A:1×A=13×A:1×Aとな
る。
【0125】従って、この例ではマクロ処理の13倍の
処理時間の短縮が見込まれる。
処理時間の短縮が見込まれる。
【図1】本発明のアセンブラ処理方式の構成図である。
【図2】本発明の構文解析処理部の処理フローの図であ
る。
る。
【図3】本発明の字句解析処理部の処理フローの図であ
る。
る。
【図4】本発明のマクロ定義処理部の処理フローの図で
ある。
ある。
【図5】本発明のマクロ参照処理部の処理フローの図で
ある。
ある。
【図6】従来のアセンブル処理方式の構成図である。
【図7】従来の構文解析処理部の処理フローの図であ
る。
る。
【図8】従来の字句解析処理部の処理フローの図であ
る。
る。
【図9】従来のマクロ定義処理の処理フローの図であ
る。
る。
【図10】従来のマクロ参照処理の処理フローの図であ
る。
る。
【図11】従来のマクロ参照処理の処理フローの図であ
る。
る。
【図12】ソースプログラムファイルの例である。
【図13】従来におけるマクロ定義領域の作成例であ
る。
る。
【図14】本発明におけるマクロ定義領域の作成例であ
る。
る。
【図15】従来におけるマクロ展開領域2028の作成
例である。
例である。
101 ソースファイル 102 アセンブラ 103 オブジェクトファイル 201 ソースファイル 202 アセンブラ 203 オブジェクトファイル 301 字句解析部 302 構文一致判定処理 303 構文判定処理 304 マクロ参照処理 305 マクロ定義処理 401 先頭文字判定処理 402 数字処理 403 記号処理 404 シンボル処理 405 シンボル判定処理 406 予約語処理 407 ユーザシンボル処理 501 マクロ仮パラメータ登録処理 502 マクロローカルシンボル登録処理 503 先頭文字判定処理 504 マクロシンボルトークン判定処理 505 マクロ仮パラメータ変換処理 506 マクロローカルシンボル変換処理 507 マクロ定義領域トークン出力処理 601 マクロ実パラメータ登録処理 602 マクロ展開領域終了判定処理 603 マクロ展開領域確保処理 604 マクロ定義領域終了判定処理 605 メタ文字判定処理 606 マクロシンボルトークン判定処理 607 マクロ実パラメータ置換処理 608 マクロローカルシンボル生成処理 609 マクロローカルシンボル置換処理 610 マクロ展開領域トークン出力処理 611 入力先変更処理 612 入力先復帰処理 613 マクロ展開領域開放処理 1001 字句解析部 1002 構文一致判定処理 1003 構文判定処理 1004 マクロ参照処理 1005 マクロ定義処理 1021 ソースファイル入力部 1022 構文解析部 1023 マクロ定義処理部 1024 マクロ参照処理部 1025 コード生成処理部 1026 オブジェクトファイル出力部 1027 マクロ定義領域 1028 マクロシンボルテーブル 1029 シンボルテーブル 1101 先頭文字判定処理 1102 数字処理 1103 記号処理 1104 シンボル処理 1105 シンボル判定処理 1106 予約語処理 1107 ユーザシンボル処理 1108 マクロシンボル再検索処理 1201 マクロ仮パラメータ登録処理 1202 マクロローカルシンボル登録処理 1203 マクロ定義領域終了判定処理 1204 マクロ定義領域トークン出力処理 1301 入力先変更処理 1302 マクロ仮パラメータ登録処理 1303 マクロローカルシンボル登録処理 1304 マクロ仮パラメータ削除処理 1305 マクロローカルシンボル削除処理 1306 入力先復帰処理 2021 ソースファイル入力部 2022 構文解析部 20221 字句解析部 202211 シンボル処理部 2023 マクロ定義処理部 2024 マクロ参照処理部 2025 コード生成処理部 2026 オブジェクトファイル出力部 2027 マクロ定義領域 2028 マクロ展開領域 2029 マクロシンボルテーブル 3061〜306N 意味解析処理 10061〜1006N 意味解析処理 10221 字句解析部 10291 マクロ仮パラメータエントリ 10292 マクロローカルシンボルエントリ 20210 シンボルテーブル 102211 シンボル処理部 1022111 マクロシンボル再検索処理部
Claims (5)
- 【請求項1】 ソースファイル入力部と、構文解析部
と、マクロ定義処理部と、マクロ参照処理部と、コード
生成処理部と、オブジェクトファイル出力部とを有する
アセンブル処理方式において、前記構文解析部は字句解
析部を、前記字句解析部はシンボル処理部を、前記シン
ボル処理部はマクロシンボル再検索処理部とを各々有
し、前記構文解析部は、前記ソースファイル入力部を介
しソースファイルからトークンをひとつ取り出し、前記
トークンの構文を判定し、その判定結果に基づき、前記
マクロ定義処理部によるマクロ定義処理、前記マクロ参
照処理部によるマクロ参照処理、予め定められた複数の
意味解析処理、及び終了処理のうちの任意の処理を実行
し、前記字句解析部は、前記トークンの先頭文字を判定
し、その判定結果に基づき、数字処理、記号処理、及び
シンボル処理のうちの任意の処理を実行し、前記シンボ
ル処理部は、前記トークンをシンボル判定し、その判定
結果に基づき、予約語処理、ユーザシンボル処理、及び
マクロシンボル再検索処理のうちの任意の処理を実行
し、前記マクロシンボル再検索処理部は、前記トークン
のシンボル判定の判定結果がマクロ仮パラメータ、又は
マクロローカルシンボルであれば前記字句解析部に分岐
し、前記マクロ定義処理部は、マクロ仮パラメータ登録
処理と、マクロローカルシンボル登録処理と、マクロ定
義領域終了判定処理と、マクロ定義領域トークン出力処
理とを各々実行し、前記マクロ参照処理部は、前記字句
解析部が前記トークンを入力する入力先を保存し、前記
マクロ定義領域の先頭に変更する入力先変更処理と、前
記ソースファイルより取り出されたマクロ参照行の解析
を行い、その解析結果により得られたマクロ実パラメー
タを登録するマクロ仮パラメータ登録処理と、前記ソー
スファイルより取り出されたマクロ参照行の解析を行
い、その解析結果により得られたマクロローカルシンボ
ルを登録するマクロローカルシンボル登録処理と、前記
マクロ定義領域を構文解析しマクロ展開処理を行う前記
構文解析処理と、前記登録されたマクロ仮パラメータを
削除するマクロ仮パラメータ削除処理と、前記登録され
たマクロローカルシンボルを削除するマクロローカルシ
ンボル削除処理と、前記字句解析処理部がトークンを入
力する入力先を前記保存した入力先に復帰する入力先復
帰処理とを各々実行することを特徴としたアセンブル処
理方式。 - 【請求項2】 前記構文解析処理部が、前記字句解析処
理部によりソースファイルから前記トークンをひとつ取
り出す第1の手順と、前記取り出されたトークンの構文
一致判定を行い、予め定められた言語仕様に一致してい
なければ前記第1の手順に分岐する第2の手順と、前記
第2の手順の判定結果が予め定められた言語仕様に一致
していれば、構文判定処理を行う第3の手順と、前記第
3の手順の判定結果がマクロ定義の構文であれば前記マ
クロ定義処理を実行し、前記第1の手順に分岐する第4
の手順と、前記第3の手順の判定結果がマクロ参照の構
文であれば前記マクロ参照処理を実行し、前記第1の手
順に分岐する第5の手順と、前記第3の手順の判定結果
が終了の構文であれば、前記構文解析処理を終了する第
6の手順と、前記第3の手順の判定結果がその他の構文
であれば前記予め定められた複数の意味解析処理のうち
の任意の意味解析処理を実行し、前記第1の手順に分岐
する第7の手順から構成されることを特徴とする請求項
1記載のアセンブル処理方式。 - 【請求項3】 前記字句解析処理部が、前記ソースファ
イル入力部を介して前記ソースファイルから先頭文字を
取りだし前記先頭文字を判定する第1の手順と、前記第
1の手順の判定結果が数字であれば字句の切れ目まで文
字を取り込み、前記数字処理を実行し、前記字句解析処
理を終了する第2の手順と、前記第1の手順の判定結果
が記号であれば字句の切れ目まで文字を取り込み、前記
記号処理を実行し、前記字句解析処理を終了する第3の
手順と、前記第1の手順の判定結果が英字であれば前記
ソースファイルから字句の切れ目まで文字を取り込み、
前記シンボル処理を実行する第4の手順と、前記シンボ
ル判定処理する第5の手順と、前記第5の手順の判定結
果が予約語であれば、前記予約語処理を実行し、前記字
句解析処理を終了する第6の手順と、前記第5の手順の
判定結果がユーザシンボルであれば、前記ユーザシンボ
ル処理を実行し、前記字句解析処理を終了する第7の手
順と、前記第5の手順の判定結果がマクロ仮パラメータ
もしくはマクロローカルシンボルであれば、前記マクロ
シンボル再検索処理を実行し、前記第1の手順に分岐す
る第8の手順から構成されることを特徴とする請求項1
記載のアセンブル処理方式。 - 【請求項4】 前記マクロ定義処理部が、前記ソースフ
ァイルに記録されたプログラム中のマクロ定義行の解析
を行い、前記解析により得られたマクロ仮パラメータを
マクロシンボルテーブルに登録をするマクロ仮パラメー
タ登録処理を行う第1の手順と、前記ソースファイルに
記録された前記プログラム中のマクロローカルシンボル
定義行の解析を行い、前記解析より得られたマクロロー
カルシンボルを前記マクロローカルテーブルに登録する
マクロローカルシンボル登録処理を行う第2の手順と、
前記ソースファイルからトークンを読み出し、前記トー
クンがマクロ終了語でないならば前記マクロ定義領域ト
ークン出力処理を行う第3の手順と、前記第3の手順に
おいて前記トークンが前記マクロ終了語であれば前記マ
クロ定義処理を終了する第4の手順から構成されること
を特徴とする請求項1記載のアセンブル処理方式。 - 【請求項5】 前記マクロ参照処理部が、前記字句解析
部の入力先を保存した後、前記字句解析部の入力先をマ
クロ展開領域に変更する入力先変更処理を行う第1の手
順と、前記ソースファイルに記録された前記プログラム
中のマクロ参照行の解析を行い、解析により得られたマ
クロ定義実パラメータの値を、各々マクロ仮パラメータ
エントリに設定し、前記マクロ仮パラメータエントリを
前記シンボルテーブルに登録するマクロ仮パラメータ登
録処理を行う第2の手順と、既に用いられた他のシンボ
ル名と重複しないシンボル名を生成し、前記生成された
シンボル名を各々マクロローカルシンボルエントリに設
定し、前記マクロローカルシンボルエントリを前記シン
ボルテーブルに登録するマクロローカルシンボル登録処
理を行う第3の手順と、前記構文解析処理を呼び出し、
実行する第4の手順と、前記構文解析処理の実行後、前
記マクロ仮パラメータエントリを前記シンボルテーブル
から削除するマクロ仮パラメータ削除処理を行う第5の
手順と、前記マクロローカルシンボルエントリを前記シ
ンボルテーブルから削除するマクロローカルシンボル削
除処理を行う第6の手順と、前記字句解析部の入力先
を、前記第1の手順で保存した入力先に復帰し、前記マ
クロ参照処理を終了する第7の手順から構成されること
を特徴とするアセンブル処理方式。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09110819A JP3130828B2 (ja) | 1997-04-28 | 1997-04-28 | アセンブル処理方式 |
EP98107726A EP0875825A3 (en) | 1997-04-28 | 1998-04-28 | High speed assemble processing system |
US09/066,825 US5999733A (en) | 1997-04-28 | 1998-04-28 | High speed assemble processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09110819A JP3130828B2 (ja) | 1997-04-28 | 1997-04-28 | アセンブル処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10301790A true JPH10301790A (ja) | 1998-11-13 |
JP3130828B2 JP3130828B2 (ja) | 2001-01-31 |
Family
ID=14545472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09110819A Expired - Fee Related JP3130828B2 (ja) | 1997-04-28 | 1997-04-28 | アセンブル処理方式 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5999733A (ja) |
EP (1) | EP0875825A3 (ja) |
JP (1) | JP3130828B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011113148A (ja) * | 2009-11-24 | 2011-06-09 | Nomura Research Institute Ltd | マクロ展開方法およびプリプロセッサ |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263493B1 (en) * | 1998-07-08 | 2001-07-17 | International Business Machines Corporation | Method and system for controlling the generation of program statements |
US6631516B1 (en) * | 2000-04-25 | 2003-10-07 | International Business Machines Corporatioin | Extended syntax record for assembler language instructions |
US7337438B1 (en) | 2003-03-31 | 2008-02-26 | Applied Micro Circuits Corporation | Macros to support structures for an assembler that does not support structures |
US7571431B2 (en) * | 2003-04-29 | 2009-08-04 | Microsoft Corporation | Processing macro information and displaying via GUI in different tools |
US7565368B2 (en) * | 2004-05-04 | 2009-07-21 | Next It Corporation | Data disambiguation systems and methods |
US7603705B2 (en) * | 2004-05-04 | 2009-10-13 | Next It Corporation | Methods and systems for enforcing network and computer use policy |
US7603506B2 (en) * | 2004-06-18 | 2009-10-13 | Broadcom Corporation | Motherboard with video data processing card capability |
US20050289523A1 (en) * | 2004-06-24 | 2005-12-29 | Broadcom Corporation | Method and apparatus for transforming code of a non-proprietary program language into proprietary program language |
US7612779B2 (en) * | 2004-06-25 | 2009-11-03 | Broadcom Corporation | Video data processing circuits and systems comprising programmable blocks or components |
US7367019B2 (en) * | 2004-09-16 | 2008-04-29 | International Business Machines Corporation | Parameter management using compiler directives |
KR101623564B1 (ko) * | 2010-10-19 | 2016-05-24 | 삼성전자주식회사 | 멀티쓰레드 환경을 테스트하는 커버리지 장치 및 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4553205A (en) * | 1982-09-21 | 1985-11-12 | Salvatore Porchia | Flexible macro expansion process |
US4931928A (en) * | 1988-11-09 | 1990-06-05 | Greenfeld Norton R | Apparatus for analyzing source code |
EP0413651A3 (en) * | 1989-08-18 | 1993-03-03 | International Business Machines Corporation | Method for dynamic self-modification of data stream constructs |
US5339419A (en) * | 1990-06-25 | 1994-08-16 | Hewlett-Packard Company | ANDF compiler using the HPcode-plus compiler intermediate language |
EP0582738A1 (en) * | 1992-08-12 | 1994-02-16 | International Business Machines Corporation | Language compiler |
US5768564A (en) * | 1994-10-07 | 1998-06-16 | Tandem Computers Incorporated | Method and apparatus for translating source code from one high-level computer language to another |
-
1997
- 1997-04-28 JP JP09110819A patent/JP3130828B2/ja not_active Expired - Fee Related
-
1998
- 1998-04-28 EP EP98107726A patent/EP0875825A3/en not_active Withdrawn
- 1998-04-28 US US09/066,825 patent/US5999733A/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011113148A (ja) * | 2009-11-24 | 2011-06-09 | Nomura Research Institute Ltd | マクロ展開方法およびプリプロセッサ |
Also Published As
Publication number | Publication date |
---|---|
EP0875825A3 (en) | 2002-06-19 |
JP3130828B2 (ja) | 2001-01-31 |
EP0875825A2 (en) | 1998-11-04 |
US5999733A (en) | 1999-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710260B (zh) | 一种基于多平台的小程序代码转换方法 | |
JPH10301790A (ja) | アセンブル処理方式 | |
JPH0721033A (ja) | 言語処理装置及びその方法 | |
JPH0567144A (ja) | 前編集支援方法およびその装置 | |
CN111443979A (zh) | 文档处理方法、装置、计算机设备及存储介质 | |
JPH03260766A (ja) | 括弧生成判定機能付翻訳装置 | |
JPH08194611A (ja) | プログラム修正による影響範囲を解析する装置 | |
JPH05197560A (ja) | プログラミング言語変換装置 | |
JPH09198246A (ja) | 関数呼出し状況の解析方法 | |
JP3003459B2 (ja) | プログラム作成支援装置 | |
JP2003177923A (ja) | ポーティング支援システムにおける予約語変換方法 | |
JP2002297587A (ja) | 言語解析用データ作成方法、言語解析方法及び前記方法に用いるプログラム | |
JPH0455938A (ja) | プログラム仕様書自動生成方式 | |
JPH0561687A (ja) | コンパイラの処理方式 | |
JP2001005655A (ja) | アプリケーションジェネレータ開発支援装置及びアプリケーションジェネレータ開発支援方法 | |
JP2933367B2 (ja) | 日本語形態素抽出方法 | |
JPH021027A (ja) | 圧縮形式ソースプログラムのコンパイル方式 | |
JPH036624A (ja) | 複数コード系に対応する翻訳リスト出力処理方式 | |
JPH04248624A (ja) | プログラム変換処理装置 | |
JPH06103023A (ja) | 日本語コード変換処理方式 | |
JPH0785057A (ja) | 構文解析方法及び装置 | |
All et al. | Text Executive Programming Language | |
JP2002032231A (ja) | 文字コード変換方法 | |
JPS63138465A (ja) | 構文解析装置 | |
JPH05150998A (ja) | コンパイラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20001031 |
|
LAPS | Cancellation because of no payment of annual fees |