JPH09244904A - 仮想コード翻訳系および仮想マシンシステム - Google Patents
仮想コード翻訳系および仮想マシンシステムInfo
- Publication number
- JPH09244904A JPH09244904A JP5460396A JP5460396A JPH09244904A JP H09244904 A JPH09244904 A JP H09244904A JP 5460396 A JP5460396 A JP 5460396A JP 5460396 A JP5460396 A JP 5460396A JP H09244904 A JPH09244904 A JP H09244904A
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- virtual code
- code
- byte order
- order
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】 仮想コードのバイト順が実行するCPUのバ
イト順と一致しない場合に、仮想コードの実行前ないし
実行中にバイト順の変換を行うことにより、処理速度が
損なわれていた従来の仮想マシンシステムに対し、実行
時にはバイト順の変換を行わずとも動作が可能となる仮
想マシンシステムを提供する。 【解決手段】 アプリケーションプログラムのソースコ
ード101を仮想コードに翻訳し出力する翻訳部1021と、
前期仮想コードを入力としバイト順が逆の逆順仮想コー
ドを出力するバイト順変換部1022を具備することを特徴
とする仮想コード翻訳系。
イト順と一致しない場合に、仮想コードの実行前ないし
実行中にバイト順の変換を行うことにより、処理速度が
損なわれていた従来の仮想マシンシステムに対し、実行
時にはバイト順の変換を行わずとも動作が可能となる仮
想マシンシステムを提供する。 【解決手段】 アプリケーションプログラムのソースコ
ード101を仮想コードに翻訳し出力する翻訳部1021と、
前期仮想コードを入力としバイト順が逆の逆順仮想コー
ドを出力するバイト順変換部1022を具備することを特徴
とする仮想コード翻訳系。
Description
【0001】
【発明の属する技術分野】本発明は、フォーマットのア
プリケーションプログラムの表現形式を、動作させるC
PUに独立とするための仮想マシンシステムに関する。
プリケーションプログラムの表現形式を、動作させるC
PUに独立とするための仮想マシンシステムに関する。
【0002】
【従来の技術】近年、CDROMなどの蓄積型メディアや、
インターネットや光ファイバ網などのネットワークメデ
ィアを通じて、オーディオ・ビデオの混在したマルチメ
ディアアプリケーションを配送し、エンドユーザのマル
チメディア端末機器で再生するマルチメディアシステム
が盛んに開発されている。
インターネットや光ファイバ網などのネットワークメデ
ィアを通じて、オーディオ・ビデオの混在したマルチメ
ディアアプリケーションを配送し、エンドユーザのマル
チメディア端末機器で再生するマルチメディアシステム
が盛んに開発されている。
【0003】ここで、アプリケーションプログラムを実
行するマルチメディア端末機器の形態は、Intel社の80x
86アーキテクチャや、Motrola社の680x0などのCPUを採
用した汎用パソコンや、IBM社のPowerPCやMIPS社のR400
0シリーズをCPUに用いた家庭用ゲーム機などがあり、こ
れら様々な機種の端末に対してマルチメディアアプリケ
ーションを効率的に供給するために、CPUに依存しな
いアプリケーション記述形式として仮想マシンのプログ
ラムコード、すなわち仮想コードでアプリケーションを
配布するようになりつつある。
行するマルチメディア端末機器の形態は、Intel社の80x
86アーキテクチャや、Motrola社の680x0などのCPUを採
用した汎用パソコンや、IBM社のPowerPCやMIPS社のR400
0シリーズをCPUに用いた家庭用ゲーム機などがあり、こ
れら様々な機種の端末に対してマルチメディアアプリケ
ーションを効率的に供給するために、CPUに依存しな
いアプリケーション記述形式として仮想マシンのプログ
ラムコード、すなわち仮想コードでアプリケーションを
配布するようになりつつある。
【0004】従来のアプリケーションプログラム実行の
ための仮想マシンとしては、例えば、Sun Microsystems
社のJava("The Java Virtual Machine Specification,
Release 1.0Beta Draft, Sun MicroSystems Computer
Corporation)や、Microware社のOS-9 I-codeなどがあ
る。これらの動作に関する基本的な概念は同等であり、
ここでは従来のシステムの構成と動作を概念的に説明す
る。
ための仮想マシンとしては、例えば、Sun Microsystems
社のJava("The Java Virtual Machine Specification,
Release 1.0Beta Draft, Sun MicroSystems Computer
Corporation)や、Microware社のOS-9 I-codeなどがあ
る。これらの動作に関する基本的な概念は同等であり、
ここでは従来のシステムの構成と動作を概念的に説明す
る。
【0005】図2に、係る従来の仮想マシンシステムの
システム図を示す。図2において、101はアプリケーシ
ョンプログラムのソースコード、201はアプリケーショ
ン開発環境、2011は開発プラットホーム、、1021は翻訳
系、202は仮想コードファイル、ユーザの再生環境、203
はアプリケーション実行環境、2031は実行プラットホー
ム、2032は仮想コード解釈系である。
システム図を示す。図2において、101はアプリケーシ
ョンプログラムのソースコード、201はアプリケーショ
ン開発環境、2011は開発プラットホーム、、1021は翻訳
系、202は仮想コードファイル、ユーザの再生環境、203
はアプリケーション実行環境、2031は実行プラットホー
ム、2032は仮想コード解釈系である。
【0006】次に、係る従来のシステムの動作を説明す
る。テキスト編集プログラムなどを用いて作成されたア
プリケーションのソースコード101は、アプリケーショ
ン開発環境201において、開発プラットホーム2011上で
動作する翻訳系2012を用いて、仮想コードに翻訳され、
仮想コードファイル202に出力される。具体的な開発プ
ラットホーム2011としては、たとえば、UNIXワークステ
ーションやWindowsパソコンが用いられる。そして仮想
コードファイル202は、インターネットサーバや、CD
ROMのような媒体を介して、アプリケーション実行環
境203に配布される。実行環境では実行プラットホーム2
031上で動作する仮想コード実行系2032で仮想コードフ
ァイルが読み込まれ、実行される。
る。テキスト編集プログラムなどを用いて作成されたア
プリケーションのソースコード101は、アプリケーショ
ン開発環境201において、開発プラットホーム2011上で
動作する翻訳系2012を用いて、仮想コードに翻訳され、
仮想コードファイル202に出力される。具体的な開発プ
ラットホーム2011としては、たとえば、UNIXワークステ
ーションやWindowsパソコンが用いられる。そして仮想
コードファイル202は、インターネットサーバや、CD
ROMのような媒体を介して、アプリケーション実行環
境203に配布される。実行環境では実行プラットホーム2
031上で動作する仮想コード実行系2032で仮想コードフ
ァイルが読み込まれ、実行される。
【0007】ここで、従来の仮想コードは、16ビット以
上の長さの命令やデータについて、そのバイト順を昇順
(little endian)か降順(big endian)かのいずれかを定
めていた。例えば、前述のJavaは降順の仮想コードを採
用しているため、仮想コードファイル202の種類は1種
類である。
上の長さの命令やデータについて、そのバイト順を昇順
(little endian)か降順(big endian)かのいずれかを定
めていた。例えば、前述のJavaは降順の仮想コードを採
用しているため、仮想コードファイル202の種類は1種
類である。
【0008】次に、図3は係る従来の仮想マシンシステ
ムの仮想コード実行系203の詳細な構成図である。図3
(a)は、実行プラットホームのCPUのバイト順が仮想
コードのバイト順と一致する場合の仮想コード実行系の
構成図、図3(b)はCPUのバイト順が仮想コードのバ
イト順と一致しない場合の仮想コード実行系の構成図で
ある。
ムの仮想コード実行系203の詳細な構成図である。図3
(a)は、実行プラットホームのCPUのバイト順が仮想
コードのバイト順と一致する場合の仮想コード実行系の
構成図、図3(b)はCPUのバイト順が仮想コードのバ
イト順と一致しない場合の仮想コード実行系の構成図で
ある。
【0009】図3の仮想コード実行系において、実行プ
ラットホーム2031の構成は共通であり、CPU304、主
記憶部305、外部記憶インタフェース306、CRTの接続
された表示インタフェース307、入力インタフェース308
から構成される通常のコンピュータシステムである。実
際には、このような構成のハードウェアの主記憶部にオ
ペレーティングシステムがロードされた状態が、実行プ
ラットホームとして用いられる。また、表示インタフェ
ース307を通して接続されたCRTや、入力インタフェ
ース308を通して接続されたキーボードはアプリケーシ
ョンの操作のために用いられるものであり、CRTの代
えてテレビ受像機が用いられたり、キーボードに代えて
ジョイパッドやリモコンが用いられることもある。
ラットホーム2031の構成は共通であり、CPU304、主
記憶部305、外部記憶インタフェース306、CRTの接続
された表示インタフェース307、入力インタフェース308
から構成される通常のコンピュータシステムである。実
際には、このような構成のハードウェアの主記憶部にオ
ペレーティングシステムがロードされた状態が、実行プ
ラットホームとして用いられる。また、表示インタフェ
ース307を通して接続されたCRTや、入力インタフェ
ース308を通して接続されたキーボードはアプリケーシ
ョンの操作のために用いられるものであり、CRTの代
えてテレビ受像機が用いられたり、キーボードに代えて
ジョイパッドやリモコンが用いられることもある。
【0010】さて、図3(a)の仮想コード実行系は、読
み込み部301と仮想コード実行部302から構成され、外部
記憶インターフェース306から、読み込み部301によって
仮想コードファイル202が主記憶部305に読み込まれ、そ
れを仮想コード解釈部302で実行する。これに対して、
図3(b)の仮想コード実行系は、読み込み部301と、バイ
ト順変換部303、仮想コード実行部302から構成され、読
み込み部301によって読み込まれた仮想コードファイル
は、バイト順変換部303によって、16bit以上の値(命令
・データを含む)のバイト順を変換して主記憶部305に
格納し、仮想コード解釈部302は変換後の仮想コードを
解釈実行する。
み込み部301と仮想コード実行部302から構成され、外部
記憶インターフェース306から、読み込み部301によって
仮想コードファイル202が主記憶部305に読み込まれ、そ
れを仮想コード解釈部302で実行する。これに対して、
図3(b)の仮想コード実行系は、読み込み部301と、バイ
ト順変換部303、仮想コード実行部302から構成され、読
み込み部301によって読み込まれた仮想コードファイル
は、バイト順変換部303によって、16bit以上の値(命令
・データを含む)のバイト順を変換して主記憶部305に
格納し、仮想コード解釈部302は変換後の仮想コードを
解釈実行する。
【0011】次に、図4に、このバイト順の変換を表す
模式図を示す。たとえば、10進数の1234(16進数で
は04D2)という値の32ビットのフィールドが、バイト順
が降順の仮想コードファイルの中に存在するとする。バ
イト順降順の仮想コードファイル中では、04, D2の順に
格納される(図4(a))。このファイルをそのまま主記
憶に読み込むと、図4(b)の状態となり、04が下位アド
レスに、D2が上位アドレスに入る。CPUが主記憶上の
このフィールドを32bit整数として用いる場合、CPU
のバイト順が仮想コードファイルと同じ降順の場合に
は、このまま扱うことができる。しかし、CPUのバイ
ト順が昇順の場合、これをバイト順変換部303によって
図4(c)の状態に変換しなければならない。
模式図を示す。たとえば、10進数の1234(16進数で
は04D2)という値の32ビットのフィールドが、バイト順
が降順の仮想コードファイルの中に存在するとする。バ
イト順降順の仮想コードファイル中では、04, D2の順に
格納される(図4(a))。このファイルをそのまま主記
憶に読み込むと、図4(b)の状態となり、04が下位アド
レスに、D2が上位アドレスに入る。CPUが主記憶上の
このフィールドを32bit整数として用いる場合、CPU
のバイト順が仮想コードファイルと同じ降順の場合に
は、このまま扱うことができる。しかし、CPUのバイ
ト順が昇順の場合、これをバイト順変換部303によって
図4(c)の状態に変換しなければならない。
【0012】具体的な例としては、仮想コードファイル
のバイト順が降順である場合、仮想コード実行系のCP
U304がMotrola社の680x0シリーズであればCPUのバ
イト順と一致するので仮想コード実行系は図3(a)の構
成ととることができるが、Intel社の80x86であればCP
Uのバイト順と一致しないため図3(b)の構成となる。
のバイト順が降順である場合、仮想コード実行系のCP
U304がMotrola社の680x0シリーズであればCPUのバ
イト順と一致するので仮想コード実行系は図3(a)の構
成ととることができるが、Intel社の80x86であればCP
Uのバイト順と一致しないため図3(b)の構成となる。
【0013】また、図3(b)のバイト順の変換は、この
例のように読み込んだ直後ではなく、仮想コード解釈部
302の中で変換しながら実行する場合もあるが、仮想コ
ードファイルのバイト順とCPUのバイト順が異なる場
合には変換が必要となることには変わりない。
例のように読み込んだ直後ではなく、仮想コード解釈部
302の中で変換しながら実行する場合もあるが、仮想コ
ードファイルのバイト順とCPUのバイト順が異なる場
合には変換が必要となることには変わりない。
【0014】
【発明が解決しようとする課題】このように、バイト順
を昇順か降順のいずれか一方に規定された仮想コードで
記述されたアプリケーションは、バイト順の適合しない
CPUを備えた端末で実行する場合に、図3に示したよ
うに実行系でバイト順の変換を行時の処理時間が増大す
るという課題がある。このことは、特に、コストの制限
から処理能力に限界のあるCPUを搭載した家庭用端末
で問題となる。
を昇順か降順のいずれか一方に規定された仮想コードで
記述されたアプリケーションは、バイト順の適合しない
CPUを備えた端末で実行する場合に、図3に示したよ
うに実行系でバイト順の変換を行時の処理時間が増大す
るという課題がある。このことは、特に、コストの制限
から処理能力に限界のあるCPUを搭載した家庭用端末
で問題となる。
【0015】本発明では、上記課題に鑑み、仮想コード
への翻訳時に、バイト順が昇順の仮想コードと昇順の仮
想コードの両方を出力し、アプリケーションの実行時に
は実行環境のCPUのバイト順に適合した一方を読み込
むことにより、実行時のバイト順序の変換を省略するこ
とを可能とする。
への翻訳時に、バイト順が昇順の仮想コードと昇順の仮
想コードの両方を出力し、アプリケーションの実行時に
は実行環境のCPUのバイト順に適合した一方を読み込
むことにより、実行時のバイト順序の変換を省略するこ
とを可能とする。
【0016】
【課題を解決するための手段】この課題を解決するため
に、請求項1に記載の本発明は、アプリケーションプロ
グラムのソースコードを仮想コードに翻訳し出力する翻
訳部と、前期仮想コードを入力としバイト順が逆の逆順
仮想コードを出力するバイト順変換部を具備することを
特徴とする仮想コード翻訳系である。係る請求項1の仮
想マシン翻訳系では、翻訳系内のバイト順変換部によ
り、降順と昇順の両方のバイト順の仮想コードを出力す
ることが可能となる。
に、請求項1に記載の本発明は、アプリケーションプロ
グラムのソースコードを仮想コードに翻訳し出力する翻
訳部と、前期仮想コードを入力としバイト順が逆の逆順
仮想コードを出力するバイト順変換部を具備することを
特徴とする仮想コード翻訳系である。係る請求項1の仮
想マシン翻訳系では、翻訳系内のバイト順変換部によ
り、降順と昇順の両方のバイト順の仮想コードを出力す
ることが可能となる。
【0017】請求項2に記載の本発明は、バイト順序が
昇順の仮想コードと、バイト順序が降順の仮想コードの
両方を含んだ仮想コードファイルを生成することを特徴
とする請求項1記載の仮想マシン翻訳系と、前期仮想コ
ードファイルの二つのバイト順のプログラムコードのう
ち実行されているCPUのバイト順と適合する方を取り
出して解釈実行する仮想マシン実行系を備えることを特
徴とする仮想マシンシステムである。
昇順の仮想コードと、バイト順序が降順の仮想コードの
両方を含んだ仮想コードファイルを生成することを特徴
とする請求項1記載の仮想マシン翻訳系と、前期仮想コ
ードファイルの二つのバイト順のプログラムコードのう
ち実行されているCPUのバイト順と適合する方を取り
出して解釈実行する仮想マシン実行系を備えることを特
徴とする仮想マシンシステムである。
【0018】請求項3に記載の本発明は、バイト順序が
昇順のプログラムコードを含む昇順仮想コードファイル
と、バイト順序が降順のプログラムコードを含む降順仮
想コードファイルを別々に生成することを特徴とする請
求項1の仮想マシン翻訳系と、前期昇順仮想コードファ
イルと前期降順仮想コードファイルのうち、実行されて
いるCPUのバイト順と適合する方のプログラムコード
を読み込み、解釈実行する仮想マシン実行系を備えるこ
とを特徴とする仮想マシンシステムである。
昇順のプログラムコードを含む昇順仮想コードファイル
と、バイト順序が降順のプログラムコードを含む降順仮
想コードファイルを別々に生成することを特徴とする請
求項1の仮想マシン翻訳系と、前期昇順仮想コードファ
イルと前期降順仮想コードファイルのうち、実行されて
いるCPUのバイト順と適合する方のプログラムコード
を読み込み、解釈実行する仮想マシン実行系を備えるこ
とを特徴とする仮想マシンシステムである。
【0019】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら説明する。
て、図面を参照しながら説明する。
【0020】(第1の実施の形態)本発明の仮想コード
翻訳系の第1の実施の形態について、そのブロック図で
ある図1を参照しながら説明する。図1において、この
仮想コード翻訳系102は、アプリケーションプログラム
のソースコード101を仮想コード103に変換する翻訳部10
21と、翻訳部の出力する仮想コードの中の2バイト以上
の長さのデータについてバイト順が逆の逆順仮想コード
104に変換するバイト順変換部1022から構成される。
翻訳系の第1の実施の形態について、そのブロック図で
ある図1を参照しながら説明する。図1において、この
仮想コード翻訳系102は、アプリケーションプログラム
のソースコード101を仮想コード103に変換する翻訳部10
21と、翻訳部の出力する仮想コードの中の2バイト以上
の長さのデータについてバイト順が逆の逆順仮想コード
104に変換するバイト順変換部1022から構成される。
【0021】図5は、図1の仮想コード翻訳系を含むシ
ステム構成図である。システムとしては、この翻訳系を
実行する開発プラットホーム501の上で、仮想コード翻
訳系102が動作する。
ステム構成図である。システムとしては、この翻訳系を
実行する開発プラットホーム501の上で、仮想コード翻
訳系102が動作する。
【0022】開発プラットホーム501は、CPU5011
と、主記憶部5012と、ネットワークないしディスク装置
との間のデータのやり取りを行う外部記憶インタフェー
ス5013、CRTへの表示出力を行う表示インタフェース
5014、キーボードからの入力を処理する入力インタフェ
ース5015から構成される。
と、主記憶部5012と、ネットワークないしディスク装置
との間のデータのやり取りを行う外部記憶インタフェー
ス5013、CRTへの表示出力を行う表示インタフェース
5014、キーボードからの入力を処理する入力インタフェ
ース5015から構成される。
【0023】CPU5011はシステム全体の制御と処理を
行うものであり、主記憶部5012にはオペレーティングシ
ステムや本発明の翻訳系のプログラム、ならびにそれら
で用いられるデータが格納される。CPU501は記憶部5
102に格納されたプログラムを実行することにより、デ
ータ転送・演算処理などを行う。
行うものであり、主記憶部5012にはオペレーティングシ
ステムや本発明の翻訳系のプログラム、ならびにそれら
で用いられるデータが格納される。CPU501は記憶部5
102に格納されたプログラムを実行することにより、デ
ータ転送・演算処理などを行う。
【0024】外部記憶インタフェース5013には、ディス
ク装置や、ネットワークが接続され、ソースコードファ
イルの読み込みや、仮想コード翻訳系の出力するの仮想
コードを外部ファイルへの書き出しを行う。外部記憶装
置の場合にはSCSIアダプタ、ネットワークの場合に
はEtherNetインタフェースなどがこれに相当する。
ク装置や、ネットワークが接続され、ソースコードファ
イルの読み込みや、仮想コード翻訳系の出力するの仮想
コードを外部ファイルへの書き出しを行う。外部記憶装
置の場合にはSCSIアダプタ、ネットワークの場合に
はEtherNetインタフェースなどがこれに相当する。
【0025】表示インタフェース5014はCRTに、キー
ボードからの入力のエコーバックや、翻訳の結果の状態
の表示を行うために必要なビデオ信号を出力するための
インタフェースである。入力インタフェース5015はキー
ボードからの入力信号を受け取り、主記憶上のプログラ
ムで処理するために必要な形式とする。
ボードからの入力のエコーバックや、翻訳の結果の状態
の表示を行うために必要なビデオ信号を出力するための
インタフェースである。入力インタフェース5015はキー
ボードからの入力信号を受け取り、主記憶上のプログラ
ムで処理するために必要な形式とする。
【0026】翻訳部1021は、語句解析部10211、構文解
析部10212、意味解析部10213、仮想コード生成部10214
から構成される。
析部10212、意味解析部10213、仮想コード生成部10214
から構成される。
【0027】語句解析部10211は、ソースコードの中の
文字列を処理してソースコードのプログラム言語の記号
を認識する。これらの記号は、構文解析部10212で解析
されプログラムの構成要素が認識される。このプログラ
ムの構成要素を元に意味解析部10213でプログラムの中
の変数の型や演算の対象などのプログラムの意味の認識
が行われ、その結果を構文解析の結果と合わせて仮想コ
ード生成部10214に渡し、仮想コードを生成する。翻訳
部のこの構成は、アプリケーションを実行するCPUに
依存したコードではなく、仮想マシンの仮想コードを生
成する点を除いては、通常のC言語やPascalの言語翻訳
系の構成と同じものである。
文字列を処理してソースコードのプログラム言語の記号
を認識する。これらの記号は、構文解析部10212で解析
されプログラムの構成要素が認識される。このプログラ
ムの構成要素を元に意味解析部10213でプログラムの中
の変数の型や演算の対象などのプログラムの意味の認識
が行われ、その結果を構文解析の結果と合わせて仮想コ
ード生成部10214に渡し、仮想コードを生成する。翻訳
部のこの構成は、アプリケーションを実行するCPUに
依存したコードではなく、仮想マシンの仮想コードを生
成する点を除いては、通常のC言語やPascalの言語翻訳
系の構成と同じものである。
【0028】なお、開発プラットホーム501のハードウ
ェア構成や、翻訳部1021の構成はあくまで一例であり、
本発明を限定するものではない。
ェア構成や、翻訳部1021の構成はあくまで一例であり、
本発明を限定するものではない。
【0029】以下、本実施の形態の動作について説明す
る。翻訳系102はキーボードからの入力によって動作を
開始し、同じくキーボードからの入力によって指定され
たソースコードファイル101に対する処理を開始する。
翻訳系はディスク装置に格納されたソースコードファイ
ルを主記憶部5012上に展開したものに対して翻訳部1021
が適用される。翻訳部1021の動作は先に説明した通りで
あり、これによって仮想コードが生成される。
る。翻訳系102はキーボードからの入力によって動作を
開始し、同じくキーボードからの入力によって指定され
たソースコードファイル101に対する処理を開始する。
翻訳系はディスク装置に格納されたソースコードファイ
ルを主記憶部5012上に展開したものに対して翻訳部1021
が適用される。翻訳部1021の動作は先に説明した通りで
あり、これによって仮想コードが生成される。
【0030】図6は仮想コードへの翻訳の実例を表す模
式図である。まず、図6(a)に、説明のために用いる
簡単な仮想マシンとその仮想コードを定義する。この仮
想マシンは、加算のみを行うことのできるスタックマシ
ンであり、その仮想コードは、16ビット固定命令長で
ある。次に、図6(b)に説明のために用いるソースコ
ード101の例を示す。このソースコードは、16ビット整
数の変数に定数値を設定し、しかる後に別の定数値を加
算するものである。図6(c)は、図6(b)のソース
コードを、翻訳部102において図6(a)で定義した仮
想マシンの仮想コードに翻訳した結果である。図6
(c)の仮想コードは、コード領域、定数領域、変数領
域から構成され、例えばコード領域には 0101, 030
1,...(いずれも16進表現)の16ビットの仮想コー
ドの命令が生成されている。
式図である。まず、図6(a)に、説明のために用いる
簡単な仮想マシンとその仮想コードを定義する。この仮
想マシンは、加算のみを行うことのできるスタックマシ
ンであり、その仮想コードは、16ビット固定命令長で
ある。次に、図6(b)に説明のために用いるソースコ
ード101の例を示す。このソースコードは、16ビット整
数の変数に定数値を設定し、しかる後に別の定数値を加
算するものである。図6(c)は、図6(b)のソース
コードを、翻訳部102において図6(a)で定義した仮
想マシンの仮想コードに翻訳した結果である。図6
(c)の仮想コードは、コード領域、定数領域、変数領
域から構成され、例えばコード領域には 0101, 030
1,...(いずれも16進表現)の16ビットの仮想コー
ドの命令が生成されている。
【0031】次に、バイト順変換部の動作を、図7を用
いて説明する。ここでは、翻訳部102において、バイト
順が降順の仮想コードが生成されているとする。図7
(a)はバイト順が降順として図6(c)で生成された
仮想コードの主記憶中での配置を表している。図7
(a)において仮想コードは、下位アドレスから、コー
ド領域、定数領域、変数領域の順に並んでおり、例え
ば、コード領域の 0101, 0301,0400.... は、01, 01, 0
3, 01, 04, 00 (いずれも16進表現)の順に配置され
る。実際にこの仮想コードを実行するためには、各領域
の開始アドレスを表すテーブルが必要となるが、ここで
は説明の本質ではないために省略している。
いて説明する。ここでは、翻訳部102において、バイト
順が降順の仮想コードが生成されているとする。図7
(a)はバイト順が降順として図6(c)で生成された
仮想コードの主記憶中での配置を表している。図7
(a)において仮想コードは、下位アドレスから、コー
ド領域、定数領域、変数領域の順に並んでおり、例え
ば、コード領域の 0101, 0301,0400.... は、01, 01, 0
3, 01, 04, 00 (いずれも16進表現)の順に配置され
る。実際にこの仮想コードを実行するためには、各領域
の開始アドレスを表すテーブルが必要となるが、ここで
は説明の本質ではないために省略している。
【0032】さて、仮想コード翻訳系102のバイト順変
換部1022では、この仮想コードのバイト順を昇順に変換
し、図7(b)の配置とする。図7(b)においては、
例えば、コード領域の 0101, 0301, 0400.... は、01,
01, 01, 03, 00, 04 となっている。
換部1022では、この仮想コードのバイト順を昇順に変換
し、図7(b)の配置とする。図7(b)においては、
例えば、コード領域の 0101, 0301, 0400.... は、01,
01, 01, 03, 00, 04 となっている。
【0033】図7(c)は、バイト順変換部1022におい
てバイト順を変換する手順のアルゴリズムを表すフロー
チャートである。この手順においては、まず、コード領
域について、 1)コード領域の内容を16ビット整数の配列code[]に
格納する。
てバイト順を変換する手順のアルゴリズムを表すフロー
チャートである。この手順においては、まず、コード領
域について、 1)コード領域の内容を16ビット整数の配列code[]に
格納する。
【0034】2)配列の各要素code[n] について以下を
適用する。 2−1) t1 に code[n] の上位8ビットを取り出す 2−2) t2 に code[n] の下位8ビットを取り出す 2−3) t1 を右シフトして上位8ビットの値を下位
8ビットに移動する 2−4) t2 を左シフトして下位8ビットの値を上位
8ビットに移動する 2−5) code[n] に t1 と t2 の論理和をセットす
る。 の処理を適用することで、配列code[]の内容のバイト順
を逆順に変換するものである。
適用する。 2−1) t1 に code[n] の上位8ビットを取り出す 2−2) t2 に code[n] の下位8ビットを取り出す 2−3) t1 を右シフトして上位8ビットの値を下位
8ビットに移動する 2−4) t2 を左シフトして下位8ビットの値を上位
8ビットに移動する 2−5) code[n] に t1 と t2 の論理和をセットす
る。 の処理を適用することで、配列code[]の内容のバイト順
を逆順に変換するものである。
【0035】以下、定数領域についても同様の手順を適
用しており、このアルゴリズムの適用が終了した時点で
の配列code[]の内容はコード領域の、配列cnst[]の内容
は定数領域のバイト順を昇順に変換したものとなり、そ
の結果は、図7(b)の昇順のバイト順の仮想コードと
なる。ここでは、変数領域については、この仮想マシン
では0に初期化されているために処理を省略しているに
過ぎない。
用しており、このアルゴリズムの適用が終了した時点で
の配列code[]の内容はコード領域の、配列cnst[]の内容
は定数領域のバイト順を昇順に変換したものとなり、そ
の結果は、図7(b)の昇順のバイト順の仮想コードと
なる。ここでは、変数領域については、この仮想マシン
では0に初期化されているために処理を省略しているに
過ぎない。
【0036】以上の手順によって、仮想コードと、その
バイト順が逆順の逆順仮想コードが得られることは明ら
かである。図5に示したシステム構成図においては、上
記手順によって得られた仮想コード103、逆順仮想コー
ド104 を、外部記憶インタフェース5013を通してファイ
ルに生成している。
バイト順が逆順の逆順仮想コードが得られることは明ら
かである。図5に示したシステム構成図においては、上
記手順によって得られた仮想コード103、逆順仮想コー
ド104 を、外部記憶インタフェース5013を通してファイ
ルに生成している。
【0037】なお、生成された仮想コードのバイト順が
昇順か降順かは、本発明を限定するものではない。
昇順か降順かは、本発明を限定するものではない。
【0038】また、本実施の動作説明においては、図6
(a)の仮想マシンにおいては仮想コードを構成する、
コード領域と定数領域の二つについてバイト順を変換す
るものであったが、このことは本発明の範囲を限定する
ものではない。すなわち、これ以外の構成の仮想マシ
ン、または実行系の実装によっては、それらのいずれか
一方、あるいは仮想コードを構成する別の領域につい
て、昇順と降順のバイト順のデータを翻訳系で生成する
場合もある。
(a)の仮想マシンにおいては仮想コードを構成する、
コード領域と定数領域の二つについてバイト順を変換す
るものであったが、このことは本発明の範囲を限定する
ものではない。すなわち、これ以外の構成の仮想マシ
ン、または実行系の実装によっては、それらのいずれか
一方、あるいは仮想コードを構成する別の領域につい
て、昇順と降順のバイト順のデータを翻訳系で生成する
場合もある。
【0039】さらに図6(c)のフローチャートにおい
ては、16ビットのデータを扱う例についてのみ示した
が、本発明は仮想マシンの命令長やデータ長を16ビッ
トに限定するものではなく、同様の手順によって2バイ
トより長いの命令長やデータ長を扱うことも可能であ
る。
ては、16ビットのデータを扱う例についてのみ示した
が、本発明は仮想マシンの命令長やデータ長を16ビッ
トに限定するものではなく、同様の手順によって2バイ
トより長いの命令長やデータ長を扱うことも可能であ
る。
【0040】(第2の実施の形態)本発明の仮想マシン
システムの第2の実施の形態について、そのブロック図
である図8を用いて説明する。
システムの第2の実施の形態について、そのブロック図
である図8を用いて説明する。
【0041】図8の仮想マシンシステムにおいて、仮想
コード翻訳系102は、アプリケーションプログラムのソ
ースコード101を、バイト順が昇順の昇順仮想コード801
1と、バイト順が降順の降順仮想コード8012の両方を含
む仮想コードファイル801を生成する。仮想コード実行
系802は、仮想コードファイル801の中の、仮想コードか
逆順仮想コードのいずれか一方を読込む、読み込み部80
21と、それによって読込まれた方を解釈実行する仮想コ
ード解釈部8022から構成される。
コード翻訳系102は、アプリケーションプログラムのソ
ースコード101を、バイト順が昇順の昇順仮想コード801
1と、バイト順が降順の降順仮想コード8012の両方を含
む仮想コードファイル801を生成する。仮想コード実行
系802は、仮想コードファイル801の中の、仮想コードか
逆順仮想コードのいずれか一方を読込む、読み込み部80
21と、それによって読込まれた方を解釈実行する仮想コ
ード解釈部8022から構成される。
【0042】さて、この仮想マシンシステムの仮想コー
ド翻訳系については、前述の第1の実施の形態と同じ構
成である。すなわち、その動作の説明(図5〜図7)か
ら明らかなように、第1の実施の形態によって、本第2
の実施の形態の昇順仮想コードと逆順仮想コードの両方
を含む仮想コードファイル801を生成することが可能で
ある。
ド翻訳系については、前述の第1の実施の形態と同じ構
成である。すなわち、その動作の説明(図5〜図7)か
ら明らかなように、第1の実施の形態によって、本第2
の実施の形態の昇順仮想コードと逆順仮想コードの両方
を含む仮想コードファイル801を生成することが可能で
ある。
【0043】以下では、仮想コード実行系802の動作に
ついて、本第2の実施の形態の仮想マシンシステムを含
む全体のシステム構成図である図9を参照しながら、図
3の従来の仮想コード実行系との差異に主眼をおいて説
明する。
ついて、本第2の実施の形態の仮想マシンシステムを含
む全体のシステム構成図である図9を参照しながら、図
3の従来の仮想コード実行系との差異に主眼をおいて説
明する。
【0044】まず、図9のシステム構成において、ソー
スコード101から、仮想コード翻訳系102によって、昇順
仮想コードと降順仮想コードを格納した仮想コードファ
イル801が生成される。この仮想コードファイルを実行
する実行系には、バイト順が昇順のCPUを備えた昇順
実行プラットホーム901と、バイト順が降順のCPUを
備えた降順実行プラットホーム902がある。バイト順が
昇順のCPUの実例としてはインテル社の80x86ファミ
リが、降順のCPUの実例としてはMotrola社の68x80が
ある。また、昇順プラットホームの実例としては、8048
6ベースのWindowsパソコン、降順プラットホームの実例
としては68040を搭載したApple社のMacintoshを挙げる
ことができる。
スコード101から、仮想コード翻訳系102によって、昇順
仮想コードと降順仮想コードを格納した仮想コードファ
イル801が生成される。この仮想コードファイルを実行
する実行系には、バイト順が昇順のCPUを備えた昇順
実行プラットホーム901と、バイト順が降順のCPUを
備えた降順実行プラットホーム902がある。バイト順が
昇順のCPUの実例としてはインテル社の80x86ファミ
リが、降順のCPUの実例としてはMotrola社の68x80が
ある。また、昇順プラットホームの実例としては、8048
6ベースのWindowsパソコン、降順プラットホームの実例
としては68040を搭載したApple社のMacintoshを挙げる
ことができる。
【0045】昇順プラットホーム901・降順プラットホ
ーム902とも、説明のために昇順のCPU9011と降順の
CPU9021の区別をつけたことを除いて、図3に示した
従来の仮想マシンシステムの実行プラットホーム2031の
構成や動作と全く同じである。
ーム902とも、説明のために昇順のCPU9011と降順の
CPU9021の区別をつけたことを除いて、図3に示した
従来の仮想マシンシステムの実行プラットホーム2031の
構成や動作と全く同じである。
【0046】昇順仮想コード実行系903と、降順プラッ
トホームに対応する降順仮想コード実行系904は、いず
れも図8のブロック図における仮想コード実行系802に
相当する構成要素であり、それぞれ、昇順プラットホー
ム901と降順プラットホーム902にに対応している。これ
らの差異は、図8のブロック図における読み込み部8021
が、仮想コードファイル801のうちの昇順仮想コードを
読込む、昇順仮想コード読み込み部9031と、降順仮想コ
ード読み込み部9041に対応している点である。
トホームに対応する降順仮想コード実行系904は、いず
れも図8のブロック図における仮想コード実行系802に
相当する構成要素であり、それぞれ、昇順プラットホー
ム901と降順プラットホーム902にに対応している。これ
らの差異は、図8のブロック図における読み込み部8021
が、仮想コードファイル801のうちの昇順仮想コードを
読込む、昇順仮想コード読み込み部9031と、降順仮想コ
ード読み込み部9041に対応している点である。
【0047】ここで、従来の仮想マシン実行系の構成で
は昇順または降順プラットホームのいずれかの場合に、
仮想マシン実行系を図3(b)に示したものとせねばな
らなかったのに対し、本発明の仮想マシン実行系は、昇
順・降順いずれの場合にも図3(a)に示したものと同
じ構成となっており、読み込み部を除いては図3(a)
と同様に動作する。
は昇順または降順プラットホームのいずれかの場合に、
仮想マシン実行系を図3(b)に示したものとせねばな
らなかったのに対し、本発明の仮想マシン実行系は、昇
順・降順いずれの場合にも図3(a)に示したものと同
じ構成となっており、読み込み部を除いては図3(a)
と同様に動作する。
【0048】次に、係る本発明の仮想マシンシステムの
仮想コード実行系の動作について、図10と図11を参
照しながら説明する。
仮想コード実行系の動作について、図10と図11を参
照しながら説明する。
【0049】図10は、仮想コードファイル801の一例
を表す図である。このファイルの内容のうち、昇順仮想
コード8011に対応するのは、図7(b)に示した昇順の
仮想コード(長さ24バイト)の先頭にコード領域・定
数領域・変数領域の相対位置を示すヘッダ領域(各2バ
イト、計6バイト)を付与した昇順の仮想コード構造体
である。また、降順仮想コード8012に対応するのは、図
7(a)に示した降順の仮想コードの先頭に同様のヘッ
ダ位置を付与した降順の仮想コード構造体となってい
る。さらに、各仮想コード構造体の前には、各構造体の
長さ情報が格納されている。
を表す図である。このファイルの内容のうち、昇順仮想
コード8011に対応するのは、図7(b)に示した昇順の
仮想コード(長さ24バイト)の先頭にコード領域・定
数領域・変数領域の相対位置を示すヘッダ領域(各2バ
イト、計6バイト)を付与した昇順の仮想コード構造体
である。また、降順仮想コード8012に対応するのは、図
7(a)に示した降順の仮想コードの先頭に同様のヘッ
ダ位置を付与した降順の仮想コード構造体となってい
る。さらに、各仮想コード構造体の前には、各構造体の
長さ情報が格納されている。
【0050】ファイルの先頭から2バイトには昇順の仮
想コード構造体の長さ情報が格納されている相対位置、
3バイト目からの2バイトには降順の仮想コード構造体
の長さ情報が格納されている相対位置が格納されてい
る。
想コード構造体の長さ情報が格納されている相対位置、
3バイト目からの2バイトには降順の仮想コード構造体
の長さ情報が格納されている相対位置が格納されてい
る。
【0051】次に、図11は、係る仮想コードファイル
の一例を読み込むための読み込み手順を現す図である。
の一例を読み込むための読み込み手順を現す図である。
【0052】まず、図11(a)はCPUのバイト順が
昇順の場合の読み取り手順、すなわち昇順仮想コード読
取り部9031における手順のアルゴリズムを現すフローチ
ャートである。この手順にしたがって、図10の昇順の
仮想コード構造体を読むことができることを示す。
昇順の場合の読み取り手順、すなわち昇順仮想コード読
取り部9031における手順のアルゴリズムを現すフローチ
ャートである。この手順にしたがって、図10の昇順の
仮想コード構造体を読むことができることを示す。
【0053】1)まず、ファイルをオープンしファイル
ポインタがファイルの先頭におかれる。
ポインタがファイルの先頭におかれる。
【0054】2)現在のファイルポインタが指す位置
(すなわち先頭)からの2バイトを読むと、昇順のCP
Uではこの値は 0002 であり、この状態でのファイルポ
インタの位置はファイル先頭からの3バイト目となって
いる。
(すなわち先頭)からの2バイトを読むと、昇順のCP
Uではこの値は 0002 であり、この状態でのファイルポ
インタの位置はファイル先頭からの3バイト目となって
いる。
【0055】3)2)で読込んだ結果をもとにファイル
ポインタを 0002 進めると、ファイルポインタの位置は
ファイル先頭からの5バイト目となる。
ポインタを 0002 進めると、ファイルポインタの位置は
ファイル先頭からの5バイト目となる。
【0056】4)現在のファイルポインタの指す位置か
らの2バイトを読込むと、値 001E(10進数で30)で
あり、この状態でファイルポインタは先頭から7バイト
目となる。
らの2バイトを読込むと、値 001E(10進数で30)で
あり、この状態でファイルポインタは先頭から7バイト
目となる。
【0057】5)現在のファイルポインタの指す位置か
らの30バイトを読込む。この5)の手順で読込まれた
部分は、昇順仮想コード構造体に他ならない。
らの30バイトを読込む。この5)の手順で読込まれた
部分は、昇順仮想コード構造体に他ならない。
【0058】まず、図11(b)はCPUのバイト順が
降順の場合の読み取り手順、すなわち昇順仮想コード読
取り部9031における手順のアルゴリズムを現すフローチ
ャートである。この手順にしたがって、図10の昇順の
仮想コード構造体を読むことができることを示す。
降順の場合の読み取り手順、すなわち昇順仮想コード読
取り部9031における手順のアルゴリズムを現すフローチ
ャートである。この手順にしたがって、図10の昇順の
仮想コード構造体を読むことができることを示す。
【0059】1)まず、ファイルをオープンしファイル
ポインタがファイルの先頭におかれる。
ポインタがファイルの先頭におかれる。
【0060】2)次に、ファイルポインタを2進める。
この時点でのファイルポインタは先頭から3バイト目と
なっている。
この時点でのファイルポインタは先頭から3バイト目と
なっている。
【0061】3)現在のファイルポインタが指す位置
(すなわち先頭)からの2バイトを読むと、降順のCP
Uではこの値は 0020 (10進数では32)であり、この
状態でのファイルポインタの位置はファイル先頭からの
5バイト目となっている。
(すなわち先頭)からの2バイトを読むと、降順のCP
Uではこの値は 0020 (10進数では32)であり、この
状態でのファイルポインタの位置はファイル先頭からの
5バイト目となっている。
【0062】4)3)で読込んだ結果をもとにファイル
ポインタを 0020 進めると、ファイルポインタの位置は
ファイル先頭からの37バイト目となる。
ポインタを 0020 進めると、ファイルポインタの位置は
ファイル先頭からの37バイト目となる。
【0063】5)現在のファイルポインタの指す位置か
らの2バイトを読込むと、値 001E(10進数で30)で
あり、この状態でファイルポインタは先頭から39バイ
ト目となる。
らの2バイトを読込むと、値 001E(10進数で30)で
あり、この状態でファイルポインタは先頭から39バイ
ト目となる。
【0064】6)現在のファイルポインタの指す位置か
らの30バイトを読込む。この6)の手順で読込まれた
部分は、降順仮想コード構造体に他ならない。
らの30バイトを読込む。この6)の手順で読込まれた
部分は、降順仮想コード構造体に他ならない。
【0065】このようにしてCPUのバイト順に応じ
て、対応するバイト順を持つ仮想コードが読込まれる
と、それを仮想コード解釈部302で実行する。具体的に
は、それぞれの仮想コード構造体の中のヘッダ情報に基
づいて定数領域のデータと変数領域を用いながら、コー
ド領域の仮想コードを解釈実行してゆく。
て、対応するバイト順を持つ仮想コードが読込まれる
と、それを仮想コード解釈部302で実行する。具体的に
は、それぞれの仮想コード構造体の中のヘッダ情報に基
づいて定数領域のデータと変数領域を用いながら、コー
ド領域の仮想コードを解釈実行してゆく。
【0066】なお、図10以外にも仮想コードファイル
の構成は様々な形態がありうるが、それらに対しても同
様に昇順仮想読取り部9031および降順仮想コード読取り
部9041を構成することは容易である。
の構成は様々な形態がありうるが、それらに対しても同
様に昇順仮想読取り部9031および降順仮想コード読取り
部9041を構成することは容易である。
【0067】(第3の実施の形態)本発明の仮想マシン
システムの第2の実施の形態について、そのブロック図
である図12を用いて説明する。
システムの第2の実施の形態について、そのブロック図
である図12を用いて説明する。
【0068】図12の仮想マシンシステムにおいては、
仮想コード翻訳系102において昇順と降順の仮想コード
を別々のファイル1201と1202に生成し、仮想コード実行
系2032の読み込み部においてその一方を読込む。係る構
成の仮想コード翻訳系102は、図1において説明した仮
想コード翻訳系と同等であり、仮想コード実行系2032
は、図3(a)において説明した従来の仮想コード実行
系と同等であるため、同じ番号を付して説明を省略す
る。
仮想コード翻訳系102において昇順と降順の仮想コード
を別々のファイル1201と1202に生成し、仮想コード実行
系2032の読み込み部においてその一方を読込む。係る構
成の仮想コード翻訳系102は、図1において説明した仮
想コード翻訳系と同等であり、仮想コード実行系2032
は、図3(a)において説明した従来の仮想コード実行
系と同等であるため、同じ番号を付して説明を省略す
る。
【0069】昇順と降順の仮想コードファイルのいずれ
か一方を読込むための具体的な方法としては、たとえば
昇順・降順によってファイル名の拡張子を規定すること
で区別できるようにするなどがある。
か一方を読込むための具体的な方法としては、たとえば
昇順・降順によってファイル名の拡張子を規定すること
で区別できるようにするなどがある。
【0070】なお、本発明における第1〜第3のいずれ
の実施の形態も、プログラムによって実現し、これをフ
ロッピーディスク等の記録媒体に記録して移送すること
により、独立した他のコンピュータ・システムで容易に
実施することができる。
の実施の形態も、プログラムによって実現し、これをフ
ロッピーディスク等の記録媒体に記録して移送すること
により、独立した他のコンピュータ・システムで容易に
実施することができる。
【0071】また、第1〜第3のいずれの実施の形態に
おいても、翻訳系がソースコードを読込む際、翻訳系が
仮想コードファイルを出力する際、実行系が仮想コード
ファイルを読込む際に用いられる媒体は、機器に直接接
続されたディスクやCDROMなどの記録媒体に限ら
ず、例えばネットワーク上の他の機器に接続された場合
にも実施することができる。
おいても、翻訳系がソースコードを読込む際、翻訳系が
仮想コードファイルを出力する際、実行系が仮想コード
ファイルを読込む際に用いられる媒体は、機器に直接接
続されたディスクやCDROMなどの記録媒体に限ら
ず、例えばネットワーク上の他の機器に接続された場合
にも実施することができる。
【0072】
【発明の効果】以上のことから明らかなように、本発明
によれば、仮想マシンシステムの仮想コード翻訳系にバ
イト順変換部を設けることによって、常にバイト順が昇
順と降順のデータを用意することができ、その結果、仮
想コード実行系では実行プラットホームのCPUのバイ
ト順の適合するいずれか一方を読み込むことで、実行系
でのバイト順変換処理を省略することが可能となる。こ
のことにより、処理能力の小さなCPUで大きな仮想コ
ードプログラムを実行する場合でも、読み込んでから実
際に実行を開始するまでの時間を短縮できる。このこと
はユーザからみたシステムのレスポンスを向上させるこ
とに他ならない。
によれば、仮想マシンシステムの仮想コード翻訳系にバ
イト順変換部を設けることによって、常にバイト順が昇
順と降順のデータを用意することができ、その結果、仮
想コード実行系では実行プラットホームのCPUのバイ
ト順の適合するいずれか一方を読み込むことで、実行系
でのバイト順変換処理を省略することが可能となる。こ
のことにより、処理能力の小さなCPUで大きな仮想コ
ードプログラムを実行する場合でも、読み込んでから実
際に実行を開始するまでの時間を短縮できる。このこと
はユーザからみたシステムのレスポンスを向上させるこ
とに他ならない。
【図1】本発明の第1の実施の形態の仮想マシン翻訳系
のブロック図
のブロック図
【図2】従来の仮想マシンシステムのブロック図
【図3】従来の仮想マシン実行系のシステム構成図
【図4】従来の仮想マシン実行系内でのバイト順の変換
を表す模式図
を表す模式図
【図5】第1の実施の形態の仮想コード翻訳系を含むシ
ステム構成図
ステム構成図
【図6】同実施の形態における仮想コードへの翻訳例を
表す模式図
表す模式図
【図7】同実施の形態の翻訳系における仮想コードのバ
イト順変換を表す図
イト順変換を表す図
【図8】本発明の第2の実施の形態の仮想マシンシステ
ムのブロック図
ムのブロック図
【図9】本発明の第2の実施の形態の仮想マシンシステ
ムを含むシステム構成図
ムを含むシステム構成図
【図10】本発明の第2の実施の形態の仮想コードファ
イルの例を表す図
イルの例を表す図
【図11】本発明の第2の実施の形態の仮想コードファ
イルの読み取り手順を表す図
イルの読み取り手順を表す図
【図12】本発明の第3の実施の形態の仮想マシンシス
テムのブロック図
テムのブロック図
101 ソースコード 102 仮想コード翻訳系 103 仮想コード 104 逆順仮想コード 201 アプリケーション開発環境 202 仮想コードファイル 203 アプリケーション実行環境 301 読み込み部 302 仮想コード解釈部 303 バイト順変換部 304 CPU 305 主記憶部 306 外部記憶インタフェース 307 表示インタフェース 308 入力インタフェース 801 仮想コードファイル 802 仮想コード実行系 901 昇順実行プラットホーム 902 降順実行プラットホーム 903 昇順仮想コード実行系 904 降順仮想コード実行系 1021 翻訳部 1022 バイト順変換部 1201 昇順仮想コードファイル 1202 降順仮想コードファイル 2011 開発プラットホーム 2012 仮想コード翻訳系 2031 実行プラットホーム 2032 仮想コード実行系 5011 CPU 5012 主記憶部 5013 外部記憶インタフェース 5014 表示インタフェース 5015 入力インタフェース 8011 昇順仮想コード 8012 降順仮想コード 8021 読み込み部 8022 仮想コード解釈部 9011 昇順のCPU 9021 降順のCPU 9031 昇順仮想コード読み込み部 9041 降順仮想コード読み込み部 10211 語句解析部 10212 構文解析部 10213 意味解析部 10214 仮想コード生成部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 裕樹 大阪府門真市大字門真1006番地 松下電器 産業株式会社内
Claims (3)
- 【請求項1】 アプリケーションプログラムのソースコ
ードを仮想コードに翻訳し出力する翻訳部と、前期仮想
コードを入力としバイト順が逆の逆順仮想コードを出力
するバイト順変換部を具備することを特徴とする仮想コ
ード翻訳系。 - 【請求項2】 バイト順序が昇順の仮想コードと、バイ
ト順序が降順の仮想コードの両方を含んだ仮想コードフ
ァイルを生成することを特徴とする請求項1記載の仮想
マシン翻訳系と、前期仮想コードファイルの二つのバイ
ト順の仮想コードのうち実行されているCPUのバイト
順と適合する一方を読込む読み込み部と、前記読み込み
部にて読込まれた仮想コードを解釈実行する仮想コード
解釈部を備える仮想マシン実行系から構成されるを特徴
とする仮想マシンシステム。 - 【請求項3】 バイト順序が昇順のプログラムコードを
含む昇順仮想コードファイルと、バイト順序が降順のプ
ログラムコードを含む降順仮想コードファイルを別々に
生成することを特徴とする請求項1の仮想マシン翻訳系
と、前期昇順仮想コードファイルと前期降順仮想コード
ファイルのうち、実行されているCPUのバイト順と適
合する方のプログラムコードを読み込む読み込み部と、
前記読み込み部にて読込まれた仮想コードを解釈実行す
る仮想コード解釈部を備える仮想マシン実行系から構成
されるを特徴とする仮想マシンシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5460396A JPH09244904A (ja) | 1996-03-12 | 1996-03-12 | 仮想コード翻訳系および仮想マシンシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5460396A JPH09244904A (ja) | 1996-03-12 | 1996-03-12 | 仮想コード翻訳系および仮想マシンシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09244904A true JPH09244904A (ja) | 1997-09-19 |
Family
ID=12975320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5460396A Pending JPH09244904A (ja) | 1996-03-12 | 1996-03-12 | 仮想コード翻訳系および仮想マシンシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH09244904A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003141488A (ja) * | 1996-10-25 | 2003-05-16 | Schlumberger System | 高級プログラミング言語を用いたマイクロコントローラ |
-
1996
- 1996-03-12 JP JP5460396A patent/JPH09244904A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003141488A (ja) * | 1996-10-25 | 2003-05-16 | Schlumberger System | 高級プログラミング言語を用いたマイクロコントローラ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4165683B2 (ja) | 複合データ構造の永続的表現の生成 | |
US6438745B1 (en) | Program conversion apparatus | |
CN100507837C (zh) | 动态运行时间环境中使用标签化类型的系统和方法 | |
US5745360A (en) | Dynamic hypertext link converter system and process | |
Harold | Java I/O: Tips and Techniques for Putting I/O to Work | |
JP2001142600A (ja) | 多国語表示切替装置およびその切替方法 | |
JPH10320248A (ja) | 実行時ルックアップ及び読出し専用アクセス用バイナリイメージへファイルを埋込むための装置及びその方法 | |
US7490315B2 (en) | Persistent representations for complex data structures as interpreted programs | |
US7996764B2 (en) | Apparatus, program and method for accepting a request from a client computer via a network and executing a web application | |
JPH09244904A (ja) | 仮想コード翻訳系および仮想マシンシステム | |
JP2002506553A (ja) | オペレーティング・システム・コールを効率的にエミュレートする構成を提供するシステムおよび方法 | |
US7028289B2 (en) | Stream operator in a dynamically typed programming language | |
JP2988394B2 (ja) | 可変長オブジェクトのデータベース処理装置、データベース処理方法、およびデータベース処理プログラムを記憶する記憶媒体 | |
Pike | PLUMBINGANDOTHERUTILI TIES | |
JP3439368B2 (ja) | データ変換処理システムおよびその機能を実現するためのプログラムを記録した記録媒体 | |
CN114896023A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
JP3279706B2 (ja) | オンライン・コンパイル方式 | |
JPH08286893A (ja) | 複数ベンダー及び複数アーキテクチャー実行用のコンピュータファイル及びその形成方法 | |
JP3988973B2 (ja) | 文字列データ圧縮装置、文字列データ圧縮方法および記憶媒体 | |
CN114764562A (zh) | 一种文本处理方法、装置、电子设备和存储介质 | |
CN114138276A (zh) | 页面编译方法、装置、电子设备及存储介质 | |
Burris | Data format translation routines | |
Wang et al. | Jato: A compact binary file format for java class | |
JPH0934788A (ja) | アドレス変換装置及びアドレス変換方法 | |
JP2001282777A (ja) | 文書形式変換装置及び文書形式変換プログラムを記録した記録媒体 |