JPH06259261A - ニモニック構文解析処理方式 - Google Patents

ニモニック構文解析処理方式

Info

Publication number
JPH06259261A
JPH06259261A JP4618793A JP4618793A JPH06259261A JP H06259261 A JPH06259261 A JP H06259261A JP 4618793 A JP4618793 A JP 4618793A JP 4618793 A JP4618793 A JP 4618793A JP H06259261 A JPH06259261 A JP H06259261A
Authority
JP
Japan
Prior art keywords
token
operator
mnemonic
register
registered
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
JP4618793A
Other languages
English (en)
Inventor
Rumiko Fujita
るみ子 藤田
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 IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems Co 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 NEC IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
Priority to JP4618793A priority Critical patent/JPH06259261A/ja
Publication of JPH06259261A publication Critical patent/JPH06259261A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】算術形式のニモニック構文解析処理において、
処理時間の短いニモニック構文解析処理方式を提供す
る。 【構成】本発明のニモニック構文解析処理方式は算術形
式のニモニックの構文解析において、原始プログラムを
読み込み、ニモニック文字列をトークン分解し演算子用
トークン・テーブルとレジスタ用トークン・テーブルへ
分けて登録する第1の処理と、第1の処理で作成された
演算子用トークン・テーブル内のトークン・パターンを
演算子パターン・テーブルから検索し、ニモニックを決
定する第2の処理と、第2の処理で決定したニモニック
と第1の処理で作成されたレジスタ用トークン・テーブ
ル内のトークンから、コードを生成する第3の処理を有
することを特徴としている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ニモニック構文解析処
理方式、特に算術形式の構文を持つニモニックのニモニ
ック構文解析処理方式に関する。
【0002】
【従来の技術】一般にニモニック構文解析処理は、原始
プログラムを機械語の目的プログラムに翻訳する過程
で、原始プログラムに記述されている構文を解析しニモ
ニックを決定する処理であり、処理速度の高速性、高い
構文エラーの検出率が要求される。
【0003】まず、算術形式のニモニックと、一般的な
ニモニックとの違いについて説明する。加算命令を例に
示すと、一般的なニモニックは“ADD AX,123
4H”と表現されるが、算術形式のニモニックは“R0
=R0+1234H”と表現される。一般的なニモニッ
クは、ADDのような先頭の1つのキーワードでニモニ
ックを決定できる構文を持っているが、算術形式のニモ
ニックは演算子の並びによってニモニックが決定される
特徴を持っている。
【0004】次に、従来の算術形式のニモニック構文解
析処理方式を図4を用いて説明する。
【0005】図4において、まず字句解析処理401に
おいて、原始プログラム404を読み込み、ニモニック
文字列を演算子,レジスタ,イミディエイト・データな
どのトークンに分解し、それらのトークンをトークン・
テーブル406へ登録する。次にニモニック決定処理4
02において、前述のトークン・テーブル406内のト
ークン・パターンを、あらかじめ各ニモニックのトーク
ン・パターンが登録されているトークン・パターン・テ
ーブル405から同一パターンを検索し、ニモニックを
決定する。つづいてコード生成処理403において、前
述のニモニック決定処理402で決定したニモニック
と、前述のトークン・テーブル406内のトークンから
検索したレジスタおよびイミディエイト・データから、
ニモニックのコードを生成する。
【0006】このように、字句解析時に作成したトーク
ン・テーブル内の全トークンを、ニモニック決定処理と
コード生成処理との2度、検索することになり、処理時
間が長くなる欠点がある。
【0007】
【発明が解決しようとする課題】従来の算術形式のニモ
ニック構文解析処理方式において、算術形式のニモニッ
クは1つのトークンからニモニックを決定することはで
きず、トークンの並びのパターンによってニモニックが
決定されるため、ニモニック決定処理で、字句解析時に
作成したトークン・テーブル内の全トークンを検索しな
ければならない。また、レジスタおよびイミディエイト
・データ・タイプのトークンを選択するために、コード
生成処理でもう一度、トークン・テーブル内の全トーク
ンを検索しなければならないため、合計2度のトークン
・テーブルの検索をすることにより処理時間が長くなる
欠点がある。
【0008】そこで本発明の目的は、以上の欠点を解決
し、トークン・テーブルを演算子タイプのトークンを登
録する演算子用トークン・テーブルと、レジスタおよび
イミディエイト・データ・タイプのトークンを登録する
レジスタ用トークン・テーブルに分離することにより、
2度のトークン・テーブルの検索処理を1度に減らし、
処理時間の短いニモニック構文解析処理方式を提供する
ことにある。
【0009】
【課題を解決するための手段】本発明のニモニック構文
解析処理方式は、算術形式のニモニックの構文解析にい
て、原始プログラムを読み込み、ニモニック文字列をト
ークン分解し、演算子タイプのトークンを演算子用トー
クン・テーブルへ、レジスタおよびイミディエイト・デ
ータ・タイプのトークンをレジスタ用トークン・テーブ
ルへ登録する第1の処理部と、あらかじめ各ニモニック
の演算子タイプのトークン・パターンが登録されている
演算子パターン・テーブルと、第1の処理部で作成され
た演算子用トークン・テーブル内のトークン・パターン
を、前述の演算子パターン・テーブルから検索し、ニモ
ニックを決定する第2の処理部と、第2の処理部で決定
したニモニックと第1の処理部で作成されたレジスタ用
トークン・テーブル内のトークンから、コード生成する
第3の処理部とを有することを特徴としている。このよ
うにすることにより、トークン・テーブルからの演算子
タイプのトークン検索処理と、レジスタおよびイミディ
エイト・データ・タイプのトークン検索処理を省略する
ことができ、ニモニックの構文解析処理時間を短縮する
ことができる。
【0010】
【実施例】まず、算術形式のニモニックの構文解析処理
方式を図1を用いて説明する。
【0011】図1の字句解析処理101において、原始
プログラム104を読み込み、ニモニック文字列をトー
クン分解し、演算子は演算子用トークン・テーブル10
6へ、レジスタおよびイミディエイト・データはレジス
タ用トークン・テーブル107へ登録する。登録方法に
ついては、後に図2,図3で例を示して説明する。次に
図1のニモニック決定処理102において、前述の演算
子用トークン・テーブル106内のトークン・パターン
を、あらかじめ各ニモニックの演算子タイプのトークン
・パターンが登録されている演算子パターン・テーブル
105から検索し、ニモニックを決定する。つづいてコ
ード生成処理103において、前述のニモニック決定処
理102で決定したニモニックと前述のレジスタ用トー
クン・テーブル107内のトークンから、ニモニックの
コードを生成する。
【0012】次に演算子用トークン・テーブル106、
レジスタ用トークン・テーブル107への登録例を、図
2,図3を用いて説明する。
【0013】図2に、レジスタ用トークン・テーブル、
演算子用トークン・テーブルへのトークンの登録例を示
し、各トークン・テーブルが1次元配列型の場合と、2
次元配列型の場合を例にあげて説明する。
【0014】図2において、ニモニック文字列201を
トークン分割し、1次元配列型トークン・テーブルへ登
録する場合、第1番目のトークンR0 202はレジス
タであるので、レジスタ用トークン・テーブル210へ
登録する。次に第2番目のトークン= 203は演算子
であるため、演算子用トークン・テーブル211へ登録
し、つづいて区切りマーク※ 209をレジスタ用トー
クン・テーブル210、演算子用トークン・テーブル2
11の両方へ登録する。以下同様に、最後のトークンR
3H 208を登録するまで、登録処理を繰り返す。
【0015】また、図2において、ニモニック文字列2
01をトークン分解し、2次元配列型トークン・テーブ
ルへ登録する場合、第1番目のトークンR0 202は
レジスタであるので、レジスタ用トークン・テーブル2
12へ登録する。次に第2番目のトークン= 203は
演算子であるため、演算子用トークン・テーブル214
へ登録し、つづいてレジスタ用トークン・テーブル21
2の配列ポインタ213と、演算子用トークン・テーブ
ル214の配列ポインタ215をそれぞれ次へ進める。
以下同様に、最後のトークンR3H 208を登録する
まで、登録処理を繰り返す。
【0016】次に図3において、出現するレジスタと演
算子は同じで、レジスタと演算子の位置関係が異なって
いる2つのニモニックの登録例を示し、トークン・テー
ブルが1次元配列型の場合を例にあげて説明する。
【0017】図3において、3つのトークンから成るニ
モニック文字列301をトークン分解し、1次元配列型
トークン・テーブルへ登録する場合、第1番目のトーク
ンR0 302はレジスタであるので、レジスタ用トー
クン・テーブル306へ登録する。次に第2番目のトー
クン−= 303は演算子であるため、演算子用トーク
ン・テーブル307へ登録し、つづいて区切りマーク※
305をレジスタ用トークン・テーブル306、演算
子用トークン・テーブル307の両方へ登録する。第3
番目のトークンR1 304はレジスタであるので、レ
ジスタ用トークン・テーブル306へ登録する。次に、
4つのトークンから成るニモニック文字列308をトー
クン分解し、1次元配列型トークン・テーブルへ登録す
る場合、第1番目のトークン− 309は演算子である
ので、演算子用トークン・テーブル314へ登録し、つ
づいて区切りマーク※ 305をレジスタ用トークン・
テーブル313、演算子用トークン・テーブル314の
両方へ登録する。第2番目のトークンR0 310はレ
ジスタであるので、レジスタ用トークン・テーブル31
3へ登録する。、第3番目のトークン= 311は演算
子であるので、演算子用トークン・テーブル314へ登
録し、つづいて区切りマーク※ 305をレジスタ用ト
ークン・テーブル313、演算子用トークン・テーブル
314の両方へ登録する。第4番目のトークンR1 3
12はレジスタであるので、レジスタ用トークン・テー
ブル313へ登録する。
【0018】このように、出現するレジスタと演算子は
同じニモニックでも、レジスタと演算子の位置関係が異
なっていれば、トークン・テーブルへの登録パターンは
異なるため、ニモニック決定処理では、演算子用トーク
ン・テーブルを検索するだけでニモニック決定が可能で
あり、その後のコード生成では、レジスタ用トークン・
テーブルを検索するだけでコード生成が可能である。
【0019】
【発明の効果】第1に、トークン・テーブルの検索時間
を短縮できる。本発明のニモニック構文解析処理方式に
よれば、トークン・テーブルを演算子タイプのトークン
を登録する演算子用トークン・テーブルと、レジスタお
よびイミディエイト・データ・タイプのトークンを登録
するレジスタ用トークン・テーブルに分離することによ
り、演算子用トークン・テーブルとレジスタ用トークン
・テーブルをそれぞれ1度ずつ検索すればよい。この場
合の検索量は、従来のニモニック構文解析処理方式で行
っていたトークン・テーブルの1度の検索と等しい。そ
のため、従来のニモニック構文解析処理方式で行ってい
た、2度の検索処理が1度に減ることになり、トークン
・テーブルの検索時間を従来の1/2に短縮できるとい
う効果を得ることができる。
【0020】第2に、ニモニック決定の処理時間を短縮
できる。実施例でも明らかなように、算術形式のニモニ
ック文字列には、演算子タイプのトークンとレジスタお
よびイミディエイト・データ・タイプのトークンが交互
に記述される。そのため、本発明の演算子用トークン・
テーブルに登録されるトークン量は、従来の技術のトー
クン・テーブルに登録されるトークン量の約1/2とな
る。同様に、本発明の演算子パターン・テーブルに登録
されるトークン量も、従来の技術のトークン・パターン
・テーブルに登録されるトークン量の約1/2となる。
このように検索するトークン・パターンのパターン数は
そのままで、パターンを構成するトークン量が約1/2
になるため、検索時に同一パターンかどうかの判断のた
めにトークン比較する回数が約1/2に減り、ニモニッ
ク決定処理時間を短縮できるという効果を得ることがで
きる。
【0021】しかし、従来の技術と比較して、本発明で
追加される処理もある。字句解析処理において、演算子
タイプのトークンが、レジスタおよびイミディエイト・
データ・タイプのトークンかを判断し、演算子用トーク
ン・テーブルとレジスタ用トークン・テーブルとに分け
て登録する処理である。ところが、前述のように算術形
式のニモニック文字列には、演算子タイプのトークンと
レジスタおよびイミディエイト・データ・タイプのトー
クンとが交互に記述されることから、第1番目のトーク
ンが、演算子タイプかレジスタおよびイミディエイト・
データ・タイプかがわかれば、第2番目以降は判別を行
わなくても2つのトークン・テーブルへ交互に登録する
だけで、演算子用トークン・テーブルとレジスタ用トー
クン・テーブルとに分けて登録することができる。した
がって、追加する処理は、第1番目のトークンの判別処
理だけでよいので、処理時間には大きな影響を与えな
い。
【0022】以上のことから、第1番目のトークンの判
別処理時間が追加されても、第1,第2の効果の方が十
分に大きいため、ニモニック構文解析処理全体としての
処理時間を短縮できるという効果を得ることができる。
【図面の簡単な説明】
【図1】本発明の一実施例図
【図2】本実施例のトークン・テーブルへの登録の一例
【図3】本実施例のトークン・テーブルへの登録の他の
例図
【図4】従来の技術を示す図

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 算術形式のニモニックの構文解析におい
    て、原始プログラムを読み込み、ニモニック文字列をト
    ークン分解し、演算子タイプのトークンを演算子用トー
    クン・テーブルへ、レジスタおよびイミディエイト・デ
    ータ・タイプのトークンをレジスタ用トークン・テーブ
    ルへ登録する第1の処理部と、あらかじめ各ニモニック
    の演算子タイプのトークン・パターンが登録されている
    演算子パターン・テーブルと、第1の処理部で作成され
    た演算子用トークン・テーブル内のトークン・パターン
    を、前述の演算子パターン・テーブルから検索し、ニモ
    ニックを決定する第2の処理部と、第2の処理部で決定
    したニモニックと第1の処理部で作成されたレジスタ用
    トークン・テーブル内のトークンから、コード生成する
    第3の処理部とを有することを特徴とするニモニック構
    文解析処理方式。
