JP2003202993A - Intermediate code execution system, intermediate code execution method, and intermediate code execution program - Google Patents

Intermediate code execution system, intermediate code execution method, and intermediate code execution program

Info

Publication number
JP2003202993A
JP2003202993A JP2002314985A JP2002314985A JP2003202993A JP 2003202993 A JP2003202993 A JP 2003202993A JP 2002314985 A JP2002314985 A JP 2002314985A JP 2002314985 A JP2002314985 A JP 2002314985A JP 2003202993 A JP2003202993 A JP 2003202993A
Authority
JP
Japan
Prior art keywords
instruction
intermediate code
subset
storage means
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.)
Granted
Application number
JP2002314985A
Other languages
Japanese (ja)
Other versions
JP3472775B2 (en
Inventor
Tetsuyuki Kobayashi
哲之 小林
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.)
Aplix Corp
Original Assignee
Aplix 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 Aplix Corp filed Critical Aplix Corp
Priority to JP2002314985A priority Critical patent/JP3472775B2/en
Publication of JP2003202993A publication Critical patent/JP2003202993A/en
Application granted granted Critical
Publication of JP3472775B2 publication Critical patent/JP3472775B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an intermediate code execution system that has high performance in executing an intermediate code, an intermediate code execution method, and an intermediate code execution program. <P>SOLUTION: The intermediate code execution system 10 which has processing modules 11 and 12 which execute each of commands included in a predetermined command system and sequentially interprets and executes intermediate codes prepared in accordance with the command system comprises a first command execution portion 15 which makes judgment upon whether a command taken out from an intermediate code corresponds to each of subsets selected from the command system, and executes the processing module 11 corresponding to the command if the taken-out command corresponds to each of the subsets, and a second processing command execution portion 17 which specifies a type of a processing command which has not been executed in the first processing command execution portion 15, and executes the processing module 12 corresponding to the processing command. <P>COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、中間コードを実行
する中間コード実行システム、中間コード実行方法およ
び中間コード実行プログラムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an intermediate code execution system for executing intermediate code, an intermediate code execution method, and an intermediate code execution program.

【0002】[0002]

【従来の技術】ハードウェアやOSといった、コンピュ
ータのプラットフォームに依存しないプログラムを提供
することを目的として、各プラットフォーム上にソフト
ウェア的な手法またはハードウェア的な手法により仮想
機械(VM; Virtual Machine)を構築し、この仮想機
械上でソースコードとオブジェクトコードとの間の中間
的なコード(以下、中間コードという)を実行する方法
が提案されている。このような方法を採用したプログラ
ム言語の一つとしては、クラスファイルと呼ばれる中間
コードの形式を採用したJava(R)が挙げられる。
なお、以下ではハードウェアと当該ハードウェア上に構
築された仮想機械とを一体的に、中間コード実行システ
ムと呼称する場合がある。
2. Description of the Related Art For the purpose of providing a program that does not depend on a computer platform such as hardware or OS, a virtual machine (VM) is created on each platform by a software method or a hardware method. A method of constructing and executing intermediate code between source code and object code (hereinafter referred to as intermediate code) on this virtual machine has been proposed. As one of the programming languages adopting such a method, there is Java (R) which adopts an intermediate code format called a class file.
In the following, the hardware and the virtual machine constructed on the hardware may be collectively referred to as an intermediate code execution system.

【0003】上記の方法によれば、単一のプログラムコ
ードを種々のプラットフォームに供給して実行すること
が可能となるため、個々のプラットフォームでしか実行
できないオブジェクトコードを準備する必要がなくな
る。これにより、プログラムの配信を簡潔化することが
できるばかりでなく、ソフトウェア開発を効率化するこ
とも可能である。このため、種々のコンピュータのプラ
ットフォームにおいて仮想機械を構築することが行われ
ている。さらに、近時ではプロセッサを搭載した種々の
電子機器(以下、組込み機器という)においても、プロ
セッサ上に仮想計算機を構築することが行われはじめて
いる。
According to the above method, since a single program code can be supplied to various platforms and executed, it is not necessary to prepare an object code that can be executed only on each platform. As a result, not only can the distribution of the program be simplified, but also the software development can be made efficient. Therefore, virtual machines are being constructed on various computer platforms. Furthermore, recently, in various electronic devices (hereinafter referred to as embedded devices) equipped with a processor, a virtual computer is starting to be built on the processor.

【0004】ここで、仮想計算機としては、プラットフ
ォーム上にソフトウェア的に構築され、クラスファイル
に含まれるバイトコード命令を逐次的に解釈して実行す
るインタープリター方式のものが知られている。
Here, as a virtual computer, an interpreter system is known which is constructed on a platform by software and sequentially interprets and executes bytecode instructions contained in a class file.

【0005】しかしながら、インタープリター方式の仮
想計算機は、クラスファイルから一つ一つバイトコード
命令を取り出してはその内容を解釈するというプロセス
が必要であり、このプロセスがシステムのオーバーヘッ
ドとなる場合がある。このようなオーバーヘッドを軽減
してパフォーマンスを向上するために、クラスファイル
を各ハードウェアに固有のネイティブコードにコンパイ
ルしてから実行するJITコンパイラ(Just In Time C
ompiler)方式や、AOTコンパイラ(Ahead Of Time C
ompiler)方式等が提案されている。さらに、バイトコ
ード命令を直接実行することができるように特別に設計
されたJava(R)チップのように、仮想計算機をハ
ードウェア的に構築することも試みられている。
However, the interpreter type virtual machine requires a process of extracting each bytecode instruction from the class file and interpreting its contents, and this process may become an overhead of the system. . To reduce such overhead and improve performance, a JIT compiler (Just In Time C) that compiles class files into native code specific to each hardware and then executes them.
ompiler) method and AOT compiler (Ahead Of Time C)
ompiler) method has been proposed. Further, it has been attempted to construct a virtual machine in hardware, such as a Java (R) chip specially designed to directly execute bytecode instructions.

【0006】上記のJITやAOT等のコンパイラ方式
ではプロセッサのネイティブコードを実行することにな
るので、命令実行の速度だけを見ればインタープリター
方式よりも優れている。しかしながら、コンパイラ方式
では、コンパイルの作業自体に必要なワークメモリや、
クラスファイルに比べてサイズが4〜10倍と大きいネ
イティブコードを保存する領域も必要となるため、イン
タープリター方式よりも大量のメモリが必要となるとい
う問題がある。
Since the compiler system such as JIT or AOT described above executes the native code of the processor, it is superior to the interpreter system only in terms of instruction execution speed. However, in the compiler method, the work memory necessary for the compilation work itself,
There is a problem in that a larger amount of memory is required than in the interpreter method because an area for storing a native code that is 4 to 10 times larger than the class file is required.

【0007】このような問題は、特に通常のコンピュー
タよりもハードウェア資源の制約が厳しい組み込み機器
において顕著となる。また、クラスファイルの実行を指
示してからコンパイルを開始する場合には、コンパイル
の作業がオーバーヘッドとなって十分なパフォーマンス
が得られないという可能性もある。
[0007] Such a problem becomes remarkable especially in an embedded device in which hardware resources are more restricted than in an ordinary computer. In addition, when starting the compilation after instructing the execution of the class file, there is a possibility that the compilation work becomes an overhead and sufficient performance cannot be obtained.

【0008】また、上記のJava(R)チップによれ
ば、コンパイルすることもなく高パフォーマンスでクラ
スファイルを実行することが可能であるが、このような
専用チップの開発には高額の開発費を要し、チップ自体
の高コスト化を免れることはできない。また、技術の進
歩や市場のニーズに応じた言語仕様のバージョンアップ
や修正が適宜行われることを鑑みると、仮想機械をハー
ドウェア的に構成することは必ずしも好適ではないとい
う一面もある。特に、組み込み機器における仮想機械に
は、低コスト化に対する強い要請と短サイクルで仕様が
バージョンアップされることとが相俟って、Java
(R)チップの採用は現実的ではない。
According to the above Java (R) chip, it is possible to execute a class file with high performance without compiling. However, a large amount of development cost is required for developing such a dedicated chip. That is, the cost of the chip itself cannot be avoided. Further, in view of the fact that the version of the language specification is appropriately upgraded or modified according to technological progress and market needs, it is not always preferable to configure the virtual machine as hardware. In particular, for virtual machines in embedded devices, due to the strong demand for cost reduction and the specification upgrade in a short cycle, Java
The adoption of (R) chips is not practical.

【0009】以上説明したように、コンパイラ方式やJ
ava(R)チップ等の技術は、コストおよび要求ハー
ドウェア資源等の点で問題があり、特に、これらの制限
が厳しい組み込み機器に適用することは難しい。このた
め、組み込み機器に適用することを視野に入れて、別の
方法により仮想機械ないし中間コード実行システムのパ
フォーマンスを向上することが望まれている。
As described above, the compiler method and J
The technology of the ava (R) chip and the like has problems in terms of cost, required hardware resources, etc., and it is particularly difficult to apply them to embedded devices with severe restrictions. Therefore, it is desired to improve the performance of the virtual machine or the intermediate code execution system by another method in view of the application to the embedded device.

【0010】[0010]

【発明が解決しようとする課題】本発明は、上記事情に
鑑みてなされたものであって、低コストでありながら、
制限されたハードウェア環境において中間コード実行時
のパフォーマンス向上が可能な中間コード実行システ
ム、中間コード実行方法、および中間コード実行プログ
ラムを提供することを目的とする。
SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and has a low cost.
An object is to provide an intermediate code execution system, an intermediate code execution method, and an intermediate code execution program capable of improving the performance when executing the intermediate code in a limited hardware environment.

【0011】[0011]

【課題を解決するための手段】上記課題を解決するため
に、本発明の第1の観点では、所定のプログラム言語で
作成されたソースコードを変換して得られた中間コード
を実行するシステムであって、第1の記憶手段と、前記
第1の記憶手段に比して低速な第2の記憶手段と、前記
第1の記憶手段に記憶され、前記プログラム言語の命令
セットのサブセットに対応した第1のインタープリター
モジュールと、前記第2の記憶手段に記憶され、前記命
令セットの残りの命令に対応した第2のインタープリタ
ーモジュールと、前記第1のインタープリターモジュー
ルにより、中間コードから取り出された命令が前記サブ
セットのいずれに該当するかを判断し、該当するものが
前記サブセットにある場合にはそれを実行し、一方、該
当するものが前記サブセットにない場合には、前記第2
のインタープリターモジュールにより、当該命令が残り
の命令のいずれに該当するかを特定して実行する制御手
段と、を具備することを特徴とする中間コード実行シス
テムが提供される。
In order to solve the above problems, according to a first aspect of the present invention, a system for executing an intermediate code obtained by converting a source code created in a predetermined programming language. The first storage means, the second storage means that is slower than the first storage means, and the first storage means are stored and correspond to a subset of the instruction set of the programming language. Extracted from the intermediate code by a first interpreter module, a second interpreter module stored in the second storage means and corresponding to the remaining instructions of the instruction set, and the first interpreter module. That subset of the subsets corresponds to the subset, and if the subset is in the subset, execute it, while If not in the subset, the second
The interpreter module of 1. provides a control means for specifying and executing which one of the remaining instructions the instruction corresponds to, and an intermediate code execution system.

【0012】また、本発明の第2の観点では、少なくと
も第1の記憶手段および前記第1の記憶手段に比して低
速な第2の記憶手段が接続された制御手段により、所定
のプログラム言語で作成されたソースコードを変換して
得られた中間コードを実行する中間コード実行方法であ
って、上記制御手段により、前記プログラム言語の命令
セットのサブセットに対応した第1のインタープリター
モジュールにより中間コードから取り出された命令が前
記サブセットのいずれに該当するかを判断し、該当する
ものが前記サブセットにある場合にはそれを実行するス
テップと、上記制御手段により、該当するものが前記サ
ブセットにない場合には、前記命令セットの残りの命令
に対応した第2のインタープリターモジュールにより、
当該命令が残りの命令のいずれに該当するかを特定して
実行するステップと、を有することを特徴とする中間コ
ード実行方法が提供される。
According to a second aspect of the present invention, a predetermined programming language is provided by the control means to which at least the first storage means and the second storage means, which is slower than the first storage means, are connected. An intermediate code execution method for executing an intermediate code obtained by converting the source code created in 1., wherein the control means intermediates a first interpreter module corresponding to a subset of an instruction set of the programming language. The step of determining which of the subsets the instruction fetched from the code corresponds to, and executing the instruction if the corresponding one is in the subset, and the control means, the corresponding one is not in the subset In this case, by the second interpreter module corresponding to the remaining instructions of the instruction set,
And executing which one of the remaining instructions the instruction corresponds to, and executing the intermediate code execution method.

