JPH0440528A - プログラム翻訳装置 - Google Patents

プログラム翻訳装置

Info

Publication number
JPH0440528A
JPH0440528A JP14741590A JP14741590A JPH0440528A JP H0440528 A JPH0440528 A JP H0440528A JP 14741590 A JP14741590 A JP 14741590A JP 14741590 A JP14741590 A JP 14741590A JP H0440528 A JPH0440528 A JP H0440528A
Authority
JP
Japan
Prior art keywords
program
variable symbol
data
variable
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
JP14741590A
Other languages
English (en)
Inventor
Hideyuki Odaka
小高 秀之
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP14741590A priority Critical patent/JPH0440528A/ja
Publication of JPH0440528A publication Critical patent/JPH0440528A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、プログラム翻訳装置に関し、詳しくは擬似コ
ードやその他原始(ソース)言語コードで記載された演
算命令を、目的(オブジェクト)言語コードに翻訳する
プログラム翻訳装置に関する。
[従来の技術1 従来、中央演算処理装置(cpU)やマイクロプロセッ
サと呼ばれる演算処理装置の実行プログラムを作成する
場合、ユーザは作成の容易な擬似言語や高級言語でソー
スプログラムを作成した後、インクブリターやコンパイ
ラと呼ばれるプログラム(言語)翻訳装置により演算処
理装置の実行可能な目的言語、たとえば、機械語にソー
スブログラムを変換している。
しかしながら、プログラム翻訳装置により翻訳されたオ
ブジェクトプログラムを演算処理装置において実行した
場合、特に演算式の実行時間が他の処理に比べて長(な
るという不具合があった。
この点について第9図を用いて詳しく説明する。
第9図はソースプログラムおよび翻訳後のオブジェクト
プログラムを内容理解のために記号表現に−モニック表
現)した−例を示す。
本例は3つのデータA、 B、 Cの合計Xとその平均
Yを演算処理装置により算出するためのプログラムを記
載している。またデータA、 B、Cの値はデータ(ま
たはワークメモリ)メモリに予め格納されており、演算
結果X、Yをデータメモリに書き込むものとする。
第9図において、ソースプログラム中の演算式1はデー
タメモリのデータA、Bと加算し、その加算結果をXと
名付はデータメモリに書き込むことを表している。この
演算式を実行するためにオブジェクトプログラムでは演
算式1がプログラム命令5〜8の命令群に翻訳される。
ここで、プログラム命令5はデータAをデータメモリか
ら読み出し、演算処理装置内の一時記憶レジスタ(以後
内部レジスタと称す)′1°°に格納することを指示す
る。
プログラム命令6はデータBをデータメモリから読み出
し、内部レジスタ゛°2°”に格納することを指示する
プログラム命令7は内部レジスタ゛°1”の格納値と内
部レジスタ”2°”の格納値を加算し、加算結果を内部
レジスタ”2゛°に再格納することを指示する。
プログラム命令8は内部レジスタ”2′の格納値をデー
タXとしてデータメモリへ書き込むことを指示する。
また、ソースプログラム中の演算式2.3もそれぞれ、
中央演算処理装置の演算処理手順に対応させたプログラ
ム命令群22.23に翻訳される。
[発明が解決しようとする課題] しかしながら、ソースプログラム中の1つの演算式は1
ステツプで記載できるのに対し、オブジェクトプログラ
ムでは複数ステップのプログラム命令群に翻訳される。
このため、演算処理装置で」二記演算式の演算処理を実
行するとその処理時間に時間がかかっていた。
そこで、本発明の目的は、上述の点に鑑みて、ソースプ
ログラム中で複数回用いられる変数記号のデータについ
ては、オブジェクトプログラムでデータメモリからの読
み出し回数を少なくすることによりオブジェクトプログ
ラムのステップ数を減少させ、以って演算処理時間の短
縮化に寄与することの可能なプログラム(言語)翻訳装
置を提供することにある。
[課題を解決するための手段1 このような目的を達成するために、本発明は、変数記号
が割当てられたデータを演算処理装置により外部メモリ
に対して読み/書きするためのオブジェクトプログラム
をソースプログラムから翻訳作成するプログラム翻訳装
置であって、前記ソースプログラム中に記載されている
前記変数記号の使用回数を当該変数記号の種類ごとに計
数する計数手段と、該計数手段の計数結果が一定回数以
上となる変数記号を前記ソースプログラム中から抽出す
る抽出手段と、当該抽出されたソースプログラム中の変
数記号については前記オブジェクトプログラム中で、前
記演算処理装置の特定の演算データ格納レジスタを当該
変数記号のデータの時格納用として専用的に指定するレ
ジスタ指定手段とを具えたことを特徴とする。
[作 用1 本発明は、演算処理装置、たとえば、CPU内の演算用
データを格納するためのレジスタが多数あるにもかかわ
らず、演算において未使用なことに着目し、ソースプロ
グラム中において変数記号で表されるデータ、すなわち
、外部メモリに格納するデータの中で使用回数の多いデ
ータについては演算処理装置内の上記レジスタを指定し
て一時格納する。このため、従来のように変数記号で表
されるデータを変数記号の使用ごとにその都度デー乃゛
シ タメモリ令演算処理装置のレジスタに転送する必要はな
く、その結果、データ転送のためのオブジェクトプログ
ラム命令を省略することができる。この結果、従来例に
比べてオブジェクトプログラムの実行ステップ数が減少
し、以って、演算処理装置の演算処理時間が短縮される
1実施イタ1月 以下、図面を参照して本発明の実施例を詳細に説明する
第1図は本発明実施例の基本構成を示す。
本例のプログラム翻訳装置は変数記号が割当てられたデ
ータを演算処理装置により外部メモリに対して読み/書
きするためのオブジェクトプログラムをソースプログラ
ムから翻訳作成するプログラム翻訳装置である。
第1図において、100は前記ソースプログラム中に記
載されている前記変数記号の使用回数を当該変数記号の
種類ごとに計数する計数手段である。
200は該計数手段の計数結果が一定回数以上となる変
数記号を前記ソースプログラム中から抽出する抽出手段
である。
300は当該抽出されたソースプログラム中の変数記号
については、前記オブジェクトプログラム中で、前記演
算処理装置の特定の演算データ格納レジスタを当該変数
記号のデータの一時格納用として専用的に指定するレジ
スタ指定手段である。
第2図は本発明を適用したプログラマブルコントローラ
の回路構成を示す。
本実施例では、後述の中央演算処理装置(cpu)lO
がプログラム翻訳機能(装置)を内蔵し、このプログラ
ム翻訳機能によりユーザの作成したソースプログラムを
オブジェクトプログラムに翻訳した後、実行する。
第2図において、CPUl0は次の処理を行う。
(1)システムプログラムメモリ50に格納されたシス
テムプログラムに従って装置全体の動作制御を実行する
。なお、プログラミング装置(不図示)からソースプロ
グラムが人力されたときは、システムプログラムメモリ
50の翻訳プログラムによりソースプロゲラ、ムなオブ
ジェクトプログラムに変換する。
(2)プログラミング装置の起動の指示に応じてオブジ
ェクトプログラム用メモリ40に格納されたオブジェク
トプログラムを実行することにより制御対象の電子機器
の動作制御を行う。
なお、CPUl0には演算データ保持用のレジスタ群1
1および演算回路(ALU)12を有する従来周知のC
PUチップを用いることができる。
データメモリ20は制御対象の電子機器からの動作状態
を示す情報信号、電子機器へ動作を指示する情報信号を
格納する。これら情報信号はコード形態の変数記号が割
当てられており、この変数記号によりデータメモリ20
の格納アドレスが指定される。
ソースプログラム用メモリ30は翻訳対象のソースプロ
グラムを記憶する。
オブジェクトプログラム用メモリ40は翻訳後のオブジ
ェクトプログラムを記憶する。
システムプログラム用メモリ50はプログラミング装置
から人力された動作命令の識別プログラムや実行用とし
てローディング(人力)されたソースプログラムを翻訳
するための翻訳プログラムを予め記憶している。
ワーク用メモリ60はCPUl0の実行する演算におい
て、演算データを一時記憶すると共に、翻訳処理の本発
明に関わる検索データをテーブル6Iの形態で記憶する
この検索用テーブルは第3図に示すように、ソースプロ
グラムの演算式の中で用いられている変数記号の使用回
数および、複数回使用されている変数記号については最
初に使用されている演算式のプログラム用メモリ30に
おける格納位置ならびに最後尾で使用されている演算式
のプログラム用メモリ30における格納位置を記憶する
本実施例では、後述するがソースプログラムの演算式の
中で複数回用いられている変数の示す値については、C
PUl0内の特定レジスタを指定して一時記憶させるよ
うに翻訳処理においてオブジェクトプログラムを作成す
る。このとき、検索テーブル61の格納データが用いら
れる。
以下、本発明に関わる第2図の回路の動作を第4図〜第
6図のフローチャートを参照して説明する。なお、第4
図〜第6図に示す制御手順はCPUl0の実行する制御
手順であり、実際にはオブジェクトプログラム言語(機
械語)の形態でシステムプログラムメモリ50に格納さ
れている。
第2図において、ソースプログラム用メモリ30にソー
スプログラムが格納された後、プログラミング装置から
翻訳の実行の指示またはソースプログラムの演算実行の
指示が入力されると、CPUl0は翻訳処理に先立って
、第4図の制御プログラムを読み出し、演算実行するこ
とによりソースプログラムの演算式中で用いられている
各変数記号の使用回数を計数する。以下、具体的な例と
して第7図に示すような3ステツプの演算式で構成され
るオブジェクトプログラムを翻訳作成する場合について
説明する。
CPUl0は初期化のために最初に検索用テーブル61
の記憶内容を全て消去する(第4図のステップ510)
次に、CPUl0はソースプログラム用メモリ30の先
頭アドレス°′l”を設定した後、第7図の第1のプロ
グラム命令501を読み出す(第4図のステップ520
)。
続いて、CPUl0は読み出しのプログラム命令が演算
式を規定したプログラム命令であるか否かを判定する。
具体的には演算式を構成する等号記号、すなわち、゛°
→′°記号や“=′°記号とプログラム命令の中の各パ
ラメータとの一致比較を行い、一致判定が得られたとき
は、読み出しのプログラム命令は演算式ありと判定する
(第4図のステップ530)。
また、否定判定が得られたときは、読み出しアドレスを
更新して次ステツプのソースプログラム命令をソースプ
ログラム用メモリ30から読み出す(第4図のステップ
S30→320)。
このような手順を繰り返すことにより演算式を有するプ
ログラム命令が検出される。本例では、第1ステツプの
プログラム命令は演算式ありどなるので、手順は第4図
のステップS30→S40へと進み、プログラム命令の
中で用いられている第1番目の変数記号”A”(第7図
参照)をコード識別により抽出し、第5図の制御手順(
後述)により検索処理を施したこの変数記号”A”を検
索用テーブル61に登録すると共に、使用回数を°°l
”に初期設定する。続いて、プログラム命令中の変数記
号”B−’“X゛を同様に抽出し、検索用テーブル61
に登録し、使用回数を初期設定する(第4図のステップ
S40→550)。CPUl0は実行手順を第4図のス
テップS20へ戻し、第2ステツプのプログラム命令を
読み出し、上述と同様の処理を行う。この結果、第7図
の変数” c ”が新たに検索用テーブル61に登録さ
れると共に、変数Xの使用回数が°゛2°“に更新され
る。
このようにして、ソースプログラム中の全てのプログラ
ム命令に対して上述の処理により使用変数記号を検出し
、その使用回数を計数する。このときCPUl0は計数
手段として動作する。CPU]、0は゛°2°゛回以上
使用された変数記号で使用回数の多い順にCPUl0内
の第1.第2・・・第n番目の演算用レジスタを割当て
る。本例では変数記号Xに対して第1番目の演算用レジ
スタが割当てられる。
割当てのレジスタを示す番号は第3図に示すように検索
用テーブル61に変数記号と対応させて格納される。こ
のときCPUl0は抽出手段として動作する。なお、こ
の処理の機能実現のためには、数値の大小並び換えを行
う周知の手順(ソーティング処理と呼ばれる)を用いれ
ばよく詳細な説明を省略する。
次に、上述の第4図のステップS50における変数記号
の使用回数の計数処理の具体的な処理手順を第5図を用
いて説明する。
本実施例のオブジェクトプログラムを実行した場合複数
回使用の変数記号の中の最初に使用されている変数記号
のデータについてはデータメモリ20(第2図参照)か
ら読み出してCPUl0内の対応のレジスタに格納する
。その変数記号を用いる以後の演算においてはこのレジ
スタの格納値を用いる。そして、最後尾の位置の演算結
果として用いられている変数名のデータのみをデータメ
モリ20に書き込むことにより途中の演算式でのデータ
メモリ1の読み/書きを省略する。
このために、第5図の制御手順により、複数回使用の変
数記号であって、かつ演算用として用いられている変数
記号の最初のプログラムステップならびに、演算結果と
して用いられている最後尾のプログラムステップをも検
出する。ここで演算用の変数記号とは演算式の中の等号
記号より前の演算記号で連結された各変数記号を表す。
また、演算結実用の変数記号とは上記等号記号の後に位
置し、等号記号より前の演算式で算出された演算結果に
対して割当てた変数記号を表す。
プログラム命令の中の演算式に用いられている変数記号
が抽出されると、CPUl0は抽出の変数記号と検索用
テーブル61に記載の各変数記号との一致比較を行うこ
とにより検索用テーブル61に変数記号が登録されてい
るか否かを判定する。抽出の変数記号が検索用テーブル
61に登録されていない場合は、上記一致判定では全て
否定判定となる。
このとき、抽出の変数記号は、ソースプログラム中で最
初に使用された変数記号とCPUl0は判断する(第5
図のステップ551)。
次に、CPUl0は抽出の変数記号が等号記号より前に
位置していることを確認することにより、抽出の変数記
号が演算用であることを検出し、抽出した変数記号のソ
ースプログラム中の格納アドレス、すなわち、現在のプ
ログラムカウンタの格納値を検索用テーブル61に格納
する(第5図のステップS51→S55→556)。抽
出の変数記号が演算結実用については、最初に使用され
ていても演算実行時にデータメモリ20からデータを読
み出す必要がないので、本例では検索用テーブルに格納
アドレスを登録しない。その代りに、最終位置の演算結
実用の変数記号はオブジェクトプログラムの実行時に、
この変数記号のデータをデータメモリ20に格納する必
要があるので、抽出した変数記号(演算結実用変数記号
)のソースプログラム用メモリ上の格納アドレスを仮の
最終位置として検索用テーブル61に登録させる(第5
図のステップS51→S55−357)。
一方、第5図のステップS51において抽出の変数記号
が検索テーブル61にあると判定されたときは、抽出の
変数記号は第2回目以降に使用される変数記号であるの
で、検索テーブル61の使用回数を”1°°加算した値
に更新記憶する(第5図のステップ551−352)。
また、抽出の変数記号が演算結実用であるときにのみ、
その抽出の変数記号のソースプログラム用メモリ30の
格納アドレスを現在の検索用テーブル61の最終アドレ
スとして更新する(第5図のステップS53→554)
このような手順を用いることによって、第7図のソース
プログラムの第1ステツプ(アドレス” 1 ” )の
変数記号” A ”や°B゛°が抽出されたとき、検索
用テーブル61には変数記号” A ” 、演算用の開
始位置としてアドレス゛°1”、使用回数”1°°が初
期設定される(第5図のステップS51→S55→55
6)。
また、第1ステツプの変数記号Xが抽出されたときは、
検索用テーブル61に、変数記号°゛X−使用回数′°
1°°が初期設定され、演算結実用の最終位置としてア
ドレス°゛l°°が仮設定される(第5図のステップS
51→S55→557)。
次に、第7図の第2ステツプの変数記号” c ”がソ
ースプログラムから抽出されたときは、上記変数”A”
、 ” B ”と同様手順により検索用テーブル61に
上記関連情報が登録される。また第2ステツプの変数”
X”がソースプログラムから抽出されたときは、第1ス
テツプの変数記号の検索処理において検索用テーブル6
1には変数記号が登録されているので、演算結実用変数
記号の終了位置がアドレス” 1 ”から”2°°に更
新され、使用回数が°°2°°に更新される。また、第
2ステツプの変数記号°°X°“は演算結実用として用
いられているので、検索用テーブル61の演算結実用の
変数記号終了位置はアドレス゛1゛°→” 2 ”に更
新される(第5図のステップS5]→S52→S53−
354)。
次に第7図の第3ステツプの変数記号°°X゛が抽出さ
れたときは、この変数記号” x ”は演算用として用
いられているので、検索用テーブル61の使用回数が′
2°′から°3°“に更新されるのみである(第5図の
ステップS51→S52→S53→終了)。
また、第3ステツプの変数名”Y”が抽出されたときは
第1ステツプの変数名” x ”が抽出されたときと同
様、その変数記号、演算結実用の最終アドレス位置°゛
3−使用回数゛1”が初期登録される。
なお、第3ステツプで用いられている定数゛°3°。
については、その数値を表すコードが変数名に割当てた
コードの範囲にないことから、第4図のステップS40
の処理においては抽出されず、使用回数の計数対象とは
ならない。また演算式中の演算記号” 十” 、 ”÷
°°や等号記号+ −+についても同様である。
このような計数処理を行うことにより、第4図の制御手
順の終了時の検索用テーブル61の記憶内容は第3図に
示すようになり、その結果、重複使用される変数記号”
 x ”が検出され、データ格納用にCPUl0内の第
ルジスタが割当てられる。
次に、ソースプログラムの翻訳処理における演算式の変
換処理手順を説明する。
本実施例において従来処理と異なる点は次の通りである
(a)ソースプログラム中で演算用および/または演算
結実用として使用される変数記号については、オブジェ
クトプログラムの実行時に最初にデータメモリ20から
この変数記号のデータを読み出し、最後にデータメモリ
20へこの変数記号のデータを書き込むまでの間、この
変数記号についてのデータの格納先はCPUl0内の専
用的に割当てた特定レジスタとする。
(b)翻訳対象のソースプログラム命令中の複数使用の
変数記号についてはオブジェクトプログラム作成のため
にデータの読み出し先(データメモリ20/CPUl0
内のレジスタ)または書き込み先(データメモリ20/
CPUl0内のレジスタ)を検索テーブル61の記憶情
報に基づきCPUl0により決定する。
このような(aL(b)の処理を実現するための第7図
のソースプログラムに対するCPUl0の翻訳手順を第
6図に示す。
第6図において、第7図のソースプログラムの第1プロ
グラム命令501がCPUl0により読み出され、ワー
ク用メモリ60に一時格納される(第6図のステップ5
100)。
第1プログラム命令には加算記号や等号記号が含まれて
いることから、この記号の存在の検出により、第1プロ
グラム命令が演算式であることが識別される(第6図の
ステップ5110)。
次に演算式を構成する第1番目のパラメータとして変数
記号”A”(第7図参照)がワークメモリ60からCP
Ul0内に抽出される。CPUl0では第3図の検索用
テーブル61を参照することにより変数記号” A ”
の使用数は°°1°゛であることを検出する。したがっ
て、第6図のステップ5130の判定結果は否定判定と
なる。この結果、従来手順により、次の動作、すなわち
、データメモリ20から変数記号°“A”についてのデ
ータをデータメモリ20から読取り、CPUl0内の共
有使用レジスタ2に書き込む動作を指示するオブジェク
トプログラム命令[I、oad A。
reg2Jにソースプログラム中の変数記号” A ”
が変換される。この翻訳結果はオブジェクトプログラム
用メモリ40に書き込まれる(第6図のステップ511
0→5115→5155→5120)。
次のパラメータの変数記号”B”も1回使用の変数記号
であるので、上述の変数記号” A ”と同様の処理手
順でデータメモリ20からの読出しのオブジェクトプロ
グラム命令に翻訳される。続いて読み出されたパラメー
タ、すなわち、加算記号” + ”は複数使用の変数記
号ではないので、従来手法に→5155→S]20) 
 。
次のパラメータの変数記号” x ”が読み出されると
、検索用テーブル61の記憶情報により使用回数が複数
回であること、また、等号記号に続(変数記号、すなわ
ち演算結実用の変数記号であることが検出される(第6
図のステップ5120→5130→5140− SI4
])。
CPIJIOは再び検索用テーブル61を参照すること
により翻訳対象の変数記号の位置が最終位置ではないこ
とを確認すると、変数記号Xに割当てた、CPUl0の
特定レジスタの番号” l ”を検索用テーブル6】か
ら読み出す。続いて上述のオブジェクトプログラム命令
に演算結果の格納先を上記レジスタ” l ”に指示す
るパラメーダ’、regl°°を、前処理で作成された
加算用オブジェクト命令に付加する(第6図のステップ
5141−5142→5155→5120)。
このような処理手順を実行することにより第7図のソー
スプログラムの第2プログラム命令では変数記号” c
 ” 、加算記号” + ” 、等号記号+−+1が従
来手順で翻訳される。また演算用として用いられている
変数記号” x ”のデータ格納先は第ルジスタ(re
g” l ” )として扱われる。このとき、CPUl
0が本発明のレジスタ指定手段として動作する。従来手
法ではデータメモリ2Dからの読出し命令が必要である
のに対し、本実施例では必要ないため、この読出し命令
は省略される。
また、等号記号“−°の後の演算結果として用いられて
いる変数記号” x ”はプログラムの最終使用位置に
位置していることが検索用テーブル61の記憶情報によ
り検出され、このソースプログラム中の変数記号” x
 ”はデータメモリ21への書き込み命令”5tore
 to regl、X”に翻訳される(第6図のステッ
プ5120〜5140→5141→5143→5155
−3120)。
第7図のソースプログラムの第3プログラム命令は変数
記号°°X”の読出し先が第ルジスタ(reg”1°°
)に割当てられる他は従来手法と同様の手順で翻訳され
る。
このようにして翻訳されたオブジェクトプログラムの変
数記号” x ”に関するオブジェクトプログラム実行
時の演算データはCPUl0内の第ルジスタに格納され
たままであるので、第9図の従来のオブジェクトプログ
ラムと比較すると判かるようにプログラムのステップ数
が従来のオブジェクトプログラムより減少しており、そ
の結果、演算処理時間が短縮される。
本実施例の他、次の例が挙げられる。
(1)本実施例ではソースプログラム命令を1回の翻訳
処理でオブジェクトプログラム命令に変換する例を示し
たが、第8図に示すように複数回の翻訳処理で第7図と
同様のオブジェクトプログラムを作成することができる
。この場合、第1回目の翻訳処理では複数使用の変数記
号(” X ” )については全てCPUl0の第ルジ
スタ(reg”]°゛)に置換する。第2回目の翻訳処
理では検索用テーブル61を参照して最終位置の演算結
果として用いられる第ルジスタの次ステツプに、次の命
令、すなわち第ルジスタをデータメモリ20上の変数記
号Xのアドレスに書き込む命令を付加する。続いて、第
3回目の翻訳処理で、この中間ソースプログラムをオブ
ジェクトプログラムに変換する。この例では翻訳処理回
数が増加する分、翻訳処理時間がかかるが翻訳処理を簡
素化することができる。
(2)本実施例ではコンパイラやアッセンブラのように
ソースプログラム命令全体をオブジェクトプログラム命
令に変換する例を示したが、インクブリタ一方式のよう
にプログラム命令単位で翻訳、演算を実行する演算処理
装置にも本発明を適用できる。この場合は、オブジェク
トプログラムの実行に先立って、第4図の制御手順によ
り複数使用の変数記号およびその使用開始位置や使用終
了位置を検出し、検索用テーブル6Iに検出結果を登録
した後、第6図の制御手順をプログラム命令単位で実行
することにより翻訳処理を行う。
(3)本実施例では演算処理装置がプログラム翻訳装置
を兼ねた例を示しているが、演算処理装置とは別体のプ
ログラム翻訳装置により翻訳を行う場合は第4図〜第6
図の制御手順をプログラム翻訳装置に実行させるとよい
(4)また、従来手法で作成されたオブジェクトプログ
ラムをソースプログラムとして本実施例のオブジェクト
プログラムに変換することも可能である。この場合は複
数回使用の変数記号を検出し、途中で使用される変数記
号についてはその変数記号の1、oad命令、 5to
re命令を削除すると共に、データ格納先をCPUl0
内の特定レジスタに変更する処理をCPUl0により行
う。
(5)本実施例では変数記号を演算式中で用いる例を示
したが、演算式に限らず各種データの保存用として使用
する変数記号にも本発明を適用することができる。
(6)本実施例ではCPUl0内の特定レジスタを割当
てる変数記号の使用回数は2回以上と固定的に設定して
いるかしているが、可変設定するようにしてもよい。こ
の場合は上記使用回数をキーボード入力装置等の情報入
力装置から入力することになる。また、変数記号がソー
スプログラム中で多数種用いられている場合は、ソース
プログラム中の使用回数の多い順から一定順番までをレ
ジスタ割当ての変数記号に指定するとよい。この場合は
検索用のテーブル61の変数記号関連情報を使用回数の
多い順に並び換えを行うと翻訳処理が容易となる。
また、一定回数以下の変数記号や一定順位以下の変数記
号については従来通りデータメモリに対してアクセスす
るようにオブジェクトプログラムを作成すればよく、演
算処理装置のレジスタ不足に対処することができる。
(7)本実施例ではオブジェクトプログラム中に記載さ
れている変数記号を計数するようにしているが、ループ
処理を規定したプログラム命令のように、オブジェクト
プログラム中では1ステツプで記載されていても実際の
演算では複数回実行するプログラム命令については、ル
ープ回数を考慮した使用回数とすればよい。また、ソー
スプログラム中のループ処理を指示するプログラム命令
を検出したときは直ちにCPUl0のレジスタを割当て
るようにしてもよい。
[発明の効果1 以上説明したように、本発明によれば、オブジェクトプ
ログラム中の変数記号の使用回数が多い程、このオブジ
ェクトプログラムの演算処理時間が短縮される。
このため、演算式に変数記号を用いる場合や繰り返しル
ープ処理におけるループ回数を記憶する変数記号を用い
る場合に本発明を用いると従来よりも高速の演算処理を
期待することができる。
【図面の簡単な説明】
第1図は本発明実施例の基本構成を示すブロック図、 第2図は本発明実施例の回路構成を示すブロック図、 第3図は本発明実施例の検索用テーブル61の記憶内容
を示す説明図、 第4図〜第6図は第2図のCPUl0の実行する制御手
順を示すフローチャート、 第7図は本発明実施例のソースプログラムからオブジェ
クトプログラムへの翻訳結果を示す説明図、 第8図は本発明第2実施例の翻訳手順を示す説明図、 第9図は従来例のソースプログラムからオブジェクトプ
ログラムへの翻訳結果を示す説明図である。 IO・・・中央演算処理装置(cpu)、20・・・デ
ータメモリ、 30・・・ソースプログラム用メモリ、40・・・オブ
ジェクトプログラム、 50・・・システムプログラム用メモリ、51・・・翻
訳プログラム、 60・・・ワーク用メモリ、 61・・・検索用テーブル。

Claims (1)

  1. 【特許請求の範囲】 1)変数記号が割当てられたデータを演算処理装置によ
    り外部メモリに対して読み/書きするためのオブジェク
    トプログラムをソースプログラムから翻訳作成するプロ
    グラム翻訳装置であって、前記ソースプログラム中に記
    載されている前記変数記号の使用回数を当該変数記号の
    種類ごとに計数する計数手段と、 該計数手段の計数結果が一定回数以上となる変数記号を
    前記ソースプログラム中から抽出する抽出手段と、 当該抽出されたソースプログラム中の変数記号について
    は前記オブジェクトプログラム中で、前記演算処理装置
    の特定の演算データ格納レジスタを当該変数記号のデー
    タの一時格納用として専用的に指定するレジスタ指定手
    段と を具えたことを特徴とするプログラム翻訳装置。
