JPH02137030A - プログラムの実行処理システム及びその翻訳システム - Google Patents

プログラムの実行処理システム及びその翻訳システム

Info

Publication number
JPH02137030A
JPH02137030A JP29016488A JP29016488A JPH02137030A JP H02137030 A JPH02137030 A JP H02137030A JP 29016488 A JP29016488 A JP 29016488A JP 29016488 A JP29016488 A JP 29016488A JP H02137030 A JPH02137030 A JP H02137030A
Authority
JP
Japan
Prior art keywords
real number
processor
code
statement
intermediate code
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
JP29016488A
Other languages
English (en)
Inventor
Makoto Akahira
誠 赤平
Toshihiro Yamamoto
敏弘 山本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP29016488A priority Critical patent/JPH02137030A/ja
Publication of JPH02137030A publication Critical patent/JPH02137030A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、例えばロボット言語等で書かれ、整数及び整
数変数及び実数及び実数変数の混在するプログラムの実
行処理システム及び翻訳システムに関し、より詳しくは
、少なくとも数値演算専用のプロセッサを含むシステム
におけるプログラムの実行処理速度の向上の改良に関す
る。
[従来の技術] マイクロプロセッサ技術の進展と共に、数値演算専用の
プロセッサ(以下、「コーブロセッサ」と略す)が登場
して、数値演算を含むプログラムの処理効率の向上に役
立っている。例えば、ロボット制御の分野においても、
ロボット言語で書かれたプログラムが数値演算を含む場
合は、コンパイラが数値演算部分の存在を識別し、その
数値演算部分の処理をコープロセツサに任すようにして
いる。この場合、整数については浮動小数点表示に変換
し、実数についてはそのままの状態で、コープロセツサ
に送り、このコープロセツサが実数形式で演算処理を行
なう。
[発明が解決しようとする課題] しかしながら上記の従来例では、数値演算が必要な部分
を実行する際、その数値が整数及び整数変数のみで構成
されているか、または実数もしくは実数変数を含むかど
うかを判別するようにはしていないために、上述したよ
うに、数式がすべて整数及び整数変調で構成されていて
も、実数もしくは実数変数に変換して実数と同様に処理
をするために、コープロセツサを使用しても整数演算に
関しては十分速いとはいえなかった。これは、先ず整数
型から実数型に変換するのに時間を要すること、浮動小
数点の演算自身が非常に時間にかかることによる。
一方、整数型データをメインのCPUにより演算するの
に要する時間は、この整数型データを実数型データに変
換してコープロセッサに処理させるのに要する時間の約
10分の1程に短縮される。換言すれば、従来では、わ
ざわざ時間が余計にかかる演算形式に変換して演算して
いることになる。これでは、コープロセツサを使用する
ことの意義が半減する。
[課題を解決するための手段] 上記課題を達成するための本発明の1つの構成は、数値
演算処理機能を有する通常のプロセッサと、数値演算専
用のプロセッサとを含むシステムで実行されるプログラ
ムの実行処理システムにおいて、このソースプログラム
中のステートメントから、整数演算のみに関連した第1
のステートメントと、実数演算を含む第2のステートメ
ントとを識別する識別手段と、整数演算のみに関連した
ステートメントに対応するコードの処理を前記通常のプ
ロセッサに実行させ、実数演算を含むステートメントに
対応したコードの処理を前記数値演算専用プロセッサに
実行させる制御手段とを具備したことを特徴とする。
上記課題を達成するための他の構成は、数値演算処理機
能を有する通常のプロセッサと、数値演算専用のプロセ
ッサとを含むシステムで実行されるソースプログラムを
翻訳するためのシステムにおいて、このソースプログラ
ム中のステートメントから、整数演算のみに関連した第
1のステートメントと、実数演算を含む第2のステート
メントとを識別する識別手段と、整数演算のみに関連し
たステートメントを前記通常のプロセッサ用のオブジェ
クトコードに翻訳し、実数演算を含むステートメントを
前記数値演算専用プロセッサ用のオブジェクトコードに
翻訳する手段とを具備したことを特徴とする。
[実施例] 以下添付図面を参照して、本発明を、ロボット言語で書
かれたプログラムの翻訳実行処理システムに適用した実
施例を説明する。
第2図1ま実施例のロボット制御システムのハードウェ
ア構成図である。図中、lはメインのCPUであり、例
えば米国インテル社のマイクロプロセッサ8086が使
われている。2はコプロセッサであり、例えば、同じ(
8087が使われている。6はCPU l用にあるプロ
グラムが格納されているROM、7は同じ<RAMであ
る。8は外部記憶としての磁気ディスクである。3はR
3232Cインターフエースであり、外部のパーソナル
コンピュータ4と接続されている。このパーソナルコン
ピュータ4はソースプログラムの人力及びデバッグ用に
使われる。5はロボット(不図示)の例えばアームのサ
ーボ系を駆動制御するサーボボードである。
第3図は第2図システムにおけるソフトウェアの構成を
示したものであり、CPU1の下位にマルチタスクO8
があり、その下位にロボット言語で書かれたプログラム
を中間コードに変換するためのコンパイラと、その中間
コードを解釈実行するインタプリタがある。第1図は、
パーソナルコンピュータ4から入力されたソースプログ
ラムがコンパイラにより中間コードに翻訳され、その中
間コードがインタプリタにより実行解釈されるときの流
れを示す。中間コードはRAMV上、及びディスク8に
も記憶される。再度の翻訳の手間を省くためと、同じロ
ボットプログラムを他のロボットシステムで使用したり
するためである。後に詳しく説明するように、コンパイ
ラはソースプログラムの各ステートメントに対応した中
間コードを生成する。この生成された中間コードには、
各ステートメントが整数型演算のみを含むのか、少なく
とも一部に実数型演算を含むのかを識別するフラグが付
加される。インタプリタは、中間コードの解釈実行の際
に、このフラグの存在に従って、整数型演算のみを含む
中間コードはCPU 1演算処理するようにし、また、
少なくとも一部に実数型演算を含む中間コードに対して
は、コプロセッサ2に送り、そこで演算処理するように
する。
る。
第4A図はソースプログラムの一例を示し、第4B図は
コンパイラによって翻訳された該ソースプログラムの中
間コードの一例を示す、第4A図において、A、Bは整
数型変数であり、#Cは実数型変数である。また、*は
乗算操作を示す。また、5PEEDはロボットアームの
速度を規定する動詞であり、ライン30の 5PEED  A*2 は、アームを変数Aの値を2倍した速度で移動するとい
うステートメントである。第4B図に、第4A図の各ス
テートメントが中間コードに変換されてRAM7の50
00番地から格納されている様子が示されている。第4
B図のEEフラグは、インタプリタによって付加された
フラグで、当該中間コードが実数型演算を含むことを示
している。第5図のフローチャートは、コンパイラプロ
グラムの中間コード生成部分を抜き出したものであり、
ソースプログラムの各ステートメントを読出して中間コ
ードを生成する。ステップS2における、演算処理部が
あるか否かの判断は、ステートメント中の動詞によって
判断され、ライン10の代入文、ライン30の5PEE
D文等は演算処理部のあるステートメントである。ステ
ップS4の、実数型演算が含まれるか否かの判断は、変
数が実数型と宣言されているか、実数のリテラルデータ
を含むかによって判断される。即ち、ライン20のステ
ートメントでは、#Cが実数型であるから、ライン4o
では、リテラル実数0.5が存在するから、フラグEE
が付加されている。ステップS6では、実数型の演算が
ある場合に、ステップS8では周知の構文解析を行なっ
て、中間コードを生成すると共に、この中間コードに前
記フラグEEを付加する。
中間コードは命令コードフィールドと、3シラブルのオ
ペランドフィールドと、オペランドフィールド間の算術
処理を規定するオペレータフィールドからなる。代人文
に対する命令コードは“8E゛であり、5PEED指令
に対するそれは85°°である。
第6図はCPU1によって実行されるインタプリタプロ
グラムの一部を抜き出したフローチャートであり、同図
には併せて、コープロセツサ2における処理も示されて
いる。ステップS20では、中間コードを1つRAM7
から取出し、ステップS22では命令コードからこの中
間コードが数値演算を含むものであるか否かを判断する
。ステップS24では、フラグEEのセット状態を調べ
る。
フェッチした中間コードのフラグがセットしていない場
合には、ステップS28で、この中間コードの演算に使
われるオペランド部分をCPU l内の内部レジスタを
使って演算する。CPUI内で行なわれる演算は整数型
演算だけであるから、処理速度は早い。ステップS24
でフラグがセットしていると判断された場合は、ステッ
プS26で中間コードのオペランド部分(演算オペレー
タも含む)をコープロセツサ2のスタック(不図示)に
送る。尚、中間コードが2つ以上の演算部分、即ち、整
数型の演算部分と実数型の演算部分に分けられる場合は
、ステップ326では、この整数型の演算部分はCPU
 1で実行される。
インタプリタは実数型演算のオペランド部分を、機械語
の例えばESCコマンドと共にコープロセツサ2に対し
て送る。このESCコマンドがデータバス上に表われて
も、CPU 1は無応答であることは周知のことである
。ステップS30では、ステップ328の整数演算若し
くは数値演算以外の処理を行なつと共に、コープロセツ
サ2から実数型演算の結果が送られてくるのを待つ。
かくして、整数型演算はCPUIで行なわれ、コープロ
セツサ2では実数型演算のみが行なわれるので、処理速
度は向上する。また、例えばロボットのNG動作時に、
無駄時間となる演算処理時間が短縮できる。また、無駄
時間の減少により、NG装置の組立、加工の性能向上が
はかれる。
次のような変形例を提案する。
上記実施例では、ロボットのアプリケーション分野に適
用したものを説明したが、本発明は数値演算を含むもの
であれば、あらゆる適応分野に適用できることは明らか
であろう。
また、上記実施例では、同じシステムで翻訳、解釈実行
を行なっていたが、翻訳と実行システムが異なる場所で
行なわれるシステムにも本発明は適用できる。磁気ディ
スク8に保存された中間コードのプログラムを簡単に移
送できるからである。
上記実施例では、−旦、中間コードに落したものを、イ
ンタプリタが解釈実行するというものであった。現在の
インタプリタでは、高級言語で係れらソースプログラム
を直接解釈実行するもの(例えば、BAS I C)も
周知である。かかるインタプリタがソースプログラムの
ステートメントを解釈するときに、変数の宣言状態、ま
たは、数式中のリテラルデータの型により、整数型演算
のみか、そうでないかの判断することは可能である。そ
こで、本発明はこのようなインタプリタを持つシステム
にも適用できる。
また、上記実施例では、中間コードのオペランド部分に
識別フラグのオペランドフィールドを設けたが、このよ
うにすると、メモリを消費するので、各オペランドを固
定長のワードとして扱い、各ワードには、実数型か整数
型を識別するタグを設けるようにしてもよい。
尚、中間コードの命令フィールドを、実数演算型と整数
演算型とで、別々のコードを割り当てるようにしてもよ
い。
尚、上記実施例では、インタプリタ、コンパイラ、中間
コード等の用語は狭義の意味で使われているが、本発明
ではこれらの用語を広義の意味で解釈すべきである。
[発明の効果] 以上説明した本発明に係るプログラムの実行処理システ
ムの構成は、数値演算処理機能を有する通常のプロセッ
サと、数値演算専用のプロセッサとを含むシステムで実
行されるプログラムの実行処理システムにおいて、この
ソースプログラム中のステートメントから、整数演算の
みに関連した第1のステートメントと、実数演算を含む
第2のステートメントとを識別する識別手段と、整数演
算のみに関連したステートメントに対応するコードの処
理を前記通常のプロセッサに実行させ、実数演算を含む
ステートメントに対応したコードの処理を前記数値演算
専用プロセッサに実行させる制御手段とを具備したこと
を特徴とする。
従って、このシステムによると、実数演算に適したプロ
セッサでは、実数型演算のみが行なわれ、整数型演算は
通常のプロセッサで行なわれるので、上記不都合は解消
する。
本発明の好適な一態様によると、識別結果は中間コード
に保持され、実行時に判断される。
本発明に係る翻訳システムによると、その構成は、数値
演算処理機能を有する通常のプロセッサと、数値演算専
用のプロセッサとを含むシステムで実行されるソースプ
ログラムを翻訳するためのシステムにおいて、このソー
スプログラム中のステートメントから、整数演算のみに
関連した第1のステートメントと、実数演算を含む第2
のステートメントとを識別する識別手段と、整数演算の
みに関連したステートメントを前記通常のプロセッサ用
のコードに翻訳し、実数演算を含むステートメントを前
記数値演算専用プロセッサ用のコードに翻訳する手段と
を具備したことを特徴とする。
従って、実数演算用と整数演算用とに分けて翻訳されて
いるので、実行時には実行システム上で高速に実行され
得る。
本発明の好適な一態様によると、コードは中間コードで
ある。
本発明の好適な一態様によると、コードはオブジェクト
コードである。
【図面の簡単な説明】
第1図は本発明に係る実施例システムにおけるソースプ
ログラムの翻訳、解釈実行の流れを説明する図、 第2図は実施例システムのハードウェア構成図、 第3図は実施例システムにおけるソフトウェアの階層図
、 第4A図はソースプログラムの一例を示す図、第4B図
は第4A図プログラムに対応する中間コードの構成を示
す図、 第5図及び第6図は夫々、実施例システムで使用される
コンパイラ及びインタプリタの一部手順を示すフローチ
ャートである。 図中、 1・・・CPU、2・・・コープロセツサ、4・・・パ
ーソナルコンピュータ、5・・・サーボボード、6・・
・ROM、7・・・RAM、8・・・ディスク、A、B
・・・整数変数、#C・・・実数変数、5PEED・・
・速度を指示する命令である。

Claims (5)

    【特許請求の範囲】
  1. (1)数値演算処理機能を有する通常のプロセッサと、
    数値演算専用のプロセッサとを含むシステムで実行され
    るプログラムの実行処理システムにおいて、 このソースプログラム中のステートメントから、整数演
    算のみに関連した第1のステートメントと、実数演算を
    含む第2のステートメントとを識別する識別手段と、 整数演算のみに関連したステートメントに対応するコー
    ドの処理を前記通常のプロセッサに実行させ、実数演算
    を含むステートメントに対応したコードの処理を前記数
    値演算専用プロセッサに実行させる制御手段とを具備し
    たことを特徴とするプログラムの実行処理システム。
  2. (2)前記識別手段は、ブログラムステートメントを中
    間コードに翻訳するための翻訳手段と、前記第1、第2
    のステートメントを識別すると、この識別結果を示すフ
    ラグを、前記中間コードに付加する手段とを含み、 前記制御手段は、前記中間コードを、前記フラグに応じ
    て通常のプロセッサ用と数値演算処理専用プロセッサ用
    とのオブジェクトコードに区別して変換する手段を含む
    事を特徴とする請求項の第1項記載のプログラムの実行
    処理システム。
  3. (3)数値演算処理機能を有する通常のプロセッサと、
    数値演算専用のプロセッサとを含むシステムで実行され
    るソースプログラムを翻訳するためのシステムにおいて
    、 このソースプログラム中のステートメントから、整数演
    算のみに関連した第1のステートメントと、実数演算を
    含む第2のステートメントとを識別する識別手段と、 整数演算のみに関連したステートメントを前記通常のプ
    ロセッサ用のコードに翻訳し、実数演算を含むステート
    メントを前記数値演算専用プロセッサ用のコードに翻訳
    する手段とを具備したことを特徴とするソースプログラ
    ムの翻訳システム。
  4. (4)前記コードは中間コードである事を特徴とする請
    求項の第3項に記載のソースプログラムの翻訳システム
  5. (5)前記コードはオブジェクトコードである事を特徴
    とする請求項の第3項に記載のソースプログラムの翻訳
    システム。
JP29016488A 1988-11-18 1988-11-18 プログラムの実行処理システム及びその翻訳システム Pending JPH02137030A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29016488A JPH02137030A (ja) 1988-11-18 1988-11-18 プログラムの実行処理システム及びその翻訳システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29016488A JPH02137030A (ja) 1988-11-18 1988-11-18 プログラムの実行処理システム及びその翻訳システム

Publications (1)

Publication Number Publication Date
JPH02137030A true JPH02137030A (ja) 1990-05-25

Family

ID=17752588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29016488A Pending JPH02137030A (ja) 1988-11-18 1988-11-18 プログラムの実行処理システム及びその翻訳システム

Country Status (1)

Country Link
JP (1) JPH02137030A (ja)

Similar Documents

Publication Publication Date Title
US5450575A (en) Use of stack depth to identify machine code mistakes
US8024555B2 (en) Condition code flag emulation for program code conversion
EP1164478A2 (en) Method and apparatus for resolving data references in generated code
JPH08339304A (ja) 機械独立コードを含むプラットフォーム標準オブジェクト・ファイルを生成する方法および装置
JPH04247536A (ja) オブジェクトの実行時データ形式の識別を支援するコンピュータソフトウェアコンパイルシステム及びデバッガ
Sadolewski et al. Compiler and virtual machine of a multiplatform control environment
JPH0523447B2 (ja)
JPH02137030A (ja) プログラムの実行処理システム及びその翻訳システム
JPH11212807A (ja) プログラム実行方法
JPH07295612A (ja) 高級言語シーケンス命令プログラム生成装置および汎用シーケンサ
JPH0379741B2 (ja)
Nielsen Design of an aerospace computer for direct HOL execution
KR0169909B1 (ko) 목표 프로세서용 어셈블리 코드 생성기를 작성하는 방법
JPH04268928A (ja) エミュレーション装置及び半導体装置
Johnstone et al. What assembly language programmers get up to: Control flow challenges in reverse compilation
JPH04343140A (ja) コンパイラの最適化処理方法
Debaere et al. A shared-memory modula-2 multiprocessor for real-time control applications
JPH0512752B2 (ja)
JPS59212907A (ja) プログラマブルコントロ−ラ
Johnstone et al. Reverse compilation for Digital Signal Processors: a working example
Gabbrielli et al. Abstract Machines
JPH0293947A (ja) 電子計算機
JPH0447336B2 (ja)
Cooper The direct execution of intermediate languages on an Eclipse computer
JPS61251936A (ja) 仮想計算機システム