【0013】さらに、本発明の第3の観点では、少なく
とも第1の記憶手段および前記第1の記憶手段に比して
低速な第2の記憶手段が接続された制御手段により、所
定のプログラム言語で作成されたソースコードを変換し
て得られた中間コードを実行するプログラムであって、
前記プログラム言語の命令セットのサブセットに対応
し、前記第1の記憶手段に格納される第1のインタープ
リターモジュールと、前記命令セットの残りの命令に対
応し、前記第2の記憶手段に格納される第2のインター
プリターモジュールとを含み、前記制御手段は、前記第
1のインタープリターモジュールにより、中間コードか
ら取り出された命令が前記サブセットのいずれに該当す
るかを判断し、該当するものが前記サブセットにある場
合にはそれを実行し、該当するものが前記サブセットに
ない場合には、前記第2のインタープリターモジュール
により、当該命令が残りの命令のいずれに該当するかを
特定して実行することを特徴とする中間コード実行プロ
グラムが提供される。
Further, according to a third aspect of the present invention, at least a first storage means and a control means to which a second storage means, which is slower than the first storage means, is connected, is used to control a predetermined program language. A program that executes the intermediate code obtained by converting the source code created in
A first interpreter module corresponding to a subset of the instruction set of the programming language and stored in the first storage means, and corresponding to the remaining instructions of the instruction set and stored in the second storage means. A second interpreter module according to the present invention, wherein the control means determines, by the first interpreter module, which one of the subsets the instruction fetched from the intermediate code corresponds to, and the corresponding one is the above-mentioned one. If it is in the subset, it is executed, and if it is not in the subset, the second interpreter module identifies and executes which of the remaining instructions the instruction corresponds to. An intermediate code execution program is provided.

【0014】以上のような構成の本発明によれば、所定
のプログラム言語の命令セットのサブセットに対応した
第1のインタープリターモジュールと、命令セットの残
りの命令に対応した第2のインタープリターモジュール
とを用いて、サブセットに含まれる命令は高速な第1の
記憶手段に格納された第1のインタープリターモジュー
ルにより実行し、それ以外の命令は低速な第2のインタ
ープリターモジュールに格納された第2のインタープリ
ターモジュールにより実行するので、サブセットに含ま
れる命令の実行を高速化することができる。本発明にお
いて、サブセットに含まれない命令の実行速度は高速化
されないが、サブセットに含まれる命令の実行を高速化
する効果は顕著であることから、所定の中間コードを実
行する中間コード実行システムのパフォーマンス向上が
可能である。そして、本発明は、特殊なハードウェアを
必要としないので低コストで実装可能であり、かつ、消
費メモリを大幅に増大させることもなく中間コード実行
のパフォーマンスを向上させることができるので、組み
込み機器に好適に適用することができる。
According to the present invention having the above-mentioned configuration, the first interpreter module corresponding to the subset of the instruction set of the predetermined programming language and the second interpreter module corresponding to the remaining instructions of the instruction set. And the instructions included in the subset are executed by the first interpreter module stored in the fast first storage means, and the other instructions are executed by the first interpreter module stored in the slow second interpreter module. Since it is executed by the second interpreter module, it is possible to speed up the execution of the instructions included in the subset. In the present invention, the execution speed of the instructions not included in the subset is not increased, but the effect of increasing the speed of execution of the instructions included in the subset is significant. Therefore, an intermediate code execution system for executing a predetermined intermediate code is provided. Performance can be improved. Since the present invention does not require special hardware, it can be implemented at low cost, and the performance of intermediate code execution can be improved without significantly increasing the memory consumption, so that embedded devices can be implemented. Can be suitably applied to.

【0015】本発明において、前記所定のプログラム言
語はJava(R)言語、前記中間コードはJava
(R)バイトコード命令を含むクラスファイル、前記命
令はJava(R)バイトコード命令とすることができ
る。
In the present invention, the predetermined programming language is Java (R) language and the intermediate code is Java.
A class file containing (R) bytecode instructions, said instructions may be Java (R) bytecode instructions.

【0016】また、前記サブセットは、中間コードに含
まれる命令のうち所定の頻度以上で含まれる命令を選択
した集合とし、本発明が適用される環境に応じて予め設
定されていることが好ましい。これにより、環境に応じ
て設定された高頻度の命令を第1のインタープリターモ
ジュールで高速に実行することができるので、中間コー
ドを実行する際のパフォーマンスを一層向上することが
可能である。
Further, it is preferable that the subset is a set in which instructions included in the intermediate code at a predetermined frequency or more are selected, and is preset in accordance with an environment to which the present invention is applied. As a result, the high-frequency instructions set according to the environment can be executed at high speed by the first interpreter module, so that it is possible to further improve the performance when executing the intermediate code.

【0017】[0017]

【発明の実施の形態】以下、図面を参照して、本発明の
実施の形態について説明する。 [第1実施形態]まず、図1から3に基づいて、本発明
の第1実施形態を説明する。図1は本発明の第1実施形
態に係る中間コード実行システムのハードウェア構成を
概略的に示す図面であり、図2は本発明の第1実施形態
に係る中間コード実行システムの機能ブロック図であ
る。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings. [First Embodiment] First, a first embodiment of the present invention will be described with reference to FIGS. FIG. 1 is a diagram schematically showing a hardware configuration of an intermediate code execution system according to the first embodiment of the present invention, and FIG. 2 is a functional block diagram of the intermediate code execution system according to the first embodiment of the present invention. is there.

【0018】図1に示したように、中間コード実行シス
テムのハードウェア構成は、プロセッサ(プロセッサコ
ア)2および高速メモリ3を有し、処理装置をなすチッ
プ1と、RAM7およびROM8を有する記憶部6とを
備えている。これらの他、入力装置、表示装置、外部イ
ンターフェイス等を備えてもよいが、これらは本発明の
構成および作用効果と直接的な関係を有していないの
で、ここでは省略する。
As shown in FIG. 1, the hardware configuration of the intermediate code execution system has a processor (processor core) 2 and a high speed memory 3, a chip 1 forming a processing unit, and a storage section having a RAM 7 and a ROM 8. 6 and. In addition to these, an input device, a display device, an external interface, and the like may be provided, but these do not have a direct relationship with the configuration and the operational effects of the present invention, and are therefore omitted here.

【0019】なお、請求項に記載の要素と図2に示した
構成とを対比すると、請求項に記載の制御手段とは上記
プロセッサ2に相当し、第1の記憶手段とは上記高速メ
モリ3に相当し、第2の記憶手段とは上記記憶部6に相
当する。
When the elements described in the claims are compared with the configuration shown in FIG. 2, the control means described in the claims corresponds to the processor 2 and the first storage means corresponds to the high speed memory 3. And the second storage means corresponds to the storage unit 6.

【0020】ここで、プロセッサ2と記憶部6とは外部
バス5を介して接続されているのに対して、プロセッサ
2と高速メモリ3とは外部バス4よりもバス幅が広く高
速な内部バス4を介して接続されており、高速メモリ3
は記憶装置5よりもプロセッサ2に高速でデータ転送す
ることが可能となっている。このような高速メモリ3は
揮発性メモリで構成されているが、記憶部6をなすRO
MやRAMに比べてコストが高いため通常は小容量が実
装される。高速メモリ3としては、内蔵メモリやキャッ
シュメモリを用いることができるが、本実施形態では、
一例として内蔵メモリを用いる場合を示している。
Here, while the processor 2 and the storage unit 6 are connected via the external bus 5, the processor 2 and the high-speed memory 3 have a bus width wider than the external bus 4 and a high-speed internal bus. Connected via 4 and high speed memory 3
Can transfer data to the processor 2 faster than the storage device 5. Although such a high-speed memory 3 is composed of a volatile memory, the RO forming the storage unit 6
Since the cost is higher than that of M or RAM, a small capacity is usually mounted. Although a built-in memory or a cache memory can be used as the high-speed memory 3, in the present embodiment,
As an example, a case where a built-in memory is used is shown.

【0021】以上のようなハードウェア構成において、
記憶部6に格納された種々のソフトウェアをプロセッサ
2で実行することにより、図2に示したような機能ブロ
ック図をなす中間コード実行システム10が実現され
る。
In the hardware configuration as described above,
By executing various software stored in the storage unit 6 by the processor 2, the intermediate code execution system 10 having a functional block diagram as shown in FIG. 2 is realized.

【0022】この中間コード実行システム10は、プラ
ットフォームに依存しない中間コードを実行するもので
あり、第1実施形態ではJava(R)言語で作成され
たソースコードをコンパイルして得られたクラスファイ
ルを実行する場合について示す。
The intermediate code execution system 10 executes platform-independent intermediate code. In the first embodiment, a class file obtained by compiling a source code created in Java (R) language is created. The case when executing is shown.

【0023】以下、各機能ブロックについて説明する。
この中間コード実行システム10は、処理命令取得部1
3、第1の処理命令実行部15、第2の処理命令実行部
17とを具備している。命令取得部13は、クラスファ
イルから次に実行する命令コードを逐次的に取り出すも
のであり、当該命令取得部13により取り出された命令
コードは第1の処理命令実行部15に渡される。
Each functional block will be described below.
The intermediate code execution system 10 includes a processing instruction acquisition unit 1
3, a first processing instruction executing section 15 and a second processing instruction executing section 17 are provided. The instruction acquisition unit 13 sequentially extracts the instruction code to be executed next from the class file, and the instruction code extracted by the instruction acquisition unit 13 is passed to the first processing instruction execution unit 15.

【0024】第1の処理命令実行部15は、選択命令判
断部14と処理モジュールと11とを備えており、Ja
va(R)言語の命令体系に含まれる全バイトコード命
令から選択されたバイトコード命令のサブセットについ
て、逐次的に解釈して実行する機能を有している。より
具体的には、選択命令判断部14において、処理命令取
得部13により取り出された命令コードと、前述のサブ
セットに含まれるバイトコード命令のそれぞれとを比較
し、同一であった場合には当該バイトコード命令に対応
した処理モジュール11を実行する。
The first processing instruction executing section 15 is provided with a selection instruction determining section 14, a processing module and 11, and has a Ja
It has a function of sequentially interpreting and executing a subset of bytecode instructions selected from all bytecode instructions included in the va (R) language instruction system. More specifically, the selection instruction determination unit 14 compares the instruction code extracted by the processing instruction acquisition unit 13 with each of the bytecode instructions included in the above-mentioned subset, and if they are the same, The processing module 11 corresponding to the bytecode instruction is executed.

【0025】処理モジュール11は、前述のサブセット
に含まれる個々のバイトコード命令に対応して設けら
れ、各バイトコード命令の定義内容に応じた処理をプロ
セッサ2に実行させるソフトウェアプログラムである。
サブセットに含まれるバイトコード命令に同一のものが
なかった場合には、取り出された命令コードは第2の処
理命令実行部17に渡される。
The processing module 11 is a software program which is provided corresponding to each bytecode instruction included in the above-mentioned subset and causes the processor 2 to execute the processing according to the definition content of each bytecode instruction.
When there is no identical bytecode instruction included in the subset, the fetched instruction code is passed to the second processing instruction execution unit 17.

【0026】第2の処理命令実行部17は、非選択命令
特定部16と処理モジュールと12とを備えており、前
述のサブセットに含まれないバイトコード命令について
逐次的に解釈して実行する機能を有している。より具体
的には、非選択命令特定部16において、取り出された
命令コードと、前述のサブセットに含まれないバイトコ
ード命令のそれぞれとを比較し、同一であった場合には
当該バイトコード命令に対応した処理モジュール12を
実行する。
The second processing instruction executing section 17 includes a non-selection instruction specifying section 16 and a processing module 12, and has a function of sequentially interpreting and executing bytecode instructions not included in the above-mentioned subset. have. More specifically, in the non-selected instruction specifying unit 16, the fetched instruction code is compared with each of the bytecode instructions not included in the above-mentioned subset, and if they are the same, the bytecode instruction is determined to be the same. The corresponding processing module 12 is executed.

【0027】以上のような第1の処理命令実行部15お
よび第2の処理命令実行部17の組み合わせにより、取
り出された命令コードに対応した処理モジュール11ま
たは12において所定の処理が実行される。
By the combination of the first processing instruction executing section 15 and the second processing instruction executing section 17 as described above, a predetermined processing is executed in the processing module 11 or 12 corresponding to the fetched instruction code.