JP14741590A 1990-06-07 1990-06-07 プログラム翻訳装置 Pending JPH0440528A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14741590A JPH0440528A (ja) 1990-06-07 1990-06-07 プログラム翻訳装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14741590A JPH0440528A (ja) 1990-06-07 1990-06-07 プログラム翻訳装置

Publications (1)

Publication Number Publication Date
JPH0440528A true JPH0440528A (ja) 1992-02-10

Family

ID=15429789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14741590A Pending JPH0440528A (ja) 1990-06-07 1990-06-07 プログラム翻訳装置

Country Status (1)

Country Link
JP (1) JPH0440528A (ja)

Similar Documents

Publication Publication Date Title
US7949848B2 (en) Data processing apparatus, method and computer program product for reducing memory usage of an object oriented program
JPS6028015B2 (ja) 情報処理装置
JP2000035893A (ja) デ―タ処理システムの配列の静的初期化方法、デ―タ処理方法、並びにデ―タ処理システム及びその制御手順をコンピュ―タに実行させるプログラムを記憶したコンピュ―タ読み取り可能な記憶媒体
AU2891900A (en) Method and apparatus for handling exceptions as normal control flow
JP2817786B2 (ja) シミュレーション装置及びシミュレーション方法
JP3863544B1 (ja) 演算処理装置及び演算処理方法
JP3049814B2 (ja) マイクロコンピュータの言語処理装置
JPH0440528A (ja) プログラム翻訳装置
JP3495230B2 (ja) エミュレーション処理方式
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
JPS6149209A (ja) 数値制御装置におけるプログラム実行方式
JPH04268928A (ja) エミュレーション装置及び半導体装置
JPH086797A (ja) 定数参照最適化処理装置
JP3200277B2 (ja) シーケンスプログラム処理方法及び装置
JPS6148735B2 (ja)
JP3753572B2 (ja) シミュレーションシステムおよび命令シミュレーション方法
JPH05297911A (ja) シーケンスコントローラ用シーケンス制御回路
JPH0695890A (ja) コンパイラにおける名前置換方式
KR970011897B1 (ko) 언어해석 처리장치
CN104615443A (zh) 单片机指令扩展方法与系统
JPS61148536A (ja) 情報処理システム
CN116775127A (zh) 一种基于RetroWrite框架的静态符号执行插桩方法
JPS6051736B2 (ja) 情報処理装置
JPS63132335A (ja) 計算機言語処理系の実行方式
JPH031238A (ja) 情報処理装置のコンパイラ