JPH07191857A - 言語処理システム - Google Patents

言語処理システム

Info

Publication number
JPH07191857A
JPH07191857A JP33033093A JP33033093A JPH07191857A JP H07191857 A JPH07191857 A JP H07191857A JP 33033093 A JP33033093 A JP 33033093A JP 33033093 A JP33033093 A JP 33033093A JP H07191857 A JPH07191857 A JP H07191857A
Authority
JP
Japan
Prior art keywords
register
value
program
instruction
outputting
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
JP33033093A
Other languages
English (en)
Inventor
Harumi Matsuba
晴美 松葉
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 JP33033093A priority Critical patent/JPH07191857A/ja
Publication of JPH07191857A publication Critical patent/JPH07191857A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】プログラム・サイズの縮小を容易にし、設計工
数の低減をはかりプログラム用メモリの容量増大を防止
する。 【構成】ソース・プログラムS.Pの命令文を解析しレ
ジスタ位置変更命令であるときそのレジスタの値等の情
報を出力するレジスタ値変更命令解析部12を設ける。
このレジスタ値変更命令解析部12からの情報を記憶す
るレジスタ情報記憶部2を設ける。ソース・プログラム
の命令文がレジスタ値出力命令であるときレジスタ情報
記憶部2の対応するレジスタの値をプログラム・リスト
P.L中に出力するレジスタ値出力位置識別部13及び
レジスタ値出力部31を設ける。出力されたプログラム
・リストP.Lに基づきオブジェクト・プログラムの所
定の命令文を削除する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は言語処理システムに関
し、特に高水準言語とアセンブラ言語とを含むソース・
プログラムから、マイクロ・コンピュータのプログラム
用ROMに格納するためのオブジェクト・プログラムを
生成する言語処理システムに関する。
【0002】
【従来の技術】一般に、マイクロ・コンピュータ(以後
“マイコン”という)のプログラミング言語には、マイ
コンのハードウェアを十分理解した上で機械語(命令
語)レベルで記述するアセンブラ言語と、マイコンのハ
ードウェアの構造を抽象化し、ハードウェアそのものを
あまり理解しなくても記述が可能な高水準言語とがあ
る。
【0003】前者は、マイコンの原理を理解したり、マ
イコンの性能をぎりぎりまで引き出したり、マイコンに
より外部の機器を制御したりするときには有利であり、
後者は、マイコンの内部構造をブラック・ボックス化す
ることにより言語の標準化を計ることにより、プログラ
マの早期育成や、プログラム開発期間の短縮、異機種間
でのプログラムの共通化が可能になるといった利点があ
る。
【0004】アセンブラ言語において、マイコンのハー
ドウェアについて知るべきことは、内部に容易されてい
るレジスタの種類や、命令語の実行時のレジスタの使わ
れ方、プログラム記憶領域の命令やデータをアクセスす
る時のアドレス指定方式、等である。
【0005】近年では、言語処理システムの記憶容量の
拡大や処理の高速化により、高水準言語が普及されてき
た。高水準言語では、前述のような利点があるが、ハー
ドウェアの入出力機能などの細かな制御はできなくな
る。そこで、入出力制御や、プログラムの部分的な高速
化を行いたい場合には、高水準言語とアセンブラ言語と
の混在記述が必要になる。高水準言語の中でアセンブラ
言語をリンクするような機能を一般的に「インライン・
アセンブラ」と呼ぶ。
【0006】高水準言語において、ハードウェア、特に
レジスタの操作は言語処理システム側が管理しているた
め、プログラマはその状態を知らなくてもプログラムを
記述することができる。しかしここで、前述のインライ
ン・アセンブラ機能により、高水準言語プログラム中に
アセンブラ言語によるプログラムを挿入する場合、その
直前までのレジスタの状態がプログラマには分からない
ために、アセンブラ言語によるソース・プログラムの最
初にレジスタの初期化のための命令語を記述する必要が
あった。
【0007】例えば、図6に示すように211の関数m
ain(void)の中で記述されている212の
sm文は「インライン・アセンブラ」宣言文である。
asmの後のブロック内にはアセンブラ言語が記述され
る。ここで、213,214の例命令文に使用されてい
るbpはレジスタであり、高水準言語内の細かい制御が
必要な場合は、このようにインライン・アセンブラによ
りマイコンのハードウェア(レジスタ等)を操作する命
令を記述するような方式がとられる。
【0008】
【発明が解決しようとする課題】上述した従来の言語処
理システムでは、マイコンを効率よく使用するために、
高水準言語プログラム中にアセンブラ言語によるプログ
ラム(以下、アセンブラ・プログラムという)を挿入す
る場合、高水準言語プログラムからアセンブラ・プログ
ラムへ移行する際に、高水準プログラムによるレジスタ
等のハードウェアの状態(値等)が分からないため、ア
センブラ・プログラム移行直後に、これらハードウェア
の初期状態を設定(初期化)するための命令が必要であ
った。従って、プログラム・サイズが増大し、マイコン
のプログラム用ROMに格納しきれなくなるとか、プロ
グラム・サイズを縮小するためにプログラムを設計し直
すとか、プログラム用ROMのメモリ容量を増大さる、
などの問題点があった。
【0009】本発明の目的は、プログラム・サイズを容
易に縮小することができ、設計工数の低減、プログラム
用メモリのメモリ容量増大防止が可能な言語処理システ
ムを提供することにある。
【0010】
【課題を解決するための手段】第1の発明の言語処理シ
ステムは、高水準言語及びアセンブラ言語によって記述
されたソース・プログラムの命令文を順次解析し所定の
レジスタの値を設定,変更する命令文であるとき前記レ
ジスタの名称及び設定,変更する値の情報を出力するレ
ジスタ値変更命令解析手段と、このレジスタ値変更命令
解析手段からの情報を記憶するレジスタ情報記憶部と、
前記ソース・プログラムの命令文が前記所定のレジスタ
の値を出力する命令文であるとき前記レジスタ情報記憶
部の対応するレジスタの情報を所定の位置に出力するた
めの制御信号を出力するレジスタ値出力位置識別手段
と、このレジスタ値出力位置識別手段からの制御信号に
従って前記レジスタ情報記憶部の所定のレジスタの値を
プログラム・リストの所定の位置に出力するレジスタ値
出力手段と、前記ソース・プログラムの命令文を順次オ
ブジェクト・コードに変換しオブジェクト・プログラム
として出力するオブジェクト・コード変換・出力手段と
を有している。
【0011】第2の発明の言語処理システムは、高水準
言語及びアセンブラ言語によって記述されたソース・プ
ログラムの命令文を順次解析し所定のレジスタの値を設
定,変更する命令文であるとき前記レジスタの名称及び
設定,変更する値の情報を出力するレジスタ値変更命令
解析手段と、比較結果信号が不一致を示すとき前記レジ
スタ値変更命令解析手段からの情報を記憶するレジスタ
情報記憶部と、前記ソース・プログラムの命令が前記所
定のレジスタの値を設定,変更する命令文であるときこ
の命令文による設定,変更後のレジスタの値と前記レジ
スタ情報記憶部からの対応するレジスタの設定,変更前
の値とを比較し前記比較結果信号を出力するレジスタ値
比較手段と、このレジスタ値比較手段からの比較結果信
号が一致を示すとき所定の警告文を出力する警告文出力
手段と、前記ソース・プログラムの命令文を順次オブジ
ェクト・コードに変換しオブジェクト・プログラムとし
て出力するオブジェクト・コード変換・出力手段とを有
している。
【0012】
【実施例】次に本発明の実施例について図面を参照して
説明する。
【0013】図1は第1の発明の一実施例を示すブロッ
ク図である。
【0014】この実施例は、ソース・プログラム記憶装
置101に格納され高水準言語及びアセンブラ言語によ
って記述されたソース・プログラムS.P中に含まれ所
定のレジスタの値を設定,変更する命令及びこれらレジ
スタの値を出力する命令を記憶する対象命令記憶部11
と、この対象命令記憶部11の記憶内容を参照しソース
・プログラム記憶装置101からのソース・プログラム
S.Pの命令文を順次解析し所定のレジスタの値を設
定,変更する命令文であるとき前記レジスタの名称及び
設定,変更する値の情報を出力するレジスタ値変更命令
解析部12と、このレジスタ値変更命令解析部12から
の情報を記憶するレジスタ情報記憶部2と、対象命令記
憶部11の記憶内容を参照しソース・プログラムS.P
の命令文が前記所定のレジスタの値を出力する命令文で
あるときレジスタ情報記憶部2の対応するレジスタの情
報を所定の位置に出力するための制御信号を出力するレ
ジスタ値出力位置識別部13と、このレジスタ値出力位
置識別部13からの制御信号に従ってレジスタ情報記憶
部2の所定のレジスタの値をプログラム・リストP.L
の所定の位置に出力するレジスタ値出力部31を含みソ
ース・プログムS.Pと対応するプログラム・リスト
P.Lを外部記憶装置102に出力するリスト出力部3
と、ソース・プログラムS.Pの命令文を順次オブジェ
クト・コードに変換しオブジェクト・プログラムO.P
として外部記憶装置103に出力するオブジェクト・コ
ード変換・出力部4とを有する構成となっている。な
お、対象命令記憶部11,レジスタ値変換命令解析部1
2及びレジスタ値出力位置識別部13は命令解析部1に
含まれる。
【0015】次にこの実施例の動作について説明する。
図2はこの実施例の動作を説明するためのフローチャー
トである。
【0016】まず、開始のステップで、ソース・プログ
ラムS.Pをこの実施例の言語処理システムに入力す
る。ステップS1はプログラムの終了を判断するステッ
プで、ソース・プログラム記憶装置101のプログラム
・ファイルがEOFであることにより終了となる。EO
FでなければステップS2でソース・プログラムS.P
の1行の命令文を読み込み、命令解析部1に渡される。
ステップS3では、読み込まれた命令文が所定のレジス
タの値を設定,変更するための命令文であるかを解析す
る。レジスタの値を設定,変更する命令文であれば、ス
テップS5で解析した結果のレジスタ名に対応する設
定,変更後の値をレジスタ情報記憶部2に格納する。そ
して、その命令文の処理をステップS8で行い、ステッ
プS1に戻る。
【0017】ステップS3でレジスタの値の変更命令で
ないと判断された場合には、ステップS4でその入力さ
れた命令文が所定のレジスタの値を出力指定する命令文
であるかを識別する。出力指定の命令文であれば、ステ
ップS7で、外部記憶装置102にその時のレジスタ情
報記憶部2の対応するレジスタの値を出力する。
【0018】ステップS3,S4でどちらの命令文でも
ないと判断された場合は、その命令文の処理を行い、ス
テップS1に戻る。従って、ソース・プログラムS.P
の終了までこの動作が繰り返えされる。
【0019】図3(a)〜(c)はそれぞれこの実施例
により処理される処理対象のソース・プログラム、この
実施例により処理されたプログラム・リスト及び処理結
果に基づく最終オブジェクト・プログラムの例を示す図
である。
【0020】図3(a)に示された処理対象のソース・
プログラムS.Pには、例えば、マイコンに必要な高水
準言語プログラムS.P−1及びアセンブラ言語プログ
ラムS.P−3のほかに、レジスタ情報記憶部2に格納
されている所定のレジスタの値を出力するプログラム
S.P−2がアセンブラ言語プログラムS.P−3の直
前に記述されている。高水準言語プログラムS.P−1
には、マイコン等の所定のレジスタを使用して処理を進
行させる命令文が含まれるが、これらレジスタの操作
は、前述したように言語処理システム側で管理している
ので、この高水準言語プログラムから、これらレジスタ
の値等を知ることはできない。そこで、アセンブラ言語
プログラムで操作するレジスタの値が、高水準言語プロ
グラムによってどのように変化するかをレジスタ情報記
憶部2に記憶させておき、ソース・プログラムS.Pの
処理が高水準言語プログラムからアセンブラ言語プログ
ラムへ移行するときのレジスタの値をレジスタ情報記憶
部2からプログラム・リストP.Lの所定の位置に出力
する。このときの命令文が高水準言語によるプログラム
S.P−2である。この例では、AXという名称のレジ
スタに“2”という値を設定する命令文がアセンブラ言
語プログラムS.P−3に含まれているので、このAX
というレジスタ(以下レジスタAXという)の値を出力
するようになっている。
【0021】このソース・プログラムS.Pをこの実施
例による言語処理システムに入力して得られたプログラ
ム・リストP.Lが図3(b)に示されている。この例
では、レジスタAXの値は“2”(AX=2)となって
いる。一方、アセンブラ言語プログラムS.P−3によ
ってレジスタAXに“2”という値を設定しようとして
いる(MOV AX,#2)。従って、高水準言語プロ
グラムS.P−1によって設定されたレジスタAXのア
センブラ言語プログラム移行時の値と、アセンブラ言語
プログラムで初期設定しようとするレジスタAXの値と
が一致しているので、アセンブラ言語プログラムによる
レジスタAXの値の初期設定は不要となる。
【0022】この結果に基づき、マイコンのプログラム
用ROM等に格納する最終的なオブジェクト・プログラ
ムOPeは図3(c)のとおりとなる。こうして、容易
にプログラム・サイズを小さくすることができ、プログ
ラムの設計工数を低減し、かつプログラム用ROM等の
メモリ容量が増大するのを防止することができる。
【0023】図4は第2の発明の一実施例を示すブロッ
ク図である。この実施例が図1に示された実施例と相違
する点は、図1のレジスタ値出力位置識別部13及びレ
ジスタ値出力部31に代えて、ソース・プログラムS.
Pの命令文が所定のレジスタの値を設定,変更する命令
文であるときこの命令文による設定,変更後のレジスタ
の値とレジスタ情報記憶部2からの対応するレジスタの
設定,変更前の値とを比較しその比較結果信号を出力す
るレジスタ値比較部5と、このレジスタ値比較部5から
の比較結果信号が一致を示すとき所定の警告文をプログ
ラム・リストP.L中に出力する警告文出力部32を設
け、レジスタ情報記憶部2aを、レジスタ値比較部5か
らの比較結果信号が不一致を示すときレジスタ値変更命
令解析部12からの情報を記憶するようにした点にあ
る。
【0024】次にこの実施例の動作について説明する。
図5はこの実施例の動作を説明するためのフローチャー
トである。
【0025】ステップS1〜S3は、図1の実施例と同
じであるのでその説明は省略する。ステップS3で、読
み込まれた一行がレジスタ値変更命令であると判断され
たら、ステップS9で、この命令文による変更後の値
と、レジスタ情報記憶部2aの変更前のレジスタ値とを
比較する。そして比較した結果、同一であると判断され
たら、ステップS10で外部記憶装置102に警告文を
出力する。比較した結果、不一致と判断された、ステッ
プS5でレジスタ情報記憶部2aの対応するレジスタの
値を書き換え、その命令文の処理を行い(ステップS
8)、ステップS1に戻る。
【0026】この実施例では、プログラマが図3(a)
のような、レジスタ値を出力する命令文(S.P−2)
を記述しなくても、所定のレジスタに、既に設定されて
いる値と同一値を(初期)設定しようとすると警告文が
出力されるので、プログラマの負担を軽減することがで
きるという利点がある。その他の基本的な動作及び効果
は図1の実施例と同様である。
【0027】
【発明の効果】以上説明したように本発明は、高水準言
語プログラムにより操作されるマイコン等の所定のレジ
スタの値を、その設定,変更ごとに記憶しておきアセン
ブラ言語プログラムへの移行時にプログラム・リスト中
に出力するか、所定のレジスタの値の設定,変更の前後
の値を比較して比較結果信号を出力し、この比較結果信
号が一致を示すとき警告文を出力し不一致のときレジス
タ値の記憶内容を更新する構成とすることにより、その
出力結果に基づいてマイコン等のプログラム用メモリに
格納するオブジェクト・プログラムのサイズを容易に縮
小することができ、設計工数を低減しプログラム用メモ
リのメモリ容量が増大するのを防止することができる効
果がある。
【図面の簡単な説明】
【図1】第1の発明の一実施例を示すブロック図であ
る。
【図2】図1に示された実施例の動作を説明するための
フローチャートである。
【図3】図1に示された実施例により処理される処理対
象のソース・プログラム、この実施例により処理された
プログラム・リスト及び処理結果に基づく最終オブジェ
クト・プログラムの例を示す図である。
【図4】第2の発明の一実施例を示すブロック図であ
る。
【図5】図4に示された実施例の動作を説明するための
フローチャートである。
【図6】従来の言語処理システムの動作及び課題を説明
するための処理対象のソース・プログラムを示す図であ
る。
【符号の説明】
1,1a 命令解析部 2,2a レジスタ情報記憶部 3,3a リスト出力部 4 オブジェクト・コード変換・出力部 5 レジスタ値比較部 11 対象命令記憶部 12 レジスタ値変更命令解析部 13 レジスタ値出力位置識別部 31 レジスタ値出力部 32 警告文出力部 101 ソース・プログラム記憶装置 102,103 外部記憶装置 S1〜S10 ステップ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 高水準言語及びアセンブラ言語によって
    記述されたソース・プログラムの命令文を順次解析し所
    定のレジスタの値を設定,変更する命令文であるとき前
    記レジスタの名称及び設定,変更する値の情報を出力す
    るレジスタ値変更命令解析手段と、このレジスタ値変更
    命令解析手段からの情報を記憶するレジスタ情報記憶部
    と、前記ソース・プログラムの命令文が前記所定のレジ
    スタの値を出力する命令文であるとき前記レジスタ情報
    記憶部の対応するレジスタの情報を所定の位置に出力す
    るための制御信号を出力するレジスタ値出力位置識別手
    段と、このレジスタ値出力位置識別手段からの制御信号
    に従って前記レジスタ情報記憶部の所定のレジスタの値
    をプログラム・リストの所定の位置に出力するレジスタ
    値出力手段と、前記ソース・プログラムの命令文を順次
    オブジェクト・コードに変換しオブジェクト・プログラ
    ムとして出力するオブジェクト・コード変換・出力手段
    とを有することを特徴とする言語処理システム。
  2. 【請求項2】 高水準言語及びアセンブラ言語によって
    記述されたソース・プログラムの命令文を順次解析し所
    定のレジスタの値を設定,変更する命令文であるとき前
    記レジスタの名称及び設定,変更する値の情報を出力す
    るレジスタ値変更命令解析手段と、比較結果信号が不一
    致を示すとき前記レジスタ値変更命令解析手段からの情
    報を記憶するレジスタ情報記憶部と、前記ソース・プロ
    グラムの命令が前記所定のレジスタの値を設定,変更す
    る命令文であるときこの命令文による設定,変更後のレ
    ジスタの値と前記レジスタ情報記憶部からの対応するレ
    ジスタの設定,変更前の値とを比較し前記比較結果信号
    を出力するレジスタ値比較手段と、このレジスタ値比較
    手段からの比較結果信号が一致を示すとき所定の警告文
    を出力する警告文出力手段と、前記ソース・プログラム
    の命令文を順次オブジェクト・コードに変換しオブジェ
    クト・プログラムとして出力するオブジェクト・コード
    変換・出力手段とを有することを特徴とする言語処理シ
    ステム。
JP33033093A 1993-12-27 1993-12-27 言語処理システム Pending JPH07191857A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33033093A JPH07191857A (ja) 1993-12-27 1993-12-27 言語処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33033093A JPH07191857A (ja) 1993-12-27 1993-12-27 言語処理システム

Publications (1)

Publication Number Publication Date
JPH07191857A true JPH07191857A (ja) 1995-07-28

Family

ID=18231422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33033093A Pending JPH07191857A (ja) 1993-12-27 1993-12-27 言語処理システム

Country Status (1)

Country Link
JP (1) JPH07191857A (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04320535A (ja) * 1991-04-19 1992-11-11 Nec Corp プログラム生成装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04320535A (ja) * 1991-04-19 1992-11-11 Nec Corp プログラム生成装置

Similar Documents

Publication Publication Date Title
JPH0721033A (ja) 言語処理装置及びその方法
JPH01201729A (ja) デコード方法
US5581769A (en) Multipurpose program object linkage protocol for upward compatibility among different compilers
US20030115445A1 (en) Method and apparatus for manipulation of non-general purpose registers for use during computer boot-up procedures
JPS6212529B2 (ja)
JPH07191857A (ja) 言語処理システム
JPH05346332A (ja) 試験プログラム実行方法
KR960029969A (ko) 파이프라인 처리기능을 갖는 데이타프로세서
JP2507809B2 (ja) 索引入出力の指定方式
JP2000231494A (ja) ソフトウェア実行システム及びソフトウェア実行方法
JPH06266562A (ja) オブジェクト指向言語処理システムにおける目的コードサイズ最適化方式
JPS6051736B2 (ja) 情報処理装置
JPS6148737B2 (ja)
JPH03186933A (ja) 言語処理システムのシンボル処理方式
JPH07105014A (ja) 言語処理システムのシンボル処理方式
JPH05165601A (ja) 文字データ処理方式
JPH0423102A (ja) プログラマブルコントローラ用プログラミング装置
JPH06282442A (ja) コンパイラ装置
JPH0212332A (ja) 複数の同一命令を含むプログラムの処理方式
JPH04299449A (ja) 文章入力装置
JPH06309175A (ja) インタプリタのプログラム実行方式
JPS6232540A (ja) 情報処理装置
JPS5866155A (ja) 集積回路装置
JPH03229333A (ja) データ入力装置のデータファイル入力方式
JPS6162141A (ja) 論理型情報処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19970812