【0028】以上説明したように、第1実施形態では、
バイトコード命令を第1の処理命令実行部15で実行さ
れるものと、第2の処理命令実行部17で実行されるも
のとに2分割する。ここで、Java(R)言語におけ
るバイトコード命令は、粒度が小さい四則演算系命令
(iadd,isub,imul,idiv,・・・)やビット演算系命令
(ior,iand,ishl,・・・)、粒度が中程度のメモリ操作
系命令(iload,istore,iaload,・・・)、粒度が大きく
Java(R)に特異な命令(new,invokespecial,・・
・)に大別することができる。そして、クラスファイル
中に出現する頻度は、粒度が小さい命令では高く、粒度
が大きい命令では低いという傾向を一般的に持ってい
る。
As described above, in the first embodiment,
The bytecode instruction is divided into two, one that is executed by the first processing instruction execution unit 15 and one that is executed by the second processing instruction execution unit 17. Here, the byte code instructions in the Java (R) language are four arithmetic operation instructions (iadd, isub, imul, idiv, ...) And bit operation instruction (ior, iand, ishl, ...) With small granularity. , Memory manipulation instructions with medium granularity (iload, istore, iaload, ...), and instructions specific to Java (R) with large granularity (new, invokespecial, ...
・) The frequency of appearance in the class file generally has a tendency that it is high for instructions with small granularity and low for instructions with large granularity.

【0029】そこで、第1実施形態では、予め全バイト
コード命令のうち粒度が小さく出現頻度の高いものを選
択しておき、当該選択されたバイトコード命令について
は第1の処理命令実行部15で実行し、残りのバイトコ
ード命令を第2の処理命令実行部17で実行する構成と
する。すなわち、第1の処理命令実行部15は、前記選
択されたバイトコード命令のそれぞれに対応した処理モ
ジュール11を有している。そして、選択命令判断部1
4は、与えられた命令コードのオペコードと選択された
バイトコード命令のオペコードとを一つずつ比較し、同
一だった場合に対応する処理モジュール11を実行す
る。また、第2の処理命令実行部17は、残りのバイト
コード命令のそれぞれに対応した処理モジュール12を
有している。そして、非選択命令特定部16は、与えら
れた命令コードのオペコードと残りのバイトコード命令
のオペコードを一つずつ比較し、同一だった場合に対応
する処理モジュール12を実行する。
In view of this, in the first embodiment, an instruction with a small granularity and a high appearance frequency is selected in advance from all bytecode instructions, and the selected processing instruction bytecode instruction is executed by the first processing instruction executing section 15. The second processing instruction executing unit 17 executes the remaining bytecode instructions and executes the remaining bytecode instructions. That is, the first processing instruction execution unit 15 has the processing module 11 corresponding to each of the selected bytecode instructions. Then, the selection command determination unit 1
4 compares the operation code of the given instruction code with the operation code of the selected bytecode instruction one by one, and when they are the same, executes the corresponding processing module 11. In addition, the second processing instruction execution unit 17 has a processing module 12 corresponding to each of the remaining bytecode instructions. Then, the non-selected instruction specifying unit 16 compares the operation code of the given instruction code with the operation codes of the remaining bytecode instructions one by one, and if they are the same, executes the corresponding processing module 12.

【0030】ただし、バイトコード命令のうちいずれが
高頻度であるかは、中間コード実行システム10が搭載
される環境に左右され得る。例えば、携帯電話に搭載し
た場合と、カーナビゲーションシステムに搭載した場合
と、PDAに搭載した場合とでは、いずれも使用目的や
使用状況が異なるので、ある環境では高頻度であった命
令が他のシステムで高頻度になるとは限らない。
However, which of the bytecode instructions has a high frequency may depend on the environment in which the intermediate code execution system 10 is installed. For example, since the purpose of use and the situation of use are different depending on whether it is installed in a mobile phone, a car navigation system, or a PDA, commands that are frequently used in one environment may be different from those in another. The system does not always have a high frequency.

【0031】従って、中間コード実行システム10が搭
載される環境に応じてバイトコード命令の出現頻度を調
査し、その調査結果に基づいて第1の処理命令実行部1
5で実行するバイトコード命令を選択することがより好
ましい。
Therefore, the appearance frequency of bytecode instructions is investigated according to the environment in which the intermediate code execution system 10 is installed, and the first processing instruction execution section 1 is based on the examination result.
More preferably, the bytecode instructions to be executed at 5 are selected.

【0032】さらに、第1実施形態では、以上のように
構成された第1の処理命令実行部15をなすソフトウェ
アプログラム(第1のインタープリターモジュール)が
高速メモリ3に格納された状態でクラスファイルを実行
する。例えば、中間コード実行システム10が、クラス
ファイルの実行前に記憶部6から高速メモリ3に第1の
処理命令実行部15をなすソフトウェアプログラムのコ
ードをコピーするようにしてもよい。このように第1の
処理命令実行部15をなすソフトウェアプログラムを高
速メモリ3に格納するためには、第1の処理命令実行部
15で実行するバイトコード命令の数を調節して、第1
の処理命令実行部15をなすソフトウェアプログラムが
高速メモリ3に格納可能なサイズとなるようにしておく
ことが好適である。
Further, in the first embodiment, the class file is stored with the software program (first interpreter module) forming the first processing instruction execution unit 15 configured as described above stored in the high speed memory 3. To execute. For example, the intermediate code execution system 10 may copy the code of the software program forming the first processing instruction execution unit 15 from the storage unit 6 to the high-speed memory 3 before executing the class file. As described above, in order to store the software program forming the first processing instruction executing unit 15 in the high speed memory 3, the number of bytecode instructions to be executed by the first processing instruction executing unit 15 is adjusted to make the first processing instruction executing unit 15.
It is preferable that the software program forming the processing instruction execution unit 15 has a size that can be stored in the high-speed memory 3.

【0033】これに対して、第2の処理命令実行部17
をなすソフトウェアプログラムのコード(第2のインタ
ープリターモジュール)は、記憶部6に格納された状態
のままでよい。
On the other hand, the second processing instruction executing section 17
The code of the software program (second interpreter module) forming the above may remain stored in the storage unit 6.

【0034】次に、図3を参照して、第1実施形態にか
かる中間コード実行システム10の動作を説明する。こ
の動作は、記憶部6に格納された一連のソフトウェアプ
ログラムをプロセッサ2上で順次実行することにより構
成されるものである。
Next, the operation of the intermediate code execution system 10 according to the first embodiment will be described with reference to FIG. This operation is configured by sequentially executing a series of software programs stored in the storage unit 6 on the processor 2.

【0035】例えば、中間コード実行システム10は、
不図示の情報入側からJava(R)アプリケーション
のクラスファイルを受け付け、受け付けたクラスファイ
ルを記憶部6のRAM7に格納する(S1)。次に中間
コード実行システム10は、以下に示す一連の動作によ
りクラスファイルを実行する。この際、第1の処理命令
実行部15をなすソフトウェアプログラム(第1のイン
タープリターモジュール)は、予め高速メモリ3に格納
された状態としておく。以下の動作は、第1実施形態に
おける中間コード実行方法にも相当する。
For example, the intermediate code execution system 10 is
A Java (R) application class file is received from an information input side (not shown), and the received class file is stored in the RAM 7 of the storage unit 6 (S1). Next, the intermediate code execution system 10 executes the class file by the following series of operations. At this time, the software program (first interpreter module) forming the first processing instruction execution unit 15 is stored in the high-speed memory 3 in advance. The following operation also corresponds to the intermediate code execution method in the first embodiment.

【0036】まず、プロセッサ2で所定のソフトウェア
プログラムを実行することにより処理命令取得部13が
構成され、クラスファイルから命令コードが一つ取り出
される(S2)。続いて、高速メモリ3に格納された第
1の処理命令実行部15をなすソフトウェアプログラム
(第1のインタープリターモジュール)が実行され、S
2で取り出された命令コードが選択されたバイトコード
命令のいずれかに特定可能か判断され(S3)、可能な
場合には当該命令コードに対応した処理モジュール11
が実行される(S4)。ここでの処理は、より具体的に
は、第1の処理命令実行部15の選択命令判断部14に
おいて取り出された命令コードのオペコードと選択され
たバイトコード命令のオペコードとを一つずつ比較し、
同一だった場合に対応する処理モジュール11を実行す
るものである。
First, the processor 2 executes a predetermined software program to configure the processing instruction acquisition unit 13, and one instruction code is extracted from the class file (S2). Then, the software program (first interpreter module) forming the first processing instruction execution unit 15 stored in the high-speed memory 3 is executed, and S
It is determined whether the instruction code fetched in 2 can be specified as one of the selected bytecode instructions (S3), and if possible, the processing module 11 corresponding to the instruction code.
Is executed (S4). More specifically, the processing here is to compare the operation code of the instruction code fetched by the selection instruction determination unit 14 of the first processing instruction execution unit 15 with the operation code of the selected bytecode instruction one by one. ,
When they are the same, the corresponding processing module 11 is executed.

【0037】上記S3において可能と判断されなかった
場合、つまり、選択命令判断部14において取り出され
た命令コードのオペコードが選択されたバイトコード命
令のオペコードのいずれとも同一と判断されなかった場
合には、第2の処理命令実行部17をなすソフトウェア
プログラム(第2のインタープリターモジュール)が実
行され、命令コードが残りのバイトコード命令のいずれ
であるかを特定し(S5)、特定された命令コードに対
応した処理モジュール12を実行する(S6)。
When it is not determined that the operation is possible in S3, that is, when the operation code of the instruction code fetched by the selection instruction determination unit 14 is not determined to be the same as any of the operation codes of the selected bytecode instructions. , The software program (second interpreter module) forming the second processing instruction execution unit 17 is executed, and the instruction code is identified as one of the remaining bytecode instructions (S5), and the identified instruction code is specified. The processing module 12 corresponding to is executed (S6).

【0038】このS6での処理は、より具体的には、第
2の処理命令実行部17の非選択命令特定部16におい
て与えられた命令コードのオペコードと残りのバイトコ
ード命令のオペコードを一つずつ比較し、同一だった場
合に対応する処理モジュール12を実行するものであ
る。
More specifically, the processing in S6 is performed by combining the operation code of the instruction code given by the non-selected instruction specifying unit 16 of the second processing instruction execution unit 17 with the operation code of the remaining byte code instruction. They are compared one by one, and if they are the same, the corresponding processing module 12 is executed.

【0039】以下、クラスファイルに含まれる次の命令
コードについて上記と同様の手順を行い、これを繰り返
すことによりクラスファイルは実行される。
Thereafter, the same procedure as described above is performed for the next instruction code contained in the class file, and the class file is executed by repeating this procedure.

【0040】以上のような動作によれば、全バイトコー
ド命令のうち選択されたバイトコード命令についてはL
1で示した内側ループ(inner loup)をなす処理により
実行され、残りのバイトコード命令についてはL2で示
した外側ループ(outer loup)をなす処理により実行さ
れる。
According to the above operation, the selected bytecode instruction of all bytecode instructions is L
It is executed by the process forming the inner loop (inner loup) indicated by 1 and the remaining bytecode instructions are executed by the process forming the outer loop (outer loup) indicated by L2.

【0041】以上説明したように、第1実施形態では、
予め全バイトコード命令のうち粒度が小さく出現頻度が
高いものを選択し、まず選択されたバイトコード命令に
対応した第1の処理命令実行部15において命令コード
の解釈および実行を行い、実行できなかった命令コード
を第2の処理命令実行部17で解釈および実行する構成
としたので、出現頻度の高いバイトコード命令について
の解釈および実行を優先的に行うことができる。さら
に、第1の処理命令実行部15をなすソフトウェアプロ
グラム(第1のインタープリターモジュール)は高速メ
モリ3に格納されているので、第1の処理命令実行部1
5は出現頻度の高いバイトコード命令についての解釈お
よび実行を高速で行うことができる。
As described above, in the first embodiment,
A bytecode instruction having a small granularity and a high appearance frequency is selected in advance from all bytecode instructions, and the first processing instruction execution unit 15 corresponding to the selected bytecode instruction interprets and executes the instruction code and cannot be executed. The second processing instruction executing unit 17 is configured to interpret and execute the generated instruction code. Therefore, it is possible to preferentially perform the interpretation and the execution of the bytecode instruction having a high appearance frequency. Furthermore, since the software program (first interpreter module) forming the first processing instruction execution unit 15 is stored in the high-speed memory 3, the first processing instruction execution unit 1
5 can interpret and execute a bytecode instruction having a high appearance frequency at high speed.

