JPH05143352A - マクロプロセツサ - Google Patents

マクロプロセツサ

Info

Publication number
JPH05143352A
JPH05143352A JP30491691A JP30491691A JPH05143352A JP H05143352 A JPH05143352 A JP H05143352A JP 30491691 A JP30491691 A JP 30491691A JP 30491691 A JP30491691 A JP 30491691A JP H05143352 A JPH05143352 A JP H05143352A
Authority
JP
Japan
Prior art keywords
instruction
macro
skip
branch
source 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.)
Pending
Application number
JP30491691A
Other languages
English (en)
Inventor
Akiko Maruhashi
明子 丸橋
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 JP30491691A priority Critical patent/JPH05143352A/ja
Publication of JPH05143352A publication Critical patent/JPH05143352A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 同一条件で判断を行うスキップ命令および分
岐命令と、マクロを含むソースプログラムを正常に処理
できるようにマクロ展開可能なマクロプロセッサを実現
する。 【構成】 スキップ命令判断手段21により入力された
命令がスキップ命令であると判断され、この直後がマク
ロ参照であり、このマクロ参照がマクロ命令数判断手段
22により1命令でないと判断された場合、スキップ命
令分岐命令変換手段23により、このスキップ命令を同
じ条件で判断する分岐命令に変換し、分岐先シンボル生
成手段24によりシンボルを自動生成し、マクロ展開手
段26によりマクロ展開を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マクロを含むソースプ
ログラムを入力し、マクロを解釈しマクロ展開を行いマ
クロ展開ソースプログラムを生成出力するマイクロコン
ピュータ用のマクロプロセッサに利用され、特に、ソー
スプログラムが同じ条件で判断を行うスキップ命令と分
岐命令を有する場合のマクロ展開方式に関する。
【0002】
【従来の技術】図11は従来のマクロプロセッサの一例
の要部を示すブロック構成図である。
【0003】この従来例のマクロプロセッサ20は、マ
クロと、同じ条件で判断を行うスキップ命令および分岐
命令とを含むソースプログラム10を入力し、マクロ展
開を行いマクロ展開ソースプログラム30を生成出力す
るマクロ展開手段26を備えている。なお、図11にお
いて40は補助記憶装置である。
【0004】次に、この従来例の動作について図12に
示す流れ図を参照して説明する。
【0005】なお、ここで、マクロとは、命令の並びに
名前を割り当てて、命令の代わりに割り当てた名前をソ
ースプログラムに記述するものである。
【0006】マクロプロセッサ20は、ソースプログラ
ム10を入力し、ソースプログラムを先頭から順次1行
ずつ、つまり1命令ずつ入力し、マクロを展開したマク
ロ展開ソースプログラム30を生成していく。その処理
は、前処理(ステップS21)の後、ソースプログラム
10を1行入力した後(ステップS22、S23)、そ
の命令がマクロを定義するマクロ定義命令であるかステ
ップS24で判断し、マクロ定義命令であれば、さらに
1行ずつ入力しマクロの終わりを示す命令までをマクロ
として領域に登録する(ステップS25)。そのとき、
マクロ名も、領域に登録する。
【0007】ステップS24での判断の結果がマクロ定
義命令でなければ、ステップS23で入力された1命令
をマクロ参照命令であるかステップS26でさらに判断
し、マクロ参照命令でかつ参照したいマクロが、マクロ
名が登録される領域に登録してあれば、マクロが登録さ
れるメモリ領域に登録されているマクロを展開し出力す
る(ステップS27)。ステップS23で1行入力した
命令が、マクロ定義命令とマクロ参照命令のどちらでも
ない場合は、入力した命令をそのまま出力する(ステッ
プS28)。ステップS22で入力データが終りと判断
されたら、ステップS29で後処理を行い処理を終る。
【0008】
【発明が解決しようとする課題】以上説明したように、
従来のマクロプロセッサによるマイクロコンピュータの
ソフトウェア開発において、マクロを含むソースプログ
ラム内で、スキップ命令、つまり次の1命令をスキップ
する命令の直後にマクロ参照命令を記述する場合、スキ
ップ命令でマクロ全体をスキップするようにマクロを展
開する手段をマクロプロセッサは持っていなかったた
め、プログラムが正常に処理を行うことができなかっ
た。そのため、プログラマがマクロ参照命令を通常の命
令と区別する必要があった。
【0009】一方、マクロとは、マイクロコンピュータ
の持っていない命令を、マイクロコンピュータが持って
いる1つ以上の命令で定義するもので、マクロはマイク
ロコンピュータの持っている命令と区別なく記述できる
必要がある。しかし、スキップ命令を持ったマイクロコ
ンピュータにおいては、マクロはマイクロコンピュータ
の命令と区別して記述しなければならない課題があっ
た。
【0010】本発明の目的は、前記の課題を解消するこ
とにより、マクロを含むソースプログラムを正常に処理
できるマクロ展開方式を有するマクロプロセッサを提供
することにある。
【0011】
【課題を解決するための手段】本発明は、マクロと、同
じ条件で判断を行うスキップ命令および分岐命令とを含
むソースプログラムを入力しマクロ展開を行いマクロ展
開ソースプログラムを生成出力するマクロ展開手段を備
えたマクロプロセッサにおいて、命令がスキップ命令で
あるか否かを判断するスキップ命令判断手段と、参照さ
れたマクロが1命令であるか否かを判断するマクロ命令
数判断手段と、前記スキップ命令を同じ条件判断を行う
分岐命令に変換するスキップ命令分岐命令変換手段と、
前記分岐命令の分岐先を示すシンボルを自動生成する分
岐先シンボル生成手段と、入力した前記ソースプログラ
ム内のスキップ命令の直後がマクロ参照であり、その参
照命令数が1命令でない場合、スキップ命令をそれと同
じ条件判断をする分岐命令に変換し、シンボルを作成し
マクロ展開を行うマクロ展開制御手段とを備えたことを
特徴とする。
【0012】また、本発明は、前記ソースプログラム
は、オペランドで指定された分岐先に応じてプログラム
の処理に影響がなければ自動的にスキップ命令を出力す
る疑似命令を含み、前記マクロプロセッサは、前記疑似
命令が入力された場合これを判別しスキップ命令に変換
する疑似命令スキップ命令変換手段を備えたことを特徴
とする。
【0013】
【作用】スキップ命令判断手段により、命令がスキップ
命令であると判断され、このスキップ命令の直後がマク
ロ参照であり、このマクロ参照がマクロ命令数判断手段
により1命令でないと判断された場合、スキップ命令分
岐命令変換手段により、このスキップ命令を同じ条件で
判断する分岐命令に変換し、分岐先シンボル生成手段に
よりシンボルを自動生成しマクロ展開を行う。
【0014】従って、ソースプログラム内のスキップ命
令の直後にマクロ参照がある場合でも、条件判断により
マクロ全体をスキップすることができ、マクロを含むソ
ースプログラムを正常に処理することが可能となる。
【0015】また、スキップ命令が疑似命令により与え
られているときには、疑似命令スキップ命令変換手段に
よりスキップ命令に変換することで、上と同様に処理す
ることができる。
【0016】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。
【0017】図1は本発明の第一実施例の要部を示すブ
ロック構成図である。
【0018】本第一実施例は、マクロと、同じ条件で判
断を行うスキップ命令および分岐命令とを含むソースプ
ログラム10を入力しマクロ展開を行いマクロ展開ソー
スプログラム30を生成出力するマクロ展開手段26を
備えマクロプロセッサ20aにおいて、本発明の特徴と
するところの、命令がスキップ命令であるか否かを判断
するスキップ命令判断手段21と、参照されたマクロが
1命令であるか否かを判断するマクロ命令数判断手段2
2と、前記スキップ命令を同じ条件判断を行う分岐命令
に変換するスキップ命令分岐命令変換手段23と、前記
分岐命令の分岐先を示すシンボルを自動生成する分岐先
シンボル生成手段24と、入力した前記ソースプログラ
ム内のスキップ命令の直後がマクロ参照であり、その参
照命令数が1命令でない場合、スキップ命令をそれと同
じ条件判断をする分岐命令に変換し、シンボルを作成し
マクロ展開を行うマクロ展開制御手段25とを備えてい
る。
【0019】次に、本第一実施例の動作について図2な
いし図6を参照して説明する。ここで、図2は本第一実
施例の処理手順を示す流れ図、図3はそのソースプログ
ラム中のスキップ命令および分岐命令例を示す説明図、
図4はその分岐先シンボル生成手段の一例を示すブロッ
ク構成図、図5はそのマクロを含むソースプログラム例
を示す説明図、および図6はそのマクロ展開ソースプロ
グラム例を示す説明図である。
【0020】前処理が行われ(ステップS1)、データ
の終了判定処理(ステップS2)で、データがまだ有る
と判断された場合に、ソースプログラム1を1行(1命
令)入力し(ステップS3)、ステップS4でマクロ定
義命令か否かの判断処理を行うことは、従来の技術で説
明した図12のステップS21〜S24の処理と同じで
ある。
【0021】ステップS3で1行入力した命令がステッ
プS4の判断結果、マクロ定義命令であれば、従来の技
術に加え、マクロ名と共にマクロの命令数を、ステップ
S5でマクロ名とマクロの命令数を登録する領域に登録
する。
【0022】また、マクロ定義命令でなければ、ステッ
プS3で入力した1命令が図3に示すようなスキップ命
令11かどうか判断する(ステップS6)。その結果、
図3に示されるうちのいずれでもなければ従来の技術同
様、ステップS13のマクロ参照命令判断処理に処理が
移る。そして、マクロ参照命令でなければ、ステップS
3で入力した命令をそのまま出力し(ステップS1
5)、マクロ参照命令であれば、マクロ展開して出力す
る(ステップS14)。
【0023】ステップS6で図3に示されるいずれかの
スキップ命令11である場合は、そのスキップ命令11
を領域に登録し(ステップS7)さらに次の1行を入力
し(ステップS8)、その命令がマクロ参照命令である
か否かステップS9で判断をする。その結果、マクロ参
照命令でなければ、ステップS7で登録したスキップ命
令と、マクロ参照命令でなかったステップS8で入力し
た命令をそのまま出力する(ステップS12)。マクロ
参照命令であれば、ステップS5で登録した領域をみに
いき、参照されるマクロ名が登録されており、かつ、マ
クロの命令数が1ならば、ステップS7で登録したスキ
ップ命令と、参照されるマクロを展開し出力する。参照
されるマクロ名が登録されており、マクロの命令数が複
数ならば、図4のシンボル自動生成用カウンタ24aに
よりシンボルを生成し(ステップS10)、ステップS
7で登録したスキップ命令11を、図3に示すような、
対応する分岐命令12に置き換え、分岐命令のオペラン
ドに生成したシンボルを埋め込み、参照されるマクロを
展開し出力する(ステップS11)。この処理を、図5
と図6に示す。図5は、がスキップ命令、かつ直後は
複数の命令からなるマクロ参照命令なので、シンボル
を自動生成し、スキップ命令を同じ条件判断を行う分岐
命令に置き換え、生成したシンボルを分岐命令に埋め込
み、図6に示すマクロ展開ソースプログラム30aのよ
うにマクロを展開する。
【0024】以上のような処理を、入力されたソースプ
ログラムの終わりまで行い(ステップS2、S16)、
マクロを含むソースプログラムを、マクロ展開ソースプ
ログラムに生成する。
【0025】図7は本発明の第二実施例の要部を示すブ
ロック構成図である。
【0026】本第二実施例の図1の第一実施例におい
て、本発明の特徴とするところの、ソースプログラム1
0が、オペランドで指定された分岐先に応じてプログラ
ムの処理に影響がなければ自動的にスキップ命令を出力
する疑似命令を含むソースプログラム10aであり、マ
クロプロセッサ20aを、さらに、前記疑似命令が入力
された場合これを判別しスキップ命令に変換する疑似命
令スキップ命令変換手段27を備えたマクロプロセッサ
20bに代えたものである。
【0027】次に、本第二実施例の動作について、図
8、図9および図10を参照して説明する。ここで、図
8はそのソースプログラム内の疑似命令とスキップ命令
と分岐命令の一例を示す説明図、図9はその疑似命令を
含むソースプログラム例を示す説明図、および図10は
そのスキップ命令に変換したソースプログラム例を示す
説明図である。
【0028】疑似命令スキップ命令変換手段27は、入
力した命令が、図8に示す疑似命令13の場合、疑似命
令13に記述されている分岐先を解釈し、スキップ命令
11で、その分岐先に処理を移すことが可能な場合、疑
似命令13をスキップ命令に変換し出力する。
【0029】この処理を、図9と図10に示す。図9の
ソースプログラム10bにおいてが疑似命令13であ
り、分岐先であるシンボルの解析結果、図8で示すスキ
ップ命令11に変換可能と判断し、図10に示すスキッ
プ命令に変換したソースプログラム10cを出力する。
【0030】これ以後の処理は、図2の第一実施例の処
理手順と同様に行われる。
【0031】
【発明の効果】以上説明したように、本発明は、アセン
ブリ言語によるマイクロコンピュータのソフトウェア開
発において、以下のような効果を得ることができる。
【0032】マクロの記述を含むソースプログラムをマ
クロ展開したソースプログラムに生成する場合、本発明
のマクロプロセッサを使用することにより、ソースプロ
グラム内のスキップ命令の直後にマクロ参照がある場合
でも、条件判断によりマクロ全体をスキップすることが
でき、プログラマが、マクロ参照命令を通常の命令と同
様に意識せず活用できる。
【0033】また、命令数の少ないマイクロコンピュー
タにおいて、マクロを用いて、より多くの種類の命令を
有するマイクロコンピュータと同様に、プログラムを記
述することができるが、この場合はプログラマが、命令
とマクロを区別することが著しく困難となる。しかし、
このような場合も、本発明のマクロプロセッサを用いれ
ば、スキップ命令をソースプログラムに記述しても、マ
クロがマイクロコンピュータの命令と区別なく使えるた
め、プログラムの記述後、メンテナンス性は飛躍的に向
上する。
【図面の簡単な説明】
【図1】本発明の第一実施例の要部を示すブロック構成
図。
【図2】その処理手順を示す流れ図。
【図3】そのソースプログラム中のスキップ命令と分岐
命令の例を示す説明図。
【図4】その分岐先シンボル生成手段の一例を示すブロ
ック構成図。
【図5】そのマクロを含むソースプログラム例を示す説
明図。
【図6】そのマクロ展開ソースプログラム例を示す説明
図。
【図7】本発明の第二実施例の要部を示すブロック構成
図。
【図8】そのソースプログラム中の疑似命令とスキップ
命令と分岐命令の例を示す説明図。
【図9】その疑似命令を含むソースプログラム例を示す
説明図。
【図10】そのスキップ命令に変換したソースプログラ
ム例を示す説明図。
【図11】従来例の要部を示すブロック構成図。
【図12】その処理手順を示す流れ図。
【符号の説明】
10、10a、10b、10c ソースプログラム 11 スキップ命令 12 分岐命令 13 疑似命令 20、20a、20b マクロプロセッサ 21 スキップ命令判断手段 22 マクロ命令数判断手段 23 スキップ命令分岐命令変換手段 24 分岐先シンボル生成手段 24a シンボル自動生成用カウンタ 25 マクロ展開制御手段 26 マクロ展開手段 27 疑似命令スキップ命令変換手段 30、30a マクロ展開ソースプログラム 40 補助記憶装置 S1〜S16、S21〜S29 ステップ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 マクロと、同じ条件で判断を行うスキッ
    プ命令および分岐命令とを含むソースプログラムを入力
    しマクロ展開を行いマクロ展開ソースプログラムを生成
    出力するマクロ展開手段を備えたマクロプロセッサにお
    いて、 命令がスキップ命令であるか否かを判断するスキップ命
    令判断手段と、 参照されたマクロが1命令であるか否かを判断するマク
    ロ命令数判断手段と、 前記スキップ命令を同じ条件判断を行う分岐命令に変換
    するスキップ命令分岐命令変換手段と、 前記分岐命令の分岐先を示すシンボルを自動生成する分
    岐先シンボル生成手段と、 入力した前記ソースプログラム内のスキップ命令の直後
    がマクロ参照であり、その参照命令数が1命令でない場
    合、スキップ命令をそれと同じ条件判断をする分岐命令
    に変換し、シンボルを作成しマクロ展開を行うマクロ展
    開制御手段とを備えたことを特徴とするマクロプロセッ
    サ。
  2. 【請求項2】 請求項1に記載のマクロプロセッサにお
    いて、 前記ソースプログラムは、オペランドで指定された分岐
    先に応じてプログラムの処理に影響がなければ自動的に
    スキップ命令を出力する疑似命令を含み、 前記マクロプロセッサは、前記疑似命令が入力された場
    合これを判別しスキップ命令に変換する疑似命令スキッ
    プ命令変換手段を備えたことを特徴とするマクロプロセ
    ッサ。