JP4618793A 1993-03-08 1993-03-08 ニモニック構文解析処理方式 Pending JPH06259261A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4618793A JPH06259261A (ja) 1993-03-08 1993-03-08 ニモニック構文解析処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4618793A JPH06259261A (ja) 1993-03-08 1993-03-08 ニモニック構文解析処理方式

Publications (1)

Publication Number Publication Date
JPH06259261A true JPH06259261A (ja) 1994-09-16

Family

ID=12740048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4618793A Pending JPH06259261A (ja) 1993-03-08 1993-03-08 ニモニック構文解析処理方式

Country Status (1)

Country Link
JP (1) JPH06259261A (ja)

Similar Documents

Publication Publication Date Title
JPH0630066B2 (ja) テーブル型言語翻訳方法
CN114896269B (zh) 结构化查询语句检测方法、装置、电子设备及存储介质
US5132901A (en) System and method for input of target language equivalents and determination of attribute data associated therewith
US20040010780A1 (en) Method and apparatus for approximate generation of source code cross-reference information
JP2004157927A (ja) 帳票入力用プログラムの生成方式、生成プログラム及び生成方法
JP2724235B2 (ja) 変数名称推論装置
JP2812511B2 (ja) キーワード抽出装置
JP2580336B2 (ja) 言語処理系における名前の属性検査処理方式
JPH02278340A (ja) コンパイル方式
JPH03245233A (ja) 名標の検索方式
WO1997007452A1 (en) Programmable compiler
JPH0668070A (ja) 複合語辞書登録装置
JPH0752391B2 (ja) 複数データベース記述を含む原始プログラムの翻訳方式
JPH021030A (ja) コンパイル方式
JP2842611B2 (ja) 候補文生成による自然文意味解析処理装置
Baumann A Query Language for Analytics on Spatio-Temporally Varying Objects
JP2000132405A (ja) インライン展開処理装置及び方法
JPS62180428A (ja) 共通式検出方式
JPH02195438A (ja) マクロ展開における回帰的呼び出し検出方式
JPH04260134A (ja) 言語処理システムの名標管理方式
JPH0359724A (ja) 翻訳システムにおけるエラー情報圧縮方式
JPH06214798A (ja) プログラミング言語のコンパイラ
JPH06242958A (ja) コンパイル方式
JPH04273328A (ja) クロスリファレンスリスト生成方式
JPH0644081A (ja) コンパイラのエラーメッセージ出力方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000201