【0042】したがって、第1実施形態によれば、出現
頻度が高いバイトコード命令の実行を優先的かつ高速に
行うことができる。一方、出現頻度の低いバイトコード
命令については第2の処理命令実行部17により解釈お
よび実行されるので、バイトコード命令の実行を高速化
することはできない。しかし、第1の処理命令実行部1
5により出現頻度が高いバイトコード命令を優先的に高
速で実行することによる効果は極めて高く、クラスファ
イルを実行する処理全体でとらえると、中間コード実行
システム10のパフォーマンスは向上する。
Therefore, according to the first embodiment, it is possible to preferentially and rapidly execute a bytecode instruction that frequently appears. On the other hand, since the second processing instruction executing unit 17 interprets and executes a bytecode instruction having a low appearance frequency, it is not possible to speed up the execution of the bytecode instruction. However, the first processing instruction execution unit 1
5, the effect of preferentially executing a bytecode instruction having a high appearance frequency at a high speed is extremely high, and the performance of the intermediate code execution system 10 is improved when the whole process of executing a class file is considered.

【0043】また、第1実施形態においては、第1の処
理命令実行部15をなすソフトウェアプログラム(第1
のインタープリターモジュール)を、選択された命令コ
ードの実行に最適化した構造としてもよく、このように
した場合には中間コード実行システム10のパフォーマ
ンスをさらに向上することが可能である。
Further, in the first embodiment, the software program forming the first processing instruction execution section 15 (first
The interpreter module of 1) may have a structure optimized for execution of the selected instruction code, and in such a case, the performance of the intermediate code execution system 10 can be further improved.

【0044】例えば、第1の処理命令実行部15をなす
ソフトウェアプログラム(第1のインタープリターモジ
ュール)および第2の処理命令実行部17をなすソフト
ウェアプログラム(第2のインタープリターモジュー
ル)は、いずれもCやC++といった高級言語で作成す
るようにしてもよいが、このうち特に前者をアセンブリ
言語で最適化した構造に作り込むことにより中間コード
実行システム10のパフォーマンスを一層向上させるこ
とができる。
For example, both the software program (first interpreter module) forming the first processing instruction execution unit 15 and the software program (second interpreter module) forming the second processing instruction execution unit 17 are both. Although it may be created in a high-level language such as C or C ++, the performance of the intermediate code execution system 10 can be further improved by incorporating the former into a structure optimized in assembly language.

【0045】さらに、選択命令判断部14において、取
り出された命令コードのオペコードと、選択されたバイ
トコード命令のオペコードとを比較して同一か否かを判
断するにあたり、頻度がより高いバイトコード命令から
順に比較することが一層好ましい。これは、非選択命令
特定部16においても同様である。
Further, in the selected instruction judging unit 14, in comparing the opcode of the fetched instruction code with the opcode of the selected bytecode instruction to judge whether they are the same or not, the bytecode instruction having a higher frequency is used. It is more preferable to compare in order from. The same applies to the non-selected instruction specifying unit 16.

【0046】ここで、第1実施形態を、中間コードを実
行するためのコンピュータプログラムプロダクトという
観点からとられると、以下のようになる。すなわち、少
なくとも高速メモリ3および高速メモリ3に比して低速
な記憶部6が接続されたプロセッサ2により、Java
(R)言語で作成されたソースコードを変換して得られ
たクラスファイルを実行するプログラムであって、Ja
va(R)言語の命令セットのサブセットに対応し、高
速メモリ3に格納される第1のインタープリターモジュ
ールと、前記命令セットの残りの命令に対応し、記憶部
6に格納される第2のインタープリターモジュールとを
含み、プロセッサ2は、第1のインタープリターモジュ
ールにより、クラスファイルから取り出された命令が前
記サブセットのいずれに該当するかを判断し、該当する
ものが前記サブセットにある場合にはそれを実行し、該
当するものが前記サブセットにない場合には、第2のイ
ンタープリターモジュールにより、その命令が残りの命
令のいずれに該当するかを特定して実行する中間コード
実行プログラムである。
Here, the first embodiment is as follows from the viewpoint of a computer program product for executing the intermediate code. That is, at least the high-speed memory 3 and the processor 2 to which the low-speed storage unit 6 is connected as compared to the high-speed memory 3,
A program for executing a class file obtained by converting a source code created in the (R) language, which is Ja
A first interpreter module corresponding to a subset of the va (R) language instruction set and stored in the high speed memory 3, and a second interpreter module corresponding to the remaining instructions of the instruction set and stored in the storage unit 6. An interpreter module is included, and the processor 2 determines, by the first interpreter module, which one of the subsets the instruction fetched from the class file corresponds to. It is an intermediate code execution program that executes it, and if the corresponding one does not exist in the subset, the second interpreter module identifies and executes which of the remaining instructions the instruction corresponds to.

【0047】[第2実施形態]次に、図4および図5に
基づいて、本発明の第2実施形態を説明する。図4は、
本発明の第2実施形態の中間コード実行システム20の
機能ブロック図である。図4において、上記第1実施形
態と同一の構成部分については、同一の符号を付してい
る。第2実施形態に係る中間コード実行システム20
は、その基本構成は上記第1実施形態と同様であるが、
上記第1実施形態における第1の処理命令実行部15に
替えて、第1の選択命令実行部24および第2の選択命
令実行部26を有している点で相違する。以下、この相
違点を中心に説明する。
[Second Embodiment] Next, a second embodiment of the present invention will be described with reference to FIGS. Figure 4
It is a functional block diagram of intermediate code execution system 20 of a 2nd embodiment of the present invention. In FIG. 4, the same components as those in the first embodiment are designated by the same reference numerals. Intermediate code execution system 20 according to the second embodiment
Has the same basic configuration as that of the first embodiment,
The difference is that the first processing instruction execution unit 15 in the first embodiment is replaced with a first selection instruction execution unit 24 and a second selection instruction execution unit 26. Hereinafter, this difference will be mainly described.

【0048】第1の選択命令実行部24は、第1の選択
命令判断部23と処理モジュールと21とを備え、全バ
イトコード命令から選択されたバイトコード命令の第1
のサブセットについて、逐次的に解釈して実行する機能
を有している。
The first selection instruction execution unit 24 includes a first selection instruction determination unit 23 and a processing module 21, and is a first bytecode instruction selected from all bytecode instructions.
Has a function of sequentially interpreting and executing a subset of.

【0049】第2の選択命令実行部26は、第2の選択
命令判断部25と処理モジュールと22とを備えてお
り、上記第1のサブセットを除いた残りのバイトコード
命令から選択されたバイトコード命令の第2のサブセッ
トについて、逐次的に解釈して実行する機能を有してい
る。
The second select instruction executing section 26 includes a second select instruction determining section 25 and a processing module 22. Bytes selected from the remaining bytecode instructions excluding the first subset. It has a function of sequentially interpreting and executing the second subset of code instructions.

【0050】処理モジュール21は第1のサブセットに
属する各バイトコード命令の定義内容に応じた処理をプ
ロセッサ2に実行させるソフトウェアプログラムであ
り、処理モジュール22は第2のサブセットに属する各
バイトコード命令の定義内容に応じた処理をプロセッサ
2に実行させるソフトウェアプログラムである。
The processing module 21 is a software program that causes the processor 2 to execute the processing according to the definition content of each bytecode instruction belonging to the first subset, and the processing module 22 of each bytecode instruction belonging to the second subset. It is a software program that causes the processor 2 to execute processing according to the definition content.

【0051】また、第1の選択命令実行部24および第
2の選択命令実行部26の具体的な機能は、第1実施形
態における処理命令実行部15と略同様にして、取り出
された命令コードが第1のサブセット若しくは第2のサ
ブセットに属するバイトコード命令のいずれかと同一で
ある場合に、当該バイトコード命令を実行するものであ
る。
The specific functions of the first selection instruction executing section 24 and the second selection instruction executing section 26 are substantially the same as those of the processing instruction executing section 15 in the first embodiment, and the fetched instruction code. Is the same as one of the bytecode instructions belonging to the first subset or the second subset, the bytecode instruction is executed.

【0052】ここで、第1のサブセットにはクラスファ
イル中に出現する頻度が最も高い水準のバイトコード命
令が含まれており、第2のサブセットにはクラスファイ
ル中に出現する頻度が次に高い水準のバイトコード命令
が含まれている。
Here, the first subset contains the bytecode instructions with the highest frequency of occurrence in the class file, and the second subset has the second highest frequency of occurrence in the class file. Contains level bytecode instructions.

【0053】そして、第2実施形態では、第1の選択命
令実行部24をなすソフトウェアプログラムのコードを
高速メモリ3に格納する。第2の選択命令実行部26を
なすソフトウェアプログラムのコードについては、空き
容量に余裕がある場合には高速メモリ3に格納すること
が好ましいが、高速メモリ3に空き容量が不足している
場合には記憶部6に格納しても構わない。
In the second embodiment, the code of the software program forming the first selection instruction execution unit 24 is stored in the high speed memory 3. The code of the software program forming the second selection instruction execution unit 26 is preferably stored in the high-speed memory 3 when there is a free space, but when the free space is insufficient in the high-speed memory 3. May be stored in the storage unit 6.

【0054】次に、図5を参照して、中間コード実行シ
ステム20の動作を説明する。まず、第1実施形態と同
様に、中間コード実行システム10は、不図示の情報入
側からJava(R)アプリケーションのクラスファイ
ルを受け付け、受け付けたクラスファイルを記憶部6の
RAM7に格納し(S11)、第1の選択命令実行部2
4をなすソフトウェアプログラムを高速メモリ3に格納
した状態で、以下の手順によりクラスファイルを実行す
る。
Next, the operation of the intermediate code execution system 20 will be described with reference to FIG. First, as in the first embodiment, the intermediate code execution system 10 accepts a Java (R) application class file from an information input side (not shown), and stores the accepted class file in the RAM 7 of the storage unit 6 (S11). ), The first selection instruction execution unit 2
The class file is executed according to the following procedure with the software program forming the item 4 stored in the high-speed memory 3.

【0055】即ち、まず第1実施形態と同様にクラスフ
ァイルから命令コードが一つ取り出される(S12)。
続いて、高速メモリ3に格納された第1の選択命令実行
部24をなすソフトウェアプログラムが実行され、取り
出された命令コードが第1のサブセットのいずれかのバ
イトコード命令に特定可能か判断され(S13)、可能
な場合には当該命令コードに対応した処理モジュール2
1が実行される(S14)。S13において可能と判断
されなかった場合には、第2の選択命令実行部17をな
すソフトウェアプログラムが実行され、命令コードが第
2のサブセットのいずれかのバイトコード命令に特定可
能か判断され(S15)、可能な場合には当該命令コー
ドに対応した処理モジュール22が実行される(S1
6)。
That is, first, one instruction code is taken out from the class file as in the first embodiment (S12).
Subsequently, the software program forming the first selection instruction execution unit 24 stored in the high-speed memory 3 is executed, and it is determined whether the fetched instruction code can be specified as any bytecode instruction of the first subset ( S13), if possible, the processing module 2 corresponding to the instruction code
1 is executed (S14). If not determined in S13, the software program forming the second selection instruction execution unit 17 is executed, and it is determined whether the instruction code can be specified as any bytecode instruction of the second subset (S15). ), If possible, the processing module 22 corresponding to the instruction code is executed (S1).
6).

【0056】さらに、上記S15においても可能と判断
されなかった場合には、第2の処理命令実行部17をな
すソフトウェアプログラムが実行され、命令コードが残
りのバイトコード命令のいずれであるかを特定し(S1
7)、特定された命令コードに対応した処理モジュール
12を実行する(S18)。
Further, if it is not determined in S15 that it is possible, the software program forming the second processing instruction executing section 17 is executed to identify which of the remaining bytecode instructions is the instruction code. (S1
7) Then, the processing module 12 corresponding to the specified instruction code is executed (S18).

【0057】以下、クラスファイルに含まれる次の命令
コードについて上記と同様の手順を行い、これを繰り返
すことによりクラスファイルは実行される。
Thereafter, the same procedure as described above is performed for the next instruction code contained in the class file, and the class file is executed by repeating this procedure.

【0058】以上のような動作でクラスファイルを実行
する第2実施形態によれば、クラスファイル中に出現す
る頻度が最も高い水準のバイトコード命令の実行を第1
実施形態と同様に優先的かつ高速に行うことができ、さ
らにクラスファイル中に出現する頻度が次に高い水準の
バイトコード命令について残りのバイトコード命令より
も優先して実行することができる。
According to the second embodiment in which the class file is executed by the above operation, the first execution of the bytecode instruction having the highest frequency of appearance in the class file is executed.
As in the embodiment, it can be executed preferentially and at high speed, and the bytecode instruction having the next highest frequency in the class file can be executed with priority over the remaining bytecode instructions.

