JPH0695307B2 - 言語処理プリプロセッサ - Google Patents

言語処理プリプロセッサ

Info

Publication number
JPH0695307B2
JPH0695307B2 JP33152688A JP33152688A JPH0695307B2 JP H0695307 B2 JPH0695307 B2 JP H0695307B2 JP 33152688 A JP33152688 A JP 33152688A JP 33152688 A JP33152688 A JP 33152688A JP H0695307 B2 JPH0695307 B2 JP H0695307B2
Authority
JP
Japan
Prior art keywords
line
source program
instruction
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.)
Expired - Lifetime
Application number
JP33152688A
Other languages
English (en)
Other versions
JPH02178841A (ja
Inventor
三喜雄 尾形
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 JP33152688A priority Critical patent/JPH0695307B2/ja
Publication of JPH02178841A publication Critical patent/JPH02178841A/ja
Publication of JPH0695307B2 publication Critical patent/JPH0695307B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、言語処理プリプロセッサに関して、アセンブ
ラのソース・プログラムにおいて、連続した複数行のア
センブリ言語命令を1行のアセンブリ言語命令に変換し
て、出力することを可能とする言語処理プリプロセッサ
に関する。
〔従来の技術〕
従来、プログラムのコードサイズを最小にするために、
2つの機械語命令を特別なハードウェア機構を設けて、
他の1つの機械語命令に置き換えることが可能なマイク
ロコンピュータ用のプログラム開発においては、プログ
ラムが正常に動作するか否かをデバックし、デバックが
完了した時点で、プログラムのコードサイズを小さくす
るために、テキストエディタ等を使用して、前記の2つ
の機械語に相当するアセンブリ言語命令を、前記他の1
つの機械語に相当するアセンブリ言語命令に変換を行な
っていた。
〔発明が解決しようとする課題〕
上述した従来のテキストエディタを使用しての変換で
は、プログラムデバック段階で2つのアセンブリ言語命
令を1つのアセンブリ言語命令に変換すると、バグ修正
毎に前後の命令の組合せから、1つのアセンブリ言語命
令に置き換え可能か否かをチェックする必要があり、修
正に要する時間が大きくなる欠点があった。
さらに、2つのアセンブリ言語命令を、1つのアセンブ
リ言語命令への変換は、ソースプログラムのアセンブリ
命令の記述頻度が多い命令から変換することによって、
最小なプログラムのサイズを得ることができる効果があ
る。したがって、プログラムのデバッグ段階では、最終
のプログラムのアセンブリ命令の記述頻度が決定できな
いため、最小なプログラムを得ることができない欠点が
あった。
また、プログラムデバッグ完了後に上記の命令の変換を
一度に全て行うと、前記の2命令と1命令とでは、命令
実行サイクルが異なるため、システムの動作タイミング
が、デバッグ段階の動作タイミングとは大きく異なるた
め、システムが正常に動作しなくなる可能性がある欠点
を有していた。
また、プログラムを改造する場合は、最小なプログラム
サイズを得るためには、以前に1命令に変換した命令を
元の2命令にテキストエディタ等で再変換した後に、プ
ログラムを改造し、再度アセンブリ命令の記述の頻度に
したがって命令の変換を行なわなければならない欠点が
あった。
さらに、プログラムを改造するために、プログラムの解
読する場合、2つのアセンブリ命令を1つのアセンブリ
命令に変換したソースプログラムは、どのようなアセン
ブリ命令が変換されているのかを常に意識しなければな
らないために、プログラムが読みにくい欠点もあった。
〔課題を解決するための手段〕
本発明によるプリプロセッサは、入力となるソースプロ
グラム中の連続した複数行のアセンブリ言語命令を1行
のアセンブリ言語命令に変換する手段と、置換すべき命
令の組合せを指定する手段と、前記手段で指定した複数
行のアセンブリ言語命令が存在した場合に、前記指定さ
れた複数の機械語命令に対するアセンブリ言語命令をア
センブラへのコメント文として出力する手段とを有し、
前記ソースプログラムに対して、指定された複数行のア
センブリ言語命令を1つのアセンブリ命令に変換して出
力すると同時に置換した命令をコメントとして出力する
ことを特徴とする。
すなわち、本発明の言語処理プリプロセッサにおいて
は、入力となるソース・プログラムの中で、連続した2
行のアセンブリ言語命令aとbが、1つのアセンブリ言
語命令cで置き換え可能である場合、前記言語処理プリ
プロセッサが動作する計算機システムから、前記のアセ
ンブリ言語命令a,bおよびcを入力し、前記言語処理プ
リプロセッサの行管理テーブルに登録する。さらに、前
記行管理テーブルのaとbの行が、前記ソース・プログ
ラムの連続した2行とが一致したことを示すフラグと前
記ソースプログラムの1行が前記aと一致した場合に、
前記ソースプログラム1行を記憶しておくための行バッ
ファを前記言語処理プリプロセッサに用意する。そし
て、以下の順序に従って処理を行ない変換する。
(1) 前記フラグをOFFにする。
(2) 前記ソースプログラムを1行毎に読み込む。
(3) 前記フラグがOFFであれば、以下の処理を行な
い、次に処理(5)を行う。前記読み込んだソースプロ
グラムの1行と前記行管理テーブルのaとを比較する。
もし、一致すれば、前記フラグをONし、前記読み込んだ
ソース行を前記行バッファに格納する。もし、一致しな
ければ、前記読み込んだソースプログラムの1行をその
まま出力する。
(4) 前記フラグがONであれば、以下の処理を行う。
前記読み込んだソースプログラムの1行と前記行管理テ
ーブルのbとを比較する。もし、一致すれば、前記のa
とbの行が一致したことになるため、前記行バッファに
格納していた1行と読み込んだソースプログラム1行を
アセンブリへのコメント行として出力する。次に、前記
行管理テーブルの行cを出力する。これによって、前記
ソースプログラム行aとbを1行のcに変換したことに
なる。さらに、前記フラグをOFFにする。もし、一致し
なければ、前記行バッファに格納していた1行を、通常
のソースプログラム行として出力し、次に前記読み込ん
だソースプログラムの1行を出力し、前記フラグをOFF
にする。
(5) 前記ソースプログラムの終了であるか否かをチ
ェックする。もし、前記ソースプログラムの終了でなけ
れば、処理(2)からの動作を繰り返す。もし、終了で
かつ前記フラグがONであれば、前記行バッファに格納し
ていた1行を通常のソースプログラム行として出力し、
処理を終了する。
このように、本発明の言語処理プリプロセッサでは、ソ
ースプログラムにアセンブリ言語命令での記述頻度に合
わせて、変換する命令を指定するだけで、デバック段階
から最適なプログラムサイズが得られ、かつテキストエ
ディタ等での命令の変換が不要であるため、プログラム
開発時間を大幅に短縮可能である。さらに、ソースプロ
グラムの命令は、そのままコメントとして表示するた
め、プログラム改造時のプログラムの可読性をそのまま
維持できる。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は本発明の処理の全体の流れを示したブロック図
である。全体の処理の構成は、ソースプログラムファイ
ル1,変換行情報ファイル2,言語処理プリプロセッサ3,初
期値設定部4,行管理テーブル処理部5,ソースプログラム
ファイル1の入力処理部6,行管理テーブル比較処理部7,
変換処理部8,終了チェック処理部9,言語処理プリプロセ
ッサ3から出力されるオブジェクトプログラムファイル
10,行管理テーブル300,フラグ301,および行バッファ302
から成っている。
第2図に、変換情報ファイル2の例を、変換対象となる
2行のアセンブリ言語命令201−1、および201−2、変
換する1行のアセンブリ命令202に示す。
第3図に、ソースプログラム100,変換結果101の例を示
す。
以下、1実施例として、行変換行情報を行変換情報ファ
イル2から入力した場合について、順次説明する。
(i) 言語処理プリプロセッサ3において、初期値設
定部4で、フラグ301をOFFに初期設定する。
(ii) 行管理テーブル処理部5において、変換行情報
ファイル2から変換対象となるアセンブリ言語命令201
−1および201−2と変換する命令202を入力して、行管
理テーブル300に格納する。
(iii) ソースプログラム入力処理部6において、ソ
ースプログラムファイル1から、ソースプログラム100
を1行毎に読み込む。
(iv) 行管理テーブル比較処理部7において、処理
(iii)で読み込んだ行と前記行管理テーブル300が一致
するか否かを比較し、以下の処理を行う。もし、前記フ
ラグがOFFであれば、アセンブリ言語命令201−1と比較
を行ない、一致しなければ処理(vii)に制御を移し、
一致すれば、前記フラグをONにして、前記読み込んだソ
ースプログラム行を行バッファ302に格納して制御を処
理(vii)に移す。もし、前記フラグがONであれば、ア
センブリ言語命令201−2とソースプログラム行の比較
を行ない、一致すれば変換処理部8の処理(v)を行
い、一致しなければ、前記フラグ301をOFFにして、処理
(vi)に制御を移す。
(v) 変換処理部8では、行バッファ302に格納して
おいたソースプログラム行と、読み込んだソースプログ
ラム行の2行をアセンブラへのコメントとして、オブジ
ェクトプログラムファイル10に出力する。次に、変換し
た行をオブジェクトプログラムファイル10に出力し、前
記フラグをOFFにして、制御を処理(vii)へ移す。
(vi) 行バッファ302に格納しておいたソースプログ
ラム行および読み込んだ前記ソースプログラム行をオブ
ジェクトプログラムファイル10に出力する。
(vii) ソースプログラムファイル1が終了であるか
否かをチェックする。もし、ソースプログラムファイル
1が終了でなければ、処理(iii)に制御を戻し、処理
を繰り返す。ソースプログラムファイル1が終了でかつ
前記フラグがONであれば、行バッファ302に格納してお
いたソースプログラム行を出力して、処理を終了する。
前記フラグがOFFであれば、そのまま処理を終了する。
上記の処理を第3図のソースプログラム行100−1から1
00−4を例にして説明すると、ソースプログラム行100
−1は、行管理テーブルと一致しないために、処理(ii
i)→処理(vi)→処理(vii)の順で処理され、そのま
ま変換されずにオブジェクトプログラム行101−1とし
て出力される。ソースプログラム100−2は、行管理テ
ーブル300と一致するため、処理(iii)→処理(vi)→
処理(vii)の順で処理され、前記フラグ301は、ONとな
り、ソースプログラム行100−2は、行バッファ302に格
納されている。次に、ソースプログラム100−3は、処
理(iii)→処理(vi)→処理(vii)の順で処理され
て、ソースプログラム行100−2および100−3は、アセ
ンブリへのコメント行として、100−2および101−3と
してオブジェクトプログラムファイル10に出力されか
つ、変換行101−4が変換行としてオブジェクトプログ
ラムファイル10に出力される。ソースプログラム100−
4は、ソースプログラム100−1と同様に、行管理テー
ブルと一致しないために、処理(iii)→処理(vi)→
処理(vii)の順で処理され、そのまま変換されずにオ
ブジェクトプログラム行101−1として出力される。以
上の処理を行なう言語処理プリプロセッサは、ソースプ
ログラム中の連続した2行のアセンブリ言語命令を1行
のアセンブリ命令に変換し、変換の対象となったアセン
ブリ言語命令をコメント文として出力することが可能と
なる。
上記実施例の変換行情報を、ソースプログラムファイル
の先頭に記述場合について変換処理は可能である。
第4図は本発明の処理の全体の流れを示したブロック図
である。全体の処理の構成は、変換行情報が先頭に記述
されたソースプログラムファイル1−1,言語処理プリプ
ロセッサ3,初期値設定部4,行管理テーブル処理部5−1,
ソースプログラムファイル1の入力処理部6,行管理テー
ブル比較処理部7,変換処理部8,終了チェック処理部9,言
語処理プリプロセッサ3から出力されるオブジェクトプ
ログラムファイル10,行管理テーブル300,フラグ301およ
び行バッファ302から成っている。
上記実施例と異なるのは、ソースプログラムファイル1
−1に、行変換情報と通常のソースプログラムが格納さ
れているために、行管理テーブル処理部5−1では、行
変換情報であるか、通常のソースプログラムであるかを
判定することが必要である。第5図に示すように、行情
報であるか、通常のソースプログラムであるかを区別す
る行501−1および行501−2を追加することによって、
前記の判断が可能となり、言語処理プリプロセッサは、
ソースプログラム中の連続した2行のアセンブリ言語命
令を1行のアセンブリ命令に変換することが可能とな
る。
〔発明の効果〕 以上説明したように本発明は、言語処理プリプロセッサ
に対して、複数行のアセンブリ言語命令を、1行のアセ
ンブリ言語命令に変換し、変換対象となったアセンブリ
言語命令をコメントとして出力できる効果がある。
【図面の簡単な説明】
第1図は、本発明の処理の全体の構成図、第2図は行変
換情報の例、第3図はソースプログラムファイルとオブ
ジェクトプログラムファイルの例、第4図は行変換情報
がソースプログラムファイルの先頭にある場合の処理の
全体の構成図、第5図はソースプログラムファイルの先
頭に行変換情報を記述した場合の例を示したものであ
る。 1……ソースプログラムファイル、1−1……ソースプ
ログラムファイル、2……行変換情報ファイル、3……
言語処理プリプロセッサ、4……初期値設定部、5……
行管理テーブル処理部、5−1……行管理テーブル処理
部、6……ソース・プログラム入力処理部、7……行管
理テーブル比較処理部、8……変換処理部、9……終了
チェック処理部、10……オブジェクトプログラムファイ
ル、100……ソースプログラムファイル、100−1……ソ
ースプログラムファイル行、100−2……ソースプログ
ラムファイル行、100−3……ソースプログラムファイ
ル行、100−4……ソースプログラムファイル行、100−
1……オブジェクトプログラムファイル行、100−2…
…オブジェクトプログラムファイル行、101−3……オ
ブジェクトプログラムファイル行、101−4……オブジ
ェクトプログラムファイル行、101−5……オブジェク
トプログラムファイル行、201−1……変換情報ファイ
ル行、201−2……変換情報ファイル行、202……変換情
報ファイル行、501−1……変換情報ファイル行、501−
2……変換情報ファイル行。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】連続記述することにより、本来の命令と異
    なる処理を行う特殊効果を有する命令をもつ中央処理装
    置に対する言語処理プリプロセッサにおいて、入力とな
    るソースプログラム中の連続した複数行のアセンブリ言
    語命令を1行のアセンブリ言語命令に変換する手段と、
    置換すべき命令の組合せを指定する手段と、前記手段で
    指定した複数行のアセンブリ言語命令が存在した場合
    に、前記指定された複数の機械語命令に対するアセンブ
    リ言語命令をアセンブラへのコメント文として出力する
    手段とを設け、前記ソースプログラムに対して、指定さ
    れた複数行のアセンブリ言語命令を1つのアセンブリ命
    令に変換して出力すると同時に置換した命令をコメント
    として出力することを特徴とした言語処理プリプロセッ
    サ。
JP33152688A 1988-12-29 1988-12-29 言語処理プリプロセッサ Expired - Lifetime JPH0695307B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33152688A JPH0695307B2 (ja) 1988-12-29 1988-12-29 言語処理プリプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33152688A JPH0695307B2 (ja) 1988-12-29 1988-12-29 言語処理プリプロセッサ

Publications (2)

Publication Number Publication Date
JPH02178841A JPH02178841A (ja) 1990-07-11
JPH0695307B2 true JPH0695307B2 (ja) 1994-11-24

Family

ID=18244640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33152688A Expired - Lifetime JPH0695307B2 (ja) 1988-12-29 1988-12-29 言語処理プリプロセッサ

Country Status (1)

Country Link
JP (1) JPH0695307B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265095A (ja) * 2006-03-29 2007-10-11 Hitachi Software Eng Co Ltd ソースプログラム検証プログラム

Also Published As

Publication number Publication date
JPH02178841A (ja) 1990-07-11

Similar Documents

Publication Publication Date Title
US6175935B1 (en) Software debugging method and recording medium to which debugging program has been recorded
JPH0695307B2 (ja) 言語処理プリプロセッサ
US6086624A (en) Simulator and simulation method in each of which simulation can be carried out at a high-speed
JPS62226231A (ja) プロセツサ
JP2008204023A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法
JPS5922140A (ja) 対話型コンパイル方式
JPS61110240A (ja) 最適化コンパイラ
JPS6022373B2 (ja) プログラマブル制御装置のプログラム変換機構
JP6944838B6 (ja) 変換装置および変換方法
JPS62205431A (ja) 分岐命令処理方式
JPH05134880A (ja) デイジタル計算機
JP2764833B2 (ja) デバッグ情報のコンパクト化方式
JPH09114655A (ja) 高水準言語レベルでのパッチ作成・運用方式
JPH02207325A (ja) ソースプログラム自動生成方式
JPS6220032A (ja) 情報処理装置
JPS63257038A (ja) 原始プログラム変換における対応識別情報付加方式
JPH06202903A (ja) Cpuシミュレーション方法およびcpuシミュレータ
JPS59106048A (ja) マイクロプロセツサシステム
JPH06131196A (ja) 最適化処理方式
JP2831419B2 (ja) シーケンスコントローラ
JPH02244332A (ja) アセンブラオブジェクト編集出力方式
JPH1124939A (ja) プログラム変換方法
JPH04312122A (ja) プログラム作成装置
JPH02165339A (ja) コンパイル装置
JPH07192034A (ja) インタプリタ型シミュレーション方法