JP30491691A 1991-11-20 1991-11-20 マクロプロセツサ Pending JPH05143352A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30491691A JPH05143352A (ja) 1991-11-20 1991-11-20 マクロプロセツサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30491691A JPH05143352A (ja) 1991-11-20 1991-11-20 マクロプロセツサ

Publications (1)

Publication Number Publication Date
JPH05143352A true JPH05143352A (ja) 1993-06-11

Family

ID=17938852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30491691A Pending JPH05143352A (ja) 1991-11-20 1991-11-20 マクロプロセツサ

Country Status (1)

Country Link
JP (1) JPH05143352A (ja)

Similar Documents

Publication Publication Date Title
JPH05143352A (ja) マクロプロセツサ
JPH06250877A (ja) 実行情報採取装置
JPS5922140A (ja) 対話型コンパイル方式
JPH05241820A (ja) マイクロプログラム制御装置
JP3019874B2 (ja) プログラム生成/合成装置および方法
JP2001265605A (ja) コンパイラの命令列最適化方法、コンパイラ装置、記録媒体、及びプログラム
JPH07239787A (ja) 構文解析木からの情報抽出装置
JPH0962512A (ja) 低級言語から高級言語への記述言語変換機能を有するプログラム変換装置及び方法
JPH10312291A (ja) コンパイラ装置
JPH0573335A (ja) プログラムの自動インライン展開方式
JPH0581038A (ja) コンパイラ
JPH0236419A (ja) ソースコードの自動翻訳実行方式
JPS6143347A (ja) ベクトル命令シミユレ−シヨン方法
JPH02253443A (ja) プログラム生成方法
JPH05100891A (ja) プログラムデバツグ装置
JPS6297031A (ja) 仮数部のビツト数整合方式
JPH1124939A (ja) プログラム変換方法
JPH0831091B2 (ja) コンパイル処理方式
JPH0619721A (ja) 機械語翻訳最適化方式
JPH0776926B2 (ja) ループ制御処理方法
JPH01194053A (ja) コマンドプロシジャの処理方式
JP2001154851A (ja) オブジェクトプログラム生成装置
JPH0713771A (ja) 言語処理プログラム
JPH05298117A (ja) 定数を引数とする手続きの最適化方式
JPH09185525A (ja) プロトコルデバッグ方式