【0059】また、上記の動作では、予め第1の選択命
令実行部24をなすソフトウェアプログラムのコードを
高速メモリ3に格納することとしているが、クラスファ
イルの実行時に高速メモリ3の空き容量を検出し、空き
容量に余裕がある場合には第2の選択命令実行部26を
なすソフトウェアプログラムのコードも高速メモリ3に
格納するようにしてもよい。
In the above operation, the code of the software program forming the first selection instruction executing section 24 is stored in the high speed memory 3 in advance. However, the free space of the high speed memory 3 is detected when the class file is executed. However, when there is a free space, the code of the software program forming the second selection instruction execution unit 26 may be stored in the high speed memory 3.

【0060】以上、本発明の第1および第2実施形態に
係る中間コード実行システムについて説明したが、本発
明はこれらに限定されることなく、その趣旨を逸脱しな
い範囲で種々の改良・変更が可能であることは勿論であ
る。例えば、上記の実施形態では、高速メモリ3として
内蔵メモリを使用した場合を示したがこれに限られるも
のではなく、高速メモリ3はキャッシュメモリであって
もよい。また、本発明は、図1に示したハードウェア構
成の例に限らず、相対的に高速なメモリと相対的に低速
なメモリとが混在したハードウェア構成であれば、いず
れにおいても適用することが可能である。チップ1は例
えばMPU、CPU単体でもよいし、さらに周辺I/O
やバスインターフェイス等を含むマイクロコントローラ
としてもよく、特定目的のために特化したASICや、
システムの主要機能を搭載したSoCとしても構わな
い。また、プロセッサ2を複数含む形態としてもよい。
Although the intermediate code execution systems according to the first and second embodiments of the present invention have been described above, the present invention is not limited to these, and various improvements and changes can be made without departing from the spirit of the invention. Of course, it is possible. For example, in the above embodiment, the case where the built-in memory is used as the high speed memory 3 has been shown, but the present invention is not limited to this, and the high speed memory 3 may be a cache memory. Further, the present invention is not limited to the example of the hardware configuration shown in FIG. 1 and may be applied to any hardware configuration in which a relatively high speed memory and a relatively low speed memory are mixed. Is possible. The chip 1 may be, for example, an MPU or CPU alone, and further peripheral I / O
It may be a microcontroller including a bus interface, a ASIC specialized for a specific purpose,
It may be an SoC equipped with the main functions of the system. Further, it may be configured to include a plurality of processors 2.

【0061】第1実施形態において高速メモリ3として
キャッシュメモリを用いる場合には、第1のインタープ
リターモジュールのコードは記憶部6に格納されたまま
でクラスファイルの実行を開始してもよい。このように
した場合も、当該コードが所定のキャッシュ管理機構に
より高速メモリ3であるキャッシュメモリ内に格納され
た状態となれば、上記実施形態と同様に中間コード実行
システム10のパフォーマンスを向上することができ
る。第2実施形態においてキャッシュメモリを用いる場
合も同様である。
When a cache memory is used as the high speed memory 3 in the first embodiment, the code of the first interpreter module may be stored in the storage unit 6 and the execution of the class file may be started. Even in this case, if the code is stored in the cache memory which is the high-speed memory 3 by the predetermined cache management mechanism, the performance of the intermediate code execution system 10 can be improved as in the above embodiment. You can The same applies when a cache memory is used in the second embodiment.

【0062】ただし、高速メモリ3としてキャッシュメ
モリを使用する場合、キャッシュメモリの中身はキャッ
シュ管理機構により管理され、明示的に操作することは
できない。したがって、この場合には、第1のインター
プリターモジュールのコードがキャッシュ管理機構によ
って効率よくキャッシュされるようにすることが望まし
い。また、第1のインタープリターモジュールのコード
がキャッシュされた状態になっても、キャッシュミスが
生じるとキャッシュ管理機構がキャッシュメモリの一部
を解放して新たな内容を書き込んでしまい、第1のイン
タープリターモジュールのコードが一部失われ、本発明
の作用効果が得られなくなる場合がある。この観点から
は、キャッシュメモリよりも、明示的に操作可能な内蔵
メモリを高速メモリ3として用いることが好ましい。
However, when a cache memory is used as the high speed memory 3, the contents of the cache memory are managed by the cache management mechanism and cannot be explicitly operated. Therefore, in this case, it is desirable that the code of the first interpreter module be efficiently cached by the cache management mechanism. In addition, even if the code of the first interpreter module is cached, if a cache miss occurs, the cache management mechanism releases a part of the cache memory and writes new contents. A part of the code of the printer module may be lost, and the effect of the present invention may not be obtained. From this point of view, it is preferable to use an internal memory that can be explicitly operated as the high-speed memory 3 rather than the cache memory.

【0063】また、上記の実施形態ではいずれも中間コ
ードとしてJava(R)のクラスファイルを実行する
場合について示したが、これに限られるものではない。
In each of the above embodiments, the case where the Java (R) class file is executed as the intermediate code has been described, but the present invention is not limited to this.

【0064】さらに、中間コード実行システムをなすソ
フトウェアプログラムは、記憶部6に予め格納しておい
てもよいし、中間コード実行システムの外部から必要に
応じて提供を受けるようにしてもよい。このとき、中間
コード実行システムの外部から提供を受ける形態は、ネ
ットワークを介したサーバからのダウンロードに限られ
るものではなく、CD−ROMや可搬性メモリなどの記
憶媒体による提供であってもよい。
Further, the software program forming the intermediate code execution system may be stored in the storage unit 6 in advance, or may be provided from outside the intermediate code execution system as needed. At this time, the form to be provided from the outside of the intermediate code execution system is not limited to the download from the server via the network, but may be provided by a storage medium such as a CD-ROM or a portable memory.

【0065】さらにまた、処理モジュールについて、少
なくともその一部をハードウェアロジックとする構成を
採用することで、パフォーマンスのさらなる向上を図る
ことも可能である。例えば、上記第1実施形態における
第1の処理命令実行部15の処理モジュール11をハー
ドウェアロジックとすれば、高頻度のバイトコード命令
についての実行をさらに高速化することができる。この
ような場合には、選択するバイトコード命令の数を調節
することにより、ハードウェアロジック化に要するゲー
ト数を許容範囲に収めることができる。
Furthermore, by adopting a configuration in which at least a part of the processing module is hardware logic, it is possible to further improve the performance. For example, if the processing module 11 of the first processing instruction execution unit 15 in the first embodiment is a hardware logic, it is possible to further speed up the execution of high-frequency bytecode instructions. In such a case, by adjusting the number of bytecode instructions to be selected, the number of gates required for hardware logic conversion can be kept within an allowable range.

【0066】[0066]

【発明の効果】本発明によれば、所定のプログラム言語
の命令セットのサブセットに対応した第1のインタープ
リターモジュールと、命令セットの残りの命令に対応し
た第2のインタープリターモジュールとを用いて、サブ
セットに含まれる命令は高速な第1の記憶手段に格納さ
れた第1のインタープリターモジュールにより実行し、
それ以外の命令は低速な第2のインタープリターモジュ
ールに格納された第2のインタープリターモジュールに
より実行するので、サブセットに含まれる命令の実行を
高速化することができる。本発明において、サブセット
に含まれない命令の実行速度は高速化されないが、サブ
セットに含まれる命令の実行を高速化する効果は顕著で
あることから、所定の中間コードを実行する中間コード
実行システムのパフォーマンス向上が可能である。そし
て、本発明は、特殊なハードウェアを必要としないので
低コストで実装可能であり、かつ、消費メモリを大幅に
増大させることもなく中間コード実行のパフォーマンス
を向上させることができるので、組み込み機器に好適に
適用することができる。
According to the present invention, the first interpreter module corresponding to the subset of the instruction set of the predetermined programming language and the second interpreter module corresponding to the remaining instructions of the instruction set are used. , The instructions included in the subset are executed by the first interpreter module stored in the high speed first storage means,
Since the other instructions are executed by the second interpreter module stored in the slower second interpreter module, it is possible to speed up the execution of the instructions included in the subset. In the present invention, the execution speed of the instructions not included in the subset is not increased, but the effect of increasing the speed of execution of the instructions included in the subset is significant. Therefore, an intermediate code execution system for executing a predetermined intermediate code is provided. Performance can be improved. Since the present invention does not require special hardware, it can be implemented at low cost, and the performance of intermediate code execution can be improved without significantly increasing the memory consumption, so that embedded devices can be implemented. Can be suitably applied to.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の第1実施形態に適用可能なハードウェ
ア構成の概念図である。
FIG. 1 is a conceptual diagram of a hardware configuration applicable to a first embodiment of the present invention.

【図2】本発明の第1実施形態に適応可能な中間コード
実行システムの機能ブロック図である。
FIG. 2 is a functional block diagram of an intermediate code execution system applicable to the first embodiment of the present invention.

【図3】本発明の第1実施形態に適用可能な中間コード
実行システムの動作について説明したフローチャートで
ある。
FIG. 3 is a flowchart illustrating an operation of the intermediate code execution system applicable to the first exemplary embodiment of the present invention.

【図4】本発明の第2実施形態に適用可能な中間コード
実行システムの機能ブロック図である。
FIG. 4 is a functional block diagram of an intermediate code execution system applicable to the second embodiment of the present invention.

【図5】本発明の第2実施形態に適用可能な中間コード
実行システムの動作について説明したフローチャートで
ある。
FIG. 5 is a flowchart illustrating an operation of the intermediate code execution system applicable to the second exemplary embodiment of the present invention.

【符号の説明】[Explanation of symbols]

1 チップ 2 プロセッサ 3 高速メモリ 4 内部バス 5 外部バス 6 記憶部 7 RAM 8 ROM 1 chip 2 processors 3 high speed memory 4 internal bus 5 external buses 6 memory 7 RAM 8 ROM

【手続補正書】[Procedure amendment]

【提出日】平成15年4月14日(2003.4.1
4)
[Submission date] April 14, 2003 (2003.4.1)
4)

【手続補正1】[Procedure Amendment 1]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】特許請求の範囲[Name of item to be amended] Claims

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【特許請求の範囲】[Claims]

【手続補正2】[Procedure Amendment 2]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0011[Correction target item name] 0011

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0011】[0011]

【課題を解決するための手段】上記課題を解決するため
に、本発明の第1の観点では、所定のプログラム言語で
作成されたソースコードを変換して得られた中間コード
を実行するシステムであって、第1の記憶手段と、前記
第1の記憶手段に比して低速な第2の記憶手段と、前記
第1の記憶手段に記憶され、前記プログラム言語の命令
セットのサブセットに対応した第1のインタープリター
モジュールと、前記第2の記憶手段に記憶され、前記命
令セットの残りの命令に対応した第2のインタープリタ
ーモジュールと、前記第1のインタープリターモジュー
ルにより、中間コードから取り出された命令が前記サブ
セットのいずれに該当するかを判断し、該当するものが
前記サブセットにある場合にはそれを実行し、一方、該
当するものが前記サブセットにない場合には、前記第2
のインタープリターモジュールにより、当該命令が残り
の命令のいずれに該当するかを特定して実行する制御手
段と、を具備することを特徴とする中間コード実行シス
テムが提供される。本発明の第2の観点では、所定のプ
ログラム言語で作成されたソースコードを変換して得ら
れた中間コードを実行するシステムであって、制御手段
と、前記制御手段に接続された第1の記憶手段と、前記
制御手段に接続され、前記第1の記憶手段に比して低速
な第2の記憶手段と、前記第1の記憶手段に記憶され、
前記制御手段で実行することにより、中間コードから取
り出された命令を前記プログラム言語の命令セットのサ
ブセットに含まれる命令と比較して、前記サブセットに
同一の命令があった場合には当該命令を実行する機能を
実現する第1のインタープリターモジュールと、前記第
2の記憶手段に記憶され、前記制御手段で実行すること
により、前記中間コードから取り出された命令を前記プ
ログラム言語の命令セットのサブセットに含まれない命
令と比較して、同一の命令があった場合には当該命令を
実行する機能を実現する第2のインタープリタモジュー
ルとを具備し、中間コードを実行するにあたり、前記制
御手段で前記第1のインタープリターモジュールを実行
することにより、中間コードから取り出された命令が前
記サブセットのいずれに該当するかを判断し、該当する
ものが前記サブセットにある場合にはそれを実行する処
理を行い、該当するものが前記サブセットにない場合に
は、前記制御手段で前記第2のインタープリターモジュ
ールを実行することにより、当該命令が前記サブセット
に含まれない命令のいずれに該当するかを特定して実行
する処理を行うことを特徴とする中間コード実行システ
ムが提供される。
In order to solve the above problems, according to a first aspect of the present invention, a system for executing an intermediate code obtained by converting a source code created in a predetermined programming language. The first storage means, the second storage means that is slower than the first storage means, and the first storage means are stored and correspond to a subset of the instruction set of the programming language. Extracted from the intermediate code by a first interpreter module, a second interpreter module stored in the second storage means and corresponding to the remaining instructions of the instruction set, and the first interpreter module. That subset of the subsets corresponds to the subset, and if the subset is in the subset, execute it, while If not in the subset, the second
The interpreter module of 1. provides a control means for specifying and executing which one of the remaining instructions the instruction corresponds to, and an intermediate code execution system. In the second aspect of the present invention, the predetermined program is
Obtained by converting the source code created in the programming language
And a control means for executing the generated intermediate code.
A first storage means connected to the control means;
It is connected to the control means and is slower than the first storage means.
A second storage means and the first storage means,
By executing by the control means, the intermediate code
The issued instructions are supported by the instruction set of the programming language.
The instructions contained in the
If there is the same instruction, the function to execute the instruction
A first interpreter module to be realized;
Stored in the second storage means and executed by the control means
The instruction fetched from the intermediate code by
Lives not included in the instruction set subset of the programming language
Compared with the order, if there is the same command,
The second interpreter module that realizes the function to execute
When executing the intermediate code,
The first interpreter module by means of
The instruction fetched from the intermediate code
Determine which of the following subsets apply and apply
If something is in the subset, it executes it
And if there is no match in the subset,
Is the second interpreter module in the control means.
By executing the
And execute any of the instructions not included in
Intermediate code execution system characterized by performing
Are provided.

