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

言語処理プリプロセッサ

Info

Publication number
JPH02178841A
JPH02178841A JP33152688A JP33152688A JPH02178841A JP H02178841 A JPH02178841 A JP H02178841A JP 33152688 A JP33152688 A JP 33152688A JP 33152688 A JP33152688 A JP 33152688A JP H02178841 A JPH02178841 A JP H02178841A
Authority
JP
Japan
Prior art keywords
line
instruction
source program
processing
language
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
Application number
JP33152688A
Other languages
English (en)
Other versions
JPH0695307B2 (ja
Inventor
Mikio Ogata
尾形 三喜雄
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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

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

Claims (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 true JPH02178841A (ja) 1990-07-11
JPH0695307B2 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)

Cited By (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 ソースプログラム検証プログラム

Cited By (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
JPH0695307B2 (ja) 1994-11-24

Similar Documents

Publication Publication Date Title
US5701487A (en) Method and apparatus for displaying locations of errors detected inside software macro calls
JPH05508725A (ja) 構造演算用演算装置
JPH09212356A (ja) インタープリタ言語で記述されたコンピュータ用ソフトウェアの保護システム
JPH02178841A (ja) 言語処理プリプロセッサ
JP3300090B2 (ja) 試験プログラム実行方法
JPH05150960A (ja) プリコンパイラ
JPS63273132A (ja) プログラム開発支援システム
JPS63257038A (ja) 原始プログラム変換における対応識別情報付加方式
JPH0430239A (ja) コマンドオプション指定処理装置
JPH01251230A (ja) プログラム変換システム
JPS58168153A (ja) デ−タ処理システム
JPS6266371A (ja) テキスト分離型学習システム
JPS63128438A (ja) コンパイラの外部手続呼出し形式検査方法
JPS63168768A (ja) 帳票出力定義方法
JPS63141415A (ja) 並直列変換回路
JPH02205930A (ja) インタフェースチェック処理方法
JPH07192034A (ja) インタプリタ型シミュレーション方法
JPH025131A (ja) 実行ユニット変更方式
JPH11161501A (ja) コンパイル装置
JPH05224946A (ja) 入出力並び最適化処理方式
JPH0277842A (ja) 機械語注釈挿入方式
JP2004145677A (ja) コード生成方法および装置
JPH02244332A (ja) アセンブラオブジェクト編集出力方式
JPH0612259A (ja) コンパイラ処理方式
JPH0481927A (ja) Pad作成装置