【手続補正3】[Procedure 3]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0012[Correction target item name] 0012

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0012】また、本発明の第の観点では、少なくと
も第1の記憶手段および前記第1の記憶手段に比して低
速な第2の記憶手段が接続された制御手段により、所定
のプログラム言語で作成されたソースコードを変換して
得られた中間コードを実行する中間コード実行方法であ
って、前記制御手段で前記第1の記憶手段に記憶された
第1のインタープリタモジュールを実行することによ
り、中間コードから取り出された命令が前記プログラム
言語の命令セットのサブセットのいずれに該当するかを
判断し、該当するものが前記サブセットにある場合には
それを実行するステップと、該当するものが前記サブセ
ットにない場合に、前記制御手段で前記第2の記憶手段
に記憶された第2のインタープリタモジュールを実行す
ることにより、当該命令が残りの命令のいずれに該当す
るかを特定して実行するステップと、を有することを特
徴とする中間コード実行方法が提供される。本発明の第
4の観点では、少なくとも第1の記憶手段および前記第
1の記憶手段に比して低速な第2の記憶手段が接続され
た制御手段により、所定のプログラム言語で作成された
ソースコードを変換して得られた中間コードを実行する
中間コード実行方法であって、前記制御手段で前記第1
の記憶手段に記憶された第1のインタープリタモジュー
ルを実行することにより、中間コードから取り出された
命令コードと、前記プログラム言語の命令セットのサブ
セットに含まれる命令コードとを一つずつ比較し、同一
命令コードが前記サブセットにある場合には当該命令に
対応した処理を行うステップと、同一のものが前記サブ
セットにない場合に、前記制御手段で前記第2の記憶手
段に記憶された第2のインタープリタモジュールを実行
することにより、前記中間コードから取り出された命令
コードと、前記プログラム言語の命令セットのサブセッ
トに含まれない命令コードとを一つずつ比較し、前記中
間コードから取り出された命令コードと同一の命令コー
ドを特定して当該命令に対応した処理を行うステップ
と、を有することを特徴とする中間コード実行方法が提
供される。
Further, according to a third aspect of the present invention, a predetermined programming language is provided by the control means to which at least the first storage means and the second storage means, which is slower than the first storage means, are connected. An intermediate code execution method for executing an intermediate code obtained by converting the source code created in 1. , wherein the intermediate code is stored in the first storage means by the control means.
By executing the first interpreter module
The instruction extracted from the intermediate code is the program
Determining whether to correspond to any subset of the language instruction set, when performing a it when that apply is in the subset, those which the person is not in the subset, in the control means The second storage means
Executes a second interpreter module stored in
Accordingly , the intermediate code executing method is provided, which comprises a step of specifying which of the remaining instructions the instruction corresponds to and executing the instruction. The present invention
In a fourth aspect, at least the first storage means and the first storage means
The second storage means, which is slower than the first storage means, is connected
Created in a predetermined programming language by the control means
Execute the intermediate code obtained by converting the source code
An intermediate code execution method, wherein the control means includes the first
First interpreter module stored in the storage means of
Run from the intermediate code by executing
Instruction code and sub of instruction set of the programming language
Identical by comparing the instruction codes included in the set one by one
If the opcode is in the subset,
The same steps as the corresponding steps are
When not in the set, the second memory device is controlled by the control means.
Run the second interpreter module stored in the column
The instruction fetched from the intermediate code by
Code and a subset of the instruction set of the programming language
Compare the instruction codes not included in the
Instruction code that is the same as the instruction code extracted from the
To specify the command and perform the processing corresponding to the command
And an intermediate code execution method characterized by having
Be served.

【手続補正4】[Procedure amendment 4]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0013[Correction target item name] 0013

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0013】さらに、本発明の第の観点では、少なく
とも第1の記憶手段および前記第1の記憶手段に比して
低速な第2の記憶手段が接続された制御手段で実行する
ことにより、所定のプログラム言語で作成されたソース
コードを変換して得られた中間コードを実行する機能を
実現するプログラムであって、前記プログラム言語の命
令セットのサブセットに対応し、前記第1の記憶手段に
記憶される第1のインタープリターモジュールと、前記
命令セットの残りの命令に対応し、前記第2の記憶手段
に記憶される第2のインタープリターモジュールとを含
、前記第1のインタープリターモジュールは、前記制
御手段で実行することにより、中間コードから取り出さ
れた命令が前記サブセットのいずれに該当するかを判断
し、該当するものが前記サブセットにある場合には当該
命令を実行する機能を実現し、前記第2のインタープリ
ターモジュールは、該当するものが前記サブセットにな
い場合に前記制御手段で実行することにより、当該命令
が残りの命令のいずれに該当するかを特定して実行する
機能を実現することを特徴とする中間コード実行プログ
ラムが提供される。
Furthermore, in the fifth aspect of the present invention, performed in at least a first storage means and said first control means is slow second storage means connected in comparison with the storage means
By doing so, the function to execute the intermediate code obtained by converting the source code created in a predetermined programming language is provided.
A program to be realized , which corresponds to a subset of the instruction set of the programming language, corresponds to a first interpreter module stored in the first storage means, and corresponds to the remaining instructions of the instruction set, and a second interpreter module which is stored in the second storage means, before Symbol first interpreter module, the system
By executing by the control means, to determine whether instructions fetched from the intermediate code corresponds to any of the subset, the if that apply it is in said subset
The second interpreter that realizes the function of executing instructions.
The target module specifies which of the remaining instructions the instruction corresponds to by executing the instruction by the control means when the applicable one is not in the subset.
An intermediate code execution program is provided which is characterized by realizing a function .

【手続補正5】[Procedure Amendment 5]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0014[Correction target item name] 0014

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0014】以上のような構成の本発明によれば、所定
のプログラム言語の命令セットのサブセットに対応した
第1のインタープリターモジュールと、命令セットの残
りの命令に対応した第2のインタープリターモジュール
とを用いて、サブセットに含まれる命令は高速な第1の
記憶手段に格納された第1のインタープリターモジュー
ルにより実行し、それ以外の命令は低速な第2の記憶手
に格納された第2のインタープリターモジュールによ
り実行するので、サブセットに含まれる命令の実行を高
速化することができる。本発明において、サブセットに
含まれない命令の実行速度は高速化されないが、サブセ
ットに含まれる命令の実行を高速化する効果は顕著であ
ることから、所定の中間コードを実行する中間コード実
行システムのパフォーマンス向上が可能である。そし
て、本発明は、特殊なハードウェアを必要としないので
低コストで実装可能であり、かつ、消費メモリを大幅に
増大させることもなく中間コード実行のパフォーマンス
を向上させることができるので、組み込み機器に好適に
適用することができる。
According to the present invention having the above-mentioned configuration, the first interpreter module corresponding to the subset of the instruction set of the predetermined programming language and the second interpreter module corresponding to the remaining instructions of the instruction set. And the instructions included in the subset are executed by the first interpreter module stored in the fast first storage means, and the other instructions are executed in the slow second storage means.
Execution by the second interpreter module stored in the stage can speed up the execution of the instructions included in the subset. In the present invention, the execution speed of the instructions not included in the subset is not increased, but the effect of increasing the speed of execution of the instructions included in the subset is significant. Therefore, an intermediate code execution system for executing a predetermined intermediate code is provided. Performance can be improved. Since the present invention does not require special hardware, it can be implemented at low cost, and the performance of intermediate code execution can be improved without significantly increasing the memory consumption, so that embedded devices can be implemented. Can be suitably applied to.

【手続補正6】[Procedure correction 6]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0023[Name of item to be corrected] 0023

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0023】以下、各機能ブロックについて説明する。
この中間コード実行システム10は、処理命令取得部1
3、第1の処理命令実行部1、第2の処理命令実行部
17とを具備している。命令取得部13は、クラスファ
イルから次に実行する命令コードを逐次的に取り出すも
のであり、当該命令取得部13により取り出された命令
コードは第1の処理命令実行部1に渡される。
Each functional block will be described below.
The intermediate code execution system 10 includes a processing instruction acquisition unit 1
3, the first processing command execution unit 1 4, and a second processing command execution portion 17. Instruction acquisition unit 13, which takes out an instruction code to be executed next from the class file sequentially, the instruction code fetched by the instruction acquisition unit 13 is passed to the first processing command execution unit 1 4.

【手続補正7】[Procedure Amendment 7]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0024[Name of item to be corrected] 0024

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0024】第1の処理命令実行部1は、選択処理
令判断部1と処理モジュールと11とを備えており、
Java(R)言語の命令体系に含まれる全バイトコー
ド命令から選択されたバイトコード命令のサブセットに
ついて、逐次的に解釈して実行する機能を有している。
より具体的には、選択処理命令判断部1において、処
理命令取得部13により取り出された命令コードと、前
述のサブセットに含まれるバイトコード命令のそれぞれ
とを比較し、同一であった場合には当該バイトコード命
令に対応した処理モジュール11を実行する。
The first processing command execution unit 1 4 is provided with a selection and processing life <br/> Order determining section 1 5 and the processing module and 11,
It has a function of sequentially interpreting and executing a subset of bytecode instructions selected from all bytecode instructions included in the Java (R) language instruction system.
More specifically, in the selected processing instruction determination unit 15 , the instruction code extracted by the processing instruction acquisition unit 13 is compared with each of the bytecode instructions included in the above-mentioned subset, and if they are the same, Executes the processing module 11 corresponding to the bytecode instruction.

【手続補正8】[Procedure Amendment 8]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0026[Correction target item name] 0026

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0026】第2の処理命令実行部17は、非選択処理
命令特定部16と処理モジュールと12とを備えてお
り、前述のサブセットに含まれないバイトコード命令に
ついて逐次的に解釈して実行する機能を有している。よ
り具体的には、非選択処理命令特定部16において、取
り出された命令コードと、前述のサブセットに含まれな
いバイトコード命令のそれぞれとを比較し、同一であっ
た場合には当該バイトコード命令に対応した処理モジュ
ール12を実行する。
The second processing instruction executing section 17 includes a non-selection processing instruction specifying section 16 and a processing module 12, and sequentially interprets bytecode instructions not included in the above-mentioned subset. It has a function to execute. More specifically, in the non-selection processing instruction specifying unit 16, the fetched instruction code is compared with each of the bytecode instructions not included in the aforementioned subset, and if they are the same, the bytecode instruction concerned. The processing module 12 corresponding to is executed.

【手続補正9】[Procedure Amendment 9]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0027[Name of item to be corrected] 0027

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0027】以上のような第1の処理命令実行部1
よび第2の処理命令実行部17の組み合わせにより、取
り出された命令コードに対応した処理モジュール11ま
たは12において所定の処理が実行される。
[0027] The combination of the first processing command execution unit 1 4 and the second processing command execution portion 17 as described above, predetermined processing in the processing module 11 or 12 corresponding to the instruction code fetched are executed .

【手続補正10】[Procedure Amendment 10]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0029[Name of item to be corrected] 0029

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0029】そこで、第1実施形態では、予め全バイト
コード命令のうち粒度が小さく出現頻度の高いものを選
択しておき、当該選択されたバイトコード命令について
は第1の処理命令実行部1で実行し、残りのバイトコ
ード命令を第2の処理命令実行部17で実行する構成と
する。すなわち、第1の処理命令実行部1は、前記選
択されたバイトコード命令のそれぞれに対応した処理モ
ジュール11を有している。そして、選択処理命令判断
部1は、与えられた命令コードのオペコードと選択さ
れたバイトコード命令のオペコードとを一つずつ比較
し、同一だった場合に対応する処理モジュール11を実
行する。また、第2の処理命令実行部17は、残りのバ
イトコード命令のそれぞれに対応した処理モジュール1
2を有している。そして、非選択処理命令特定部16
は、与えられた命令コードのオペコードと残りのバイト
コード命令のオペコードを一つずつ比較し、同一だった
場合に対応する処理モジュール12を実行する。
[0029] Therefore, in the first embodiment, in advance of which particle size of all bytecode instructions have selected the ones with high small occurrence frequency, the first processing command execution unit 1 4 for byte code instructions that are the selected The second processing instruction execution unit 17 executes the remaining bytecode instructions. That is, the first processing command execution unit 1 4 includes a processing module 11 corresponding to each of the bytecode instructions said selected. The selection processing command judgment portion 1 5 and the operation code of the selected and the opcode for a given instruction code bytecode instructions one by one comparison, executes the processing module 11 corresponding to the case were identical. In addition, the second processing instruction execution unit 17 uses the processing module 1 corresponding to each of the remaining bytecode instructions.
Have two. Then, the non-selection processing instruction specifying unit 16
Compares the operation code of the given instruction code with the operation code of the remaining bytecode instructions one by one, and executes the corresponding processing module 12 when they are the same.

【手続補正11】[Procedure Amendment 11]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0031[Correction target item name] 0031

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0031】従って、中間コード実行システム10が搭
載される環境に応じてバイトコード命令の出現頻度を調
査し、その調査結果に基づいて第1の処理命令実行部1
で実行するバイトコード命令を選択することがより好
ましい。
Therefore, the appearance frequency of bytecode instructions is investigated according to the environment in which the intermediate code execution system 10 is installed, and the first processing instruction execution section 1 is based on the examination result.
More preferably, the bytecode instructions to be executed at 4 are selected.

【手続補正12】[Procedure Amendment 12]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0032[Name of item to be corrected] 0032

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0032】さらに、第1実施形態では、以上のように
構成された第1の処理命令実行部1をなすソフトウェ
アプログラム(第1のインタープリターモジュール)が
高速メモリ3に格納された状態でクラスファイルを実行
する。例えば、中間コード実行システム10が、クラス
ファイルの実行前に記憶部6から高速メモリ3に第1の
処理命令実行部1をなすソフトウェアプログラムのコ
ードをコピーするようにしてもよい。このように第1の
処理命令実行部1をなすソフトウェアプログラムを高
速メモリ3に格納するためには、第1の処理命令実行部
で実行するバイトコード命令の数を調節して、第1
の処理命令実行部15をなすソフトウェアプログラムが
高速メモリ3に格納可能なサイズとなるようにしておく
ことが好適である。
Furthermore, in the first embodiment, the class in the state where the first processing command execution unit 1 4 eggplants software program that is configured (first interpreter module) is stored in the high-speed memory 3 as described above Execute the file. For example, the intermediate code execution system 10 may be from the storage unit 6 before executing the class file to copy the code of the software program constituting the first processing command execution unit 1 4 fast memory 3. Thus to store the software program constituting the first processing command execution unit 1 4 fast memory 3, by adjusting the number of bytecode instructions to be executed by the first processing command execution unit 1 4, the 1
It is preferable that the software program forming the processing instruction execution unit 15 has a size that can be stored in the high-speed memory 3.

【手続補正13】[Procedure Amendment 13]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0035[Correction target item name] 0035

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0035】例えば、中間コード実行システム10は、
不図示の情報入側からJava(R)アプリケーション
のクラスファイルを受け付け、受け付けたクラスファイ
ルを記憶部6のRAM7に格納する(S1)。次に中間
コード実行システム10は、以下に示す一連の動作によ
りクラスファイルを実行する。この際、第1の処理命令
実行部1をなすソフトウェアプログラム(第1のイン
タープリターモジュール)は、予め高速メモリ3に格納
された状態としておく。以下の動作は、第1実施形態に
おける中間コード実行方法にも相当する。
For example, the intermediate code execution system 10 is
A Java (R) application class file is received from an information input side (not shown), and the received class file is stored in the RAM 7 of the storage unit 6 (S1). Next, the intermediate code execution system 10 executes the class file by the following series of operations. In this case, the software program constituting the first processing command execution unit 1 4 (first interpreter module) is kept in a state of being stored in advance in the high-speed memory 3. The following operation also corresponds to the intermediate code execution method in the first embodiment.

【手続補正14】[Procedure Amendment 14]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0036[Correction target item name] 0036

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0036】まず、プロセッサ2で所定のソフトウェア
プログラムを実行することにより処理命令取得部13が
構成され、クラスファイルから命令コードが一つ取り出
される(S2)。続いて、高速メモリ3に格納された第
1の処理命令実行部15をなすソフトウェアプログラム
(第1のインタープリターモジュール)が実行され、S
2で取り出された命令コードが選択されたバイトコード
命令のいずれかに特定可能か判断され(S3)、可能な
場合には当該命令コードに対応した処理モジュール11
が実行される(S4)。ここでの処理は、より具体的に
は、第1の処理命令実行部1の選択処理命令判断部1
において取り出された命令コードのオペコードと選択
されたバイトコード命令のオペコードとを一つずつ比較
し、同一だった場合に対応する処理モジュール11を実
行するものである。
First, the processor 2 executes a predetermined software program to configure the processing instruction acquisition unit 13, and one instruction code is extracted from the class file (S2). Then, the software program (first interpreter module) forming the first processing instruction execution unit 15 stored in the high-speed memory 3 is executed, and S
It is determined whether the instruction code fetched in 2 can be specified as one of the selected bytecode instructions (S3), and if possible, the processing module 11 corresponding to the instruction code.
Is executed (S4). Processing here is, more specifically, selected processing command judgment portion 1 of the first processing command execution unit 1 4
The operation code of the instruction code fetched in 5 and the operation code of the selected bytecode instruction are compared one by one, and if they are the same, the corresponding processing module 11 is executed.

【手続補正15】[Procedure Amendment 15]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0037[Name of item to be corrected] 0037

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0037】上記S3において可能と判断されなかった
場合、つまり、選択処理命令判断部1において取り出
された命令コードのオペコードが選択されたバイトコー
ド命令のオペコードのいずれとも同一と判断されなかっ
た場合には、第2の処理命令実行部17をなすソフトウ
ェアプログラム(第2のインタープリターモジュール)
が実行され、命令コードが残りのバイトコード命令のい
ずれであるかを特定し(S5)、特定された命令コード
に対応した処理モジュール12を実行する(S6)。
[0037] When it is not judged to be in the above S3, i.e., if it is not determined that the identical to any of the opcode byte code instructions opcode of the instruction code fetched in the selected processing command judgment portion 1 5 is selected Is a software program (second interpreter module) that constitutes the second processing instruction execution unit 17.
Is executed to identify which of the remaining bytecode instructions the instruction code is (S5), and the processing module 12 corresponding to the identified instruction code is executed (S6).

【手続補正16】[Procedure Amendment 16]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0038[Correction target item name] 0038

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0038】このS6での処理は、より具体的には、第
2の処理命令実行部17の非選択処理命令特定部16に
おいて与えられた命令コードのオペコードと残りのバイ
トコード命令のオペコードを一つずつ比較し、同一だっ
た場合に対応する処理モジュール12を実行するもので
ある。
More specifically, in the processing in S6, the operation code of the instruction code given by the non-selected processing instruction specifying unit 16 of the second processing instruction execution unit 17 and the operation code of the remaining bytecode instructions are combined. They are compared one by one, and if they are the same, the corresponding processing module 12 is executed.

【手続補正17】[Procedure Amendment 17]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0041[Correction target item name] 0041

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0041】以上説明したように、第1実施形態では、
予め全バイトコード命令のうち粒度が小さく出現頻度が
高いものを選択し、まず選択されたバイトコード命令に
対応した第1の処理命令実行部1において命令コード
の解釈および実行を行い、実行できなかった命令コード
を第2の処理命令実行部17で解釈および実行する構成
としたので、出現頻度の高いバイトコード命令について
の解釈および実行を優先的に行うことができる。さら
に、第1の処理命令実行部14をなすソフトウェアプロ
グラム(第1のインタープリターモジュール)は高速メ
モリ3に格納されているので、第1の処理命令実行部
は出現頻度の高いバイトコード命令についての解釈お
よび実行を高速で行うことができる。
As described above, in the first embodiment,
Select the one previously is small frequency higher among particle size of all bytecode instructions, first, in the first processing command execution unit 1 4 corresponding to the byte code instructions that are selected interprets and executes the instruction code, can be executed Since the second instruction processing unit 17 interprets and executes the missing instruction code, it is possible to preferentially interpret and execute the bytecode instruction having a high appearance frequency. Further, since the software program (first interpreter module) forming the first processing instruction execution unit 14 is stored in the high-speed memory 3, the first processing instruction execution unit 1
4 can interpret and execute a bytecode instruction that frequently appears at high speed.

【手続補正18】[Procedure 18]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0043[Correction target item name] 0043

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0043】また、第1実施形態においては、第1の処
理命令実行部1をなすソフトウェアプログラム(第1
のインタープリターモジュール)を、選択された命令コ
ードの実行に最適化した構造としてもよく、このように
した場合には中間コード実行システム10のパフォーマ
ンスをさらに向上することが可能である。
[0043] In the first embodiment, the software program constituting the first processing command execution unit 1 4 (first
The interpreter module of 1) may have a structure optimized for execution of the selected instruction code, and in such a case, the performance of the intermediate code execution system 10 can be further improved.

【手続補正19】[Procedure Amendment 19]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0044[Correction target item name] 0044

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0044】例えば、第1の処理命令実行部1をなす
ソフトウェアプログラム(第1のインタープリターモジ
ュール)および第2の処理命令実行部17をなすソフト
ウェアプログラム(第2のインタープリターモジュー
ル)は、いずれもCやC++といった高級言語で作成す
るようにしてもよいが、このうち特に前者をアセンブリ
言語で最適化した構造に作り込むことにより中間コード
実行システム10のパフォーマンスを一層向上させるこ
とができる。
[0044] For example, the software program constituting the first processing command execution unit 1 4 eggplants software program (first interpreter module) and the second processing command execution portion 17 (second interpreter module) is one May be created in a high-level language such as C or C ++, but the performance of the intermediate code execution system 10 can be further improved by incorporating the former into a structure optimized in assembly language.

【手続補正20】[Procedure amendment 20]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0045[Name of item to be corrected] 0045

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0045】さらに、選択処理命令判断部1におい
て、取り出された命令コードのオペコードと、選択され
たバイトコード命令のオペコードとを比較して同一か否
かを判断するにあたり、頻度がより高いバイトコード命
令から順に比較することが一層好ましい。これは、非選
択命令特定部16においても同様である。
Further, in the selection processing instruction determination unit 15 , in comparing the operation code of the fetched instruction code with the operation code of the selected bytecode instruction to determine whether or not they are the same, the byte with higher frequency is used. It is more preferable to compare the code instructions in order. The same applies to the non-selected instruction specifying unit 16.

【手続補正21】[Procedure correction 21]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0066[Correction target item name] 0066

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【0066】[0066]

【発明の効果】本発明によれば、所定のプログラム言語
の命令セットのサブセットに対応した第1のインタープ
リターモジュールと、命令セットの残りの命令に対応し
た第2のインタープリターモジュールとを用いて、サブ
セットに含まれる命令は高速な第1の記憶手段に格納さ
れた第1のインタープリターモジュールにより実行し、
それ以外の命令は低速な第2の記憶手段に格納された第
2のインタープリターモジュールにより実行するので、
サブセットに含まれる命令の実行を高速化することがで
きる。本発明において、サブセットに含まれない命令の
実行速度は高速化されないが、サブセットに含まれる命
令の実行を高速化する効果は顕著であることから、所定
の中間コードを実行する中間コード実行システムのパフ
ォーマンス向上が可能である。そして、本発明は、特殊
なハードウェアを必要としないので低コストで実装可能
であり、かつ、消費メモリを大幅に増大させることもな
く中間コード実行のパフォーマンスを向上させることが
できるので、組み込み機器に好適に適用することができ
る。
According to the present invention, the first interpreter module corresponding to the subset of the instruction set of the predetermined programming language and the second interpreter module corresponding to the remaining instructions of the instruction set are used. , The instructions included in the subset are executed by the first interpreter module stored in the high speed first storage means,
Since other instructions are executed by the second interpreter module stored in the slower second storage means ,
It is possible to speed up the execution of the instructions included in the subset. In the present invention, the execution speed of the instructions not included in the subset is not increased, but the effect of increasing the speed of execution of the instructions included in the subset is significant. Therefore, an intermediate code execution system for executing a predetermined intermediate code is provided. Performance can be improved. Since the present invention does not require special hardware, it can be implemented at low cost, and the performance of intermediate code execution can be improved without significantly increasing the memory consumption, so that embedded devices can be implemented. Can be suitably applied to.

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 所定のプログラム言語で作成されたソー
スコードを変換して得られた中間コードを実行するシス
テムであって、 第1の記憶手段と、 前記第1の記憶手段に比して低速な第2の記憶手段と、 前記第1の記憶手段に記憶され、前記プログラム言語の
命令セットのサブセットに対応した第1のインタープリ
ターモジュールと、 前記第2の記憶手段に記憶され、前記命令セットの残り
の命令に対応した第2のインタープリターモジュール
と、 前記第1のインタープリターモジュールにより、中間コ
ードから取り出された命令が前記サブセットのいずれに
該当するかを判断し、該当するものが前記サブセットに
ある場合にはそれを実行し、該当するものが前記サブセ
ットにない場合には、前記第2のインタープリターモジ
ュールにより、当該命令が残りの命令のいずれに該当す
るかを特定して実行する制御手段と、を具備することを
特徴とする中間コード実行システム。
1. A system for executing an intermediate code obtained by converting a source code created in a predetermined programming language, comprising: a first storage means; and a speed lower than that of the first storage means. A second storage means, a first interpreter module stored in the first storage means and corresponding to a subset of the instruction set of the programming language, and an instruction set stored in the second storage means. A second interpreter module corresponding to the remaining instructions of the first and the first interpreter module determines which of the subsets the instruction extracted from the intermediate code corresponds to, and the corresponding one is the subset. If it is in the subset, then it is executed by the second interpreter module. The intermediate code execution system, characterized in that the instruction comprises a control means for executing identify whether corresponds to any of the remaining instructions, the.
【請求項2】 前記所定のプログラム言語はJava
(R)言語であり、前記中間コードはJava(R)ク
ラスファイルであって、前記命令はJava(R)バイ
トコード命令であることを特徴とする請求項1に記載の
中間コード実行システム。
2. The predetermined programming language is Java
The intermediate code execution system according to claim 1, wherein the intermediate code is a (R) language, the intermediate code is a Java (R) class file, and the instruction is a Java (R) bytecode instruction.
【請求項3】 前記サブセットは中間コードに所定の頻
度以上で含まれる命令を選択した集合であり、中間コー
ド実行システムが使用される環境に応じて予め設定され
ていることを特徴とする請求項1または請求項2に記載
の中間コード実行方法。
3. The subset is a set in which instructions included in the intermediate code at a predetermined frequency or more are selected, and is preset according to an environment in which the intermediate code execution system is used. The intermediate code execution method according to claim 1 or claim 2.
【請求項4】 少なくとも第1の記憶手段および前記第
1の記憶手段に比して低速な第2の記憶手段が接続され
た制御手段により、所定のプログラム言語で作成された
ソースコードを変換して得られた中間コードを実行する
中間コード実行方法であって、 上記制御手段により、前記プログラム言語の命令セット
のサブセットに対応した第1のインタープリターモジュ
ールにより中間コードから取り出された命令が前記サブ
セットのいずれに該当するかを判断し、該当するものが
前記サブセットにある場合にはそれを実行するステップ
と、 上記制御手段により、該当するものが前記サブセットに
ない場合には、前記命令セットの残りの命令に対応した
第2のインタープリターモジュールにより、当該命令が
残りの命令のいずれに該当するかを特定して実行するス
テップと、を有することを特徴とする中間コード実行方
法。
4. A source code created in a predetermined programming language is converted by control means connected to at least a first storage means and a second storage means that is slower than the first storage means. An intermediate code execution method for executing the intermediate code obtained by the above, wherein the control unit controls the subset extracted from the intermediate code by the first interpreter module corresponding to the subset of the instruction set of the programming language. The step of deciding which of the above is applicable and executing it if the applicable one is in the subset; and, if the applicable one is not in the subset, the rest of the instruction set by the control means. By the second interpreter module corresponding to the instruction of, Intermediate code execution method characterized by comprising the steps of run, the.
【請求項5】 前記所定のプログラム言語はJava
(R)言語であり、前記中間コードはJava(R)ク
ラスファイルであって、前記命令はJava(R)バイ
トコード命令であることを特徴とする請求項4に記載の
中間コード実行方法。
5. The predetermined programming language is Java
The intermediate code executing method according to claim 4, wherein the intermediate code is a (R) language, the intermediate code is a Java (R) class file, and the instruction is a Java (R) bytecode instruction.
【請求項6】 前記サブセットは中間コードに所定の頻
度以上で含まれる命令を選択した集合であり、中間コー
ド実行方法の適用される環境に応じて予め設定されてい
ることを特徴とする請求項4または請求項5に記載の中
間コード実行方法。
6. The subset is a set in which instructions included in the intermediate code at a predetermined frequency or more are selected, and is preset according to an environment to which the intermediate code execution method is applied. 4. The intermediate code execution method according to claim 4 or claim 5.
【請求項7】 少なくとも第1の記憶手段および前記第
1の記憶手段に比して低速な第2の記憶手段が接続され
た制御手段により、所定のプログラム言語で作成された
ソースコードを変換して得られた中間コードを実行する
プログラムであって、 前記プログラム言語の命令セットのサブセットに対応
し、前記第1の記憶手段に格納される第1のインタープ
リターモジュールと、 前記命令セットの残りの命令に対応し、前記第2の記憶
手段に格納される第2のインタープリターモジュールと
を含み、 前記制御手段は、 前記第1のインタープリターモジュールにより、中間コ
ードから取り出された命令が前記サブセットのいずれに
該当するかを判断し、該当するものが前記サブセットに
ある場合にはそれを実行し、 該当するものが前記サブセットにない場合には、前記第
2のインタープリターモジュールにより、当該命令が残
りの命令のいずれに該当するかを特定して実行すること
を特徴とする中間コード実行プログラム。
7. A source code created in a predetermined programming language is converted by a control means to which at least a first storage means and a second storage means that is slower than the first storage means are connected. A program for executing the obtained intermediate code, which corresponds to a subset of the instruction set of the programming language and is stored in the first storage means; and a remaining part of the instruction set. A second interpreter module corresponding to the instruction and stored in the second storage means, wherein the control means includes the instruction extracted from the intermediate code by the first interpreter module from the subset. It is determined which is applicable, and if the applicable is in the subset, it is executed. In the absence, the by a second interpreter module, the intermediate code execution program to which the instruction and executes to identify whether corresponds to any of the remaining instructions.
【請求項8】 前記サブセットは中間コードに所定の頻
度以上で含まれる命令を選択した集合であり、中間コー
ド実行プログラムの使用される環境に応じて予め設定さ
れていることを特徴とする請求項7に記載の中間コード
実行プログラム。
8. The subset is a set in which instructions included in the intermediate code at a predetermined frequency or more are selected, and is preset according to an environment in which the intermediate code execution program is used. 7. The intermediate code execution program according to 7.
JP2002314985A 2001-10-31 2002-10-29 Intermediate code execution system, intermediate code execution method, and intermediate code execution program Expired - Fee Related JP3472775B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002314985A JP3472775B2 (en) 2001-10-31 2002-10-29 Intermediate code execution system, intermediate code execution method, and intermediate code execution program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001334822 2001-10-31
JP2001-334822 2001-10-31
JP2002314985A JP3472775B2 (en) 2001-10-31 2002-10-29 Intermediate code execution system, intermediate code execution method, and intermediate code execution program

Publications (2)

Publication Number Publication Date
JP2003202993A true JP2003202993A (en) 2003-07-18
JP3472775B2 JP3472775B2 (en) 2003-12-02

Family

ID=27666729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002314985A Expired - Fee Related JP3472775B2 (en) 2001-10-31 2002-10-29 Intermediate code execution system, intermediate code execution method, and intermediate code execution program

Country Status (1)

Country Link
JP (1) JP3472775B2 (en)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61267837A (en) * 1984-12-10 1986-11-27 Nec Corp Function extending system for interpreter
JPS6298433A (en) * 1985-10-25 1987-05-07 Hitachi Ltd Information processor
JPH02183337A (en) * 1989-01-10 1990-07-17 Fuji Xerox Co Ltd Information processor
JPH04318626A (en) * 1991-04-17 1992-11-10 Fuji Xerox Co Ltd Message proessing device
JPH06282440A (en) * 1993-03-25 1994-10-07 Sony Corp Program editing method, program editing and executing method, and computer system
JPH10240546A (en) * 1997-02-28 1998-09-11 Hitachi Ltd Execution time program translation method
JP2000267861A (en) * 1999-03-18 2000-09-29 Toshiba Corp Method for mounting interpreter and computer readable recording medium with interpreter program recorded thereon
JP2001101010A (en) * 1999-09-30 2001-04-13 Hitachi Ltd Method for optimizing virtual machine
JP2002099312A (en) * 2000-09-22 2002-04-05 Mitsubishi Electric Corp Programmable controller and control program development supporting device
JP2002229803A (en) * 2001-02-06 2002-08-16 Hitachi Software Eng Co Ltd Program execution method, intermediate code analytic program, and virtual machine

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61267837A (en) * 1984-12-10 1986-11-27 Nec Corp Function extending system for interpreter
JPS6298433A (en) * 1985-10-25 1987-05-07 Hitachi Ltd Information processor
JPH02183337A (en) * 1989-01-10 1990-07-17 Fuji Xerox Co Ltd Information processor
JPH04318626A (en) * 1991-04-17 1992-11-10 Fuji Xerox Co Ltd Message proessing device
JPH06282440A (en) * 1993-03-25 1994-10-07 Sony Corp Program editing method, program editing and executing method, and computer system
JPH10240546A (en) * 1997-02-28 1998-09-11 Hitachi Ltd Execution time program translation method
JP2000267861A (en) * 1999-03-18 2000-09-29 Toshiba Corp Method for mounting interpreter and computer readable recording medium with interpreter program recorded thereon
JP2001101010A (en) * 1999-09-30 2001-04-13 Hitachi Ltd Method for optimizing virtual machine
JP2002099312A (en) * 2000-09-22 2002-04-05 Mitsubishi Electric Corp Programmable controller and control program development supporting device
JP2002229803A (en) * 2001-02-06 2002-08-16 Hitachi Software Eng Co Ltd Program execution method, intermediate code analytic program, and virtual machine

Also Published As

Publication number Publication date
JP3472775B2 (en) 2003-12-02

Similar Documents

Publication Publication Date Title
EP1313011B1 (en) Intermediate code execution system, intermediate code execution method, and computer program product for executing intermediate code
US6907519B2 (en) Systems and methods for integrating emulated and native code
US7051340B2 (en) System and method for isolating applications from each other
US8156307B2 (en) Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
EP1316887A2 (en) System and method for dynamically patching code
US20090064095A1 (en) Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US7506310B2 (en) Method and system for caching managed code for efficient execution on resource-constrained devices
EP1313008A1 (en) System and method for decoding program instructions
JP2000507015A (en) Real-time programming language accelerator
JP2004070944A (en) System and method for expanding operating system function for application
JP2003515203A (en) Optimization of N-base type arithmetic expression
CN114816417B (en) Cross compiling method, device, computing equipment and storage medium
EP1283465A2 (en) Transforming &amp; caching computer programs
US20030084432A1 (en) Intermediate code preprocessing apparatus, intermediate code execution apparatus, intermediate code execution system, and computer program product for preprocessing or executing intermediate code
US8214815B2 (en) Reducing the run-time cost of invoking a server page
WO2010084617A1 (en) Information processor provided with configuration change function, system configuration change method, and system configuration change program
US9274804B2 (en) Overlapped boot task fetches and boot task execution to reduce boot time in an electrical device
JP2001202253A (en) Data processing method and data processor
WO2022237098A1 (en) Heterogeneous program execution method and apparatus, and computing device and readable storage medium
US8108843B2 (en) Hybrid mechanism for more efficient emulation and method therefor
CN105739992A (en) GCC compiler based method and system used by software to control memory partitioning and mapping
CN112214266A (en) Android shelling method and device for deception call chain, storage medium and computer equipment
US20120144390A1 (en) Customized computer image preparation and deployment including virtual machine mode
US20150089149A1 (en) Arithmetic processing device and control method for arithmetic processing device
JP3472775B2 (en) Intermediate code execution system, intermediate code execution method, and intermediate code execution program

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080912

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090912

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090912

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100912

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100912

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120912

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130912

Year of fee payment: 10

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees