JPH09179738A - オブジェクト指向言語処理方法及び処理装置 - Google Patents

オブジェクト指向言語処理方法及び処理装置

Info

Publication number
JPH09179738A
JPH09179738A JP33857295A JP33857295A JPH09179738A JP H09179738 A JPH09179738 A JP H09179738A JP 33857295 A JP33857295 A JP 33857295A JP 33857295 A JP33857295 A JP 33857295A JP H09179738 A JPH09179738 A JP H09179738A
Authority
JP
Japan
Prior art keywords
source code
application source
dynamic
oriented language
instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP33857295A
Other languages
English (en)
Inventor
Eiko Naya
英光 納谷
Yasushi Fukunaga
泰 福永
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP33857295A priority Critical patent/JPH09179738A/ja
Publication of JPH09179738A publication Critical patent/JPH09179738A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】実行コードサイズを小さくするオブジェクト指
向言語処理装置を提供する。 【解決手段】動的オブジェクト生成に関するアプリケー
ションソースコードを解析し、該アプリケーションソー
スコードに含まれているインスタンスを抽出するインス
タンス抽出手段21,22と、抽出したインスタンスを所定
ルールでインスタンス情報として登録管理する情報管理
手段23,24,25,31,32,33と、登録管理した該インスタン
ス情報に基づいて、動的オブジェクト生成に関するアプ
リケーションソースコードを静的オブジェクト生成に関
するアプリケーションソースコードに変換するコード変
換手段200,201とを有するトランスレータ20を備えたオ
ブジェクト指向言語処理装置。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、半導体メモリを用
いた各種制御装置に係り、特に、自動車用のエンジン制
御装置の半導体メモリを処理するオブジェクト指向言語
処理装置における実行コードサイズ最適化処理方法に関
する。
【0002】
【従来の技術】オブジェクト指向言語には実行時決定機
能があり、この機能はオブジェクトが受信したメッセー
ジに応じて起動されるメソッドをオブジェクトが属する
クラスに基づいて実行時に決定する機能である。オブジ
ェクト指向言語処理装置では、該機能は実行コード内に
静的に生成されるメソッドアドレス管理テーブルを利用
することで活かされている。そして、実行時に実際に起
動されるメソッドはオブジェクトが属するクラスに基づ
いて選択されている。
【0003】また、オブジェクト指向言語には継承機能
があり、この機能は新たなクラスを生成する場合に、既
に存在しているクラス定義を継承することで既に存在し
ているクラスのインスタンス(データ及びメソッド)を定
義しなくても該インスタンスの情報が新たなクラスに格
納される機能である。
【0004】以下、従来技術についてオブジェクト指向
言語の一つであるC++言語の場合で説明する。C++
言語ではメソッドの実行時決定を行なうためのメソッド
を、仮想関数として指定しなければならない。このため
にvirtualという識別子を用いる。
【0005】これを実現するための簡便な方法は、クラ
ス属性およびメソッドへのポインタを保持するテーブル
を設け、該テーブルへのポインタを各オブジェクトが保
持する方法である。C++言語ではクラス定義でvir
tual識別子が付けられたメソッドを有するクラスが
存在すると、そのクラスに対応したメソッドアドレス管
理テーブルを、該メソッドがアプリケーションソースコ
ードで使用されているいないに係わらず生成される。
【0006】継承機能により定義されたクラスからオブ
ジェクトを生成すると、元になったクラスのインスタン
ス(データ及びメソッド)がアプリケーションソースコー
ドで使用されているいないに係わらず生成される。メソ
ッドアドレス管理テーブルおよび継承機能に関しては、
サイエンス社『ComputerToday』(199
2年3月号)に記載されている。
【0007】
【発明が解決しようとする課題】上述の通り、従来のオ
ブジェクト指向言語処理装置では、実行時決定機能のた
めにメソッドアドレス管理テーブルが用いられおり、ま
た継承機能により不必要なデータ及びメソッドが生成さ
れ、そのために実行コードサイズが大きくなるという問
題点がある。
【0008】具体的には、自動車用のエンジン制御装置
の制御プログラムにおいて、プログラム開発およびデバ
ッグを容易にするために実行時決定機能および継承機能
を利用することが考えられるが、デバッグを終了してエ
ンジン制御装置の半導体メモリに実行コードを搭載する
時点で、メソッドアドレス管理テーブル及び不必要なイ
ンスタンスが生成され、これにより実行コードサイズが
大きくなるので、オブジェクト指向言語処理装置が使え
ないという問題がある。 また、動的メモリ配置
の管理機構が実行コードサイズの肥大を招くので、上記
制御プログラムをオブジェクトの動的生成によって半導
体メモリ化するには適さないという問題もある。
【0009】したがって、本発明の目的は、メソッドア
ドレス管理テーブル及び不必要なインスタンスの生成を
回避し実行コードサイズを小さくするオブジェクト指向
言語処理方法及び処理装置を提供することにある。そし
て、オブジェクト指向言語を利用し処理して成る小容量
半導体メモリを有するエンジンコントロールユニットを
提供する。
【0010】
【課題を解決するための手段】本発明の特徴は、オブジ
ェクトの動的オブジェクト生成を静的オブジェクト生成
に変換し、当該オブジェクト生成を全て静的オブジェク
ト生成にて実行し、半導体メモリを処理する点にある。
【0011】また、本発明の他の特徴は、トランスレー
タとコンパイラとを備え、オブジェクト指向言語におけ
るメソッドの実行時決定機能と継承機能とを利用し、半
導体メモリを処理するオブジェクト指向言語処理方法で
あって、前記トランスレータが、動的なアプリケーショ
ンソースコードを解析し、該動的なアプリケーションソ
ースコードに含まれているインスタンスを抽出し、抽出
した前記インスタンスを所定ルールでインスタンス情報
として登録管理し、登録管理した該インスタンス情報に
基づいて、前記動的なアプリケーションソースコードを
静的なアプリケーションソースコードに変換することに
よって、オブジェクトの動的オブジェクト生成を静的オ
ブジェクト生成に変換するにある。
【0012】さらに、本発明の別の特徴は、動的オブジ
ェクト生成に関するアプリケーションソースコードを解
析し、該アプリケーションソースコードに含まれている
インスタンスを抽出するインスタンス抽出手段と、抽出
した前記インスタンスを所定ルールでインスタンス情報
として登録管理する情報管理手段と、登録管理した該イ
ンスタンス情報に基づいて、前記動的オブジェクト生成
に関するアプリケーションソースコードを静的オブジェ
クト生成に関するアプリケーションソースコードに変換
するコード変換手段とを有する、トランスレータを備え
たオブジェクト指向言語処理装置にある。
【0013】本発明によれば、メソッドアドレス管理テ
ーブル及び不必要なインスタンスの生成が回避され、実
行コードサイズの小さくなるオブジェクト指向言語処理
方法及び処理装置が提供される。
【0014】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照し説明する。 図1は、本発明による一
実施例のオブジェクト指向言語処理装置を示す構成図で
ある。図1のオブジェクト指向言語処理装置(即ち、実
行コードサイズ最適化処理方法を用いた装置)は、アプ
リケーションソースコード10と、トランスレータ20
と、コンパイラ30と、実行ファイル40とから構成さ
れる。
【0015】次に、本実施例の動作について、図2〜図
3を参照して説明する。図2は、図1のトランスレータ
の内部構成図である。図2(a)は、クラス最適化処理に
よるトランスレータの内部構成図である。図3は、図2
(a)のトランスレータのクラス最適化処理方法を示すフ
ローチャートである。実行コードサイズ最適化処理方法
の一実施例としてのクラス最適化処理方法が示されてい
る。
【0016】図2(a)においてトランスレータ20の内
部は、インスタンス抽出手段としてのアプリケーション
ソースコード読み込み部21,アプリケーションソース
コード解析部22と、情報管理手段としてのクラス登録
部23,データ登録部24,メソッド登録部25,クラ
ステーブル31,データテーブル32,メソッドテーブ
ル33と、コード変換手段としてのクラス生成部200,
アプリケーションソースコード変換部201とから構成さ
れる。
【0017】図3において、アプリケーションソースコ
ード読み込み部21は、動的なアプリケーションソース
コード10を読み込む(ステップS11)。
【0018】アプリケーションソースコード10が終端
に達していない場合には、アプリケーションソースコー
ド解析部22がソースコードを解析し(ステップS1
2)、クラスを抽出した場合には(ステップS13)、ク
ラス登録部23がクラステーブル31に登録する(ステ
ップS14)。また、データを抽出した場合には(ステッ
プS15)データ登録部24がデータテーブル32に登
録する(ステップS16)。
【0019】そして、メソッドを抽出した場合には(ス
テップS17)メソッド登録部25がメソッドテーブル
33に登録し(ステップS18)、再度、ステップS11
の読み込みに戻り、動的なアプリケーションソースコー
ドが全て解析される。
【0020】解析が終了し、アプリケーションソースコ
ード10が終端に達していた場合には、クラス生成部20
0は、クラステーブル31,データテーブル32,メソ
ッドテーブル33の情報に基づいて、新たにクラス定義
150を生成する(ステップS19)。そして、アプリケー
ションソースコード変換部201は、 クラステーブル3
1,データテーブル32,メソッドテーブル33の情報
と、ステップS19にて新たに生成したクラス定義150
に基づいて、動的なアプリケーションソースコードを静
的なアプリケーションソースコードに変換する(ステッ
プS20)。
【0021】上記動作について、C++言語の場合の実
施例を図4〜図7で示し補説する。図4は、クラス最適
化処理前のアプリケーションソースコードを示す図であ
る。すなわち、動的なアプリケーションソースコードで
ある。図5は、各テーブルの構成要素を示す図である。
図6は、各テーブルの一実施例を示す図である。図7
は、クラス最適化処理後のアプリケーションソースコー
ドを示す図である。すなわち、変換された静的なアプリ
ケーションソースコードである。
【0022】図4において、110,120,130はクラス定
義である。111,121,131はデータ定義であり、112,12
2,132はメソッド定義であり、113,123,133はメソッ
ド実装であり、140はメインコードである。
【0023】そして、図5のように、クラステーブル3
1の要素が、クラス名称53,継承リンク54,メソッ
ドリンク55,データリンク56,クラス利用有無57
で構成され、データテーブル32の要素が、データ名称
63,データ利用有無67で構成され、メソッドテーブ
ル33の要素が、メソッド名称73,メソッド利用有無
77で構成されている場合、トランスレータ20が、前
述のクラス定義、メソッド実装及びメインコードから成
るアプリケーションソースコード10を走査すると、図
6に示したようなクラステーブル31,データテーブル
32,メソッドテーブル33が生成される。例えば図6
の図中においては、動的なアプリケーションコード10
に存在し利用されているクラス,データ,メソッドの各
テーブルに○が付けられている。
【0024】この場合、ステップS19のクラス生成部
200、およびステップS20のアプリケーションソース
コード変換部201は、クラステーブル31,データテー
ブル32,メソッドテーブル33の情報に基づいて、図
7のように、新たに静的なアプリケーションソースコー
ド10としての、クラス定義150、メソッド実装153およ
びメインコード160を生成する。
【0025】以上を纏めれば、本発明の特徴は、動的な
アプリケーションソースコードを解析し、該アプリケー
ションソースコードに存在するインスタンスを抽出し、
抽出したインスタンスを所定ルールでインスタンス情報
として登録管理し、登録管理した該インスタンス情報に
基づいて、該インスタンスのみを提供するクラス定義を
生成し、かつ、該クラス定義に対応するよう静的なアプ
リケーションソースコードに変換する点にある。また
は、後述するように、実行時メソッド決定部を静的メソ
ッド呼出に変換する、あるいは、動的オブジェクト生成
を静的オブジェクト生成に変換する点にある。そして、
メソッドアドレス管理テーブルならびに継承による不必
要なインスタンス生成をなくし、実行コードサイズを小
さくするものである。
【0026】換言すれば、オブジェクト指向言語の特徴
である実行時決定機能および継承機能を利用するに、オ
ブジェクトの動的オブジェクト生成を静的オブジェクト
生成に変換し、当該オブジェクト生成を全て静的オブジ
ェクト生成にて実行することにより、実行コードサイズ
を最適化して、半導体メモリを処理する点にある。
【0027】したがって、本発明による課題を解決する
ための手段は、動的オブジェクト生成に関するアプリケ
ーションソースコードを解析し、実行時メソッド決定す
るコードおよびコード位置,アプリケーションソースコ
ードに存在するインスタンスとクラスの関係,オブジェ
クトの動的生成コード位置などのインスタンスを抽出す
るインスタンス抽出手段と、抽出したインスタンスを所
定ルールでインスタンス情報として登録管理する情報管
理手段と、該情報管理手段に保持された情報を基にアプ
リケーションソースコードを実行するのに必要なインス
タンスを提供するクラス定義を生成し、かつ、該クラス
定義とインスタンス情報に基づいてメインコードを含む
静的なアプリケーションソースコードを生成するコード
変換手段とを有するトランスレータを備えたオブジェク
ト指向言語処理装置(即ち、実行コードサイズ最適化処
理方法を用いた装置)である。
【0028】次に、本発明による他の実施例の動作につ
いて、図2(b)と図8を参照して説明する。図2(b)
は、動的呼出最適化処理によるトランスレータの内部構
成図である。図8は、図2(b)のトランスレータの動的
呼出最適化処理を示すフローチャートである。実行コー
ドサイズ最適化処理の他の実施例としての動的呼出最適
化処理、すなわち、前述の実行時メソッド決定部を静的
メソッド呼出に変換する方法が示されている。
【0029】なお、図2(b)の実施例では、情報管理手
段としては、動的呼出登録部81と動的呼出テーブル8
2とが該当し、コード変換手段としては、アプリケーシ
ョンソースコード変換部201のみが該当する。
【0030】図8において、アプリケーションソースコ
ード読み込み部21は、動的なアプリケーションソース
コード11を読み込む(ステップS21)。アプリケーシ
ョンソースコード11が終端に達していない場合には、
アプリケーションソースコード解析部22がソースコー
ドを解析する(ステップS22)。そして、動的呼出を抽
出した場合には(ステップS23)動的呼出登録部81
が動的呼出テーブル82に登録し(ステップS24)、
再度、ステップS21の読み込みに戻る。アプリケーシ
ョンソースコード11が終端に達した場合には、アプリ
ケーションソースコード変換部201は、動的呼出テーブ
ル82の情報に基づいて、静的なアプリケーションソー
スコード11に変換する(ステップS25)。
【0031】上記動作についての実施例を図9〜図12
で示し補説する。図9は、動的呼出最適化処理前のアプ
リケーションソースコードを示す図である。すなわち、
動的なアプリケーションソースコードである。図10
は、動的呼出テーブルの構成要素を示す図である。図1
1は、動的呼出テーブルの一実施例を示す図である。図
12は、動的呼出最適化処理後のアプリケーションソー
スコードを示す図である。すなわち、変換された静的な
アプリケーションソースコードである。
【0032】図9において、110,120,130はクラス定
義である。111,121,131はデータ定義であり、112,12
2,132はメソッド定義であり、113,123,133はメソッ
ド実装であり、141はメインコードである。
【0033】図10のように、動的呼出テーブル82の
要素は、呼出宣言83,ポインタタイプ84,代入タイ
プ85,代入宣言86,呼出関数87で構成される。そ
して、トランスレータ20が、動的なアプリケーション
ソースコード11を走査すると、図11に示したような
動的呼出テーブル82が生成される。ステップS25に
おいて、アプリケーションソースコード変換部201は、
図12のように、動的呼出テーブル82の情報に基づい
て、新たに静的なアプリケーションソースコード11と
しての、クラス定義110,120,130、メソッド実装113,
123,133およびメインコード161を生成する。
【0034】次に、本発明による別の実施例の動作につ
いて、図2(c)と図13を参照して説明する。図2(c)
は、動的生成最適化処理によるトランスレータの内部構
成図である。図13は、図2(c)のトランスレータの動
的生成最適化処理を示すフローチャートである。実行コ
ードサイズ最適化処理の別の実施例としての動的生成最
適化処理、すなわち、前述の動的オブジェクト生成を静
的オブジェクト生成に変換する方法が示されている。
【0035】なお、図2(c)の実施例では、情報管理手
段としては、動的生成登録部91と動的生成テーブル9
2とが該当し、コード変換手段としては、アプリケーシ
ョンソースコード変換部201のみが該当する。
【0036】図13において、アプリケーションソース
コード読み込み部21は、動的なアプリケーションソー
スコード12を読み込む(ステップS31)。
アプリケーションソースコード12が終端に達してい
ない場合には、アプリケーションソースコード解析部2
2がソースコードを解析する(ステップS32)。そし
て、動的生成ならびに該動的生成のポインタ呼出を抽出
した場合には(ステップS33)動的生成登録部91が、
動的生成テーブル92に登録し(ステップS34)、再
度、ステップS31の読み込みに戻る。アプリケーショ
ンソースコード12が終端に達していた場合には、アプ
リケーションソースコード変換部201は、動的生成テー
ブル92の情報に基づいて、静的なアプリケーションソ
ースコード12に変換する(ステップS35)。
【0037】上記動作についての実施例を図14〜図1
7で示し補説する。図14は、動的生成最適化処理前の
アプリケーションソースコードを示す図である。すなわ
ち、動的なアプリケーションソースコードである。図1
5は、動的生成テーブルの構成要素を示す図である。図
16は、動的生成テーブルの一実施例を示す図である。
図17は、動的生成最適化処理後のアプリケーションソ
ースコードを示す図である。すなわち、変換された静的
なアプリケーションソースコードである。
【0038】図14において、110,120,130はクラス
定義である。111,121,131はデータ定義であり、112,
122,132はメソッド定義であり、113,123,133はメソ
ッド実装であり、142はメインコードである。
【0039】図15のように、動的生成テーブル92の
要素は、生成宣言93,ポインタタイプ94,代入タイ
プ95,ポインタ呼出96で構成される。そして、トラ
ンスレータ20が、動的なアプリケーションソースコー
ド12を走査すると、図16に示したような動的生成テ
ーブル92が生成される。ステップS35において、ア
プリケーションソースコード変換部201は、図17のよ
うに、動的生成テーブル92の情報に基づいて、新たに
静的なアプリケーションソースコード12としての、ク
ラス定義110,120,130、メソッド実装113,123,133お
よびメインコード162を生成する。
【0040】次に、オブジェクト指向言語処理方法にて
処理された半導体メモリの適用例について説明する。図
18は、本発明による一実施例のエンジン制御装置を示
す構成図である。オブジェクト指向言語を用いて小容量
の半導体メモリを処理するオブジェクト指向言語処理装
置と該半導体メモリを採用したエンジン制御装置とが示
されている。
【0041】図18において、自動車用のエンジン制御
装置は、各種センサ1と、各種アクチュエータ3と、各
種センサからの検出信号を処理し各種アクチュエータを
駆動して、エンジンを制御するエンジンコントロールユ
ニット2とから構成される。そして、エンジンコントロ
ールユニット2は、本発明によるオブジェクト指向言語
処理装置8によって処理され、最終的にはアセンブラ言
語にて生成されて実行コードが書き込まれた小容量の半
導体メモリ4を有している。一般に、半導体メモリ4
は、マスタ半導体メモリ7から複写して処理されるの
で、実際は、マスタ半導体メモリ7がオブジェクト指向
言語処理装置8によって処理される。
【0042】ところで、実行コードサイズが大きくなる
ことが隘路となって、従来のマスタ半導体メモリまたは
半導体メモリは、アセンブラ言語処理装置にて処理され
ていた。更に、オブジェクトの動的生成は半導体メモリ
化に適さないこともあり、オブジェクト指向言語を用い
て半導体メモリを処理することは不利であった。 これ
に対し、本発明によるオブジェクト指向言語処理方法及
び処理装置によって、実行コードサイズが大きくなると
いう隘路が解消されたので、オブジェクト指向言語,C
言語,アセンブラ言語の各変換処理を経て各種制御装置
のマスタ半導体メモリまたは半導体メモリを処理し、各
種製品にオブジェクト指向言語を利用し製作した半導体
メモリが適用できるようになった。
【0043】具体的には、 自動車用のエンジン制御装
置に於けるプログラム容量(例えば、12000step前後の容
量)の場合であれば、従来のアセンブラ言語処理方法に
て処理されている半導体メモリは、128KBであり、
仮に、従来のオブジェクト指向言語処理方法で半導体メ
モリを処理した場合であれば、128KBで収まらず2
56KBにもなる可能性がある。 これに対し、本発明
によるオブジェクト指向言語処理方法によって処理した
マスタ半導体メモリ7または半導体メモリ4であれば、
64KBに収まる。
【0044】ここで具体的なソースコードの一部を示
し、本発明と従来例の違いについて説明する。オブジェ
クト指向言語のルールに基づき処理した図4に示したア
プリケーションソースコードに対応するアセンブラソー
スコードは、例えば、以下のようになる。
【0045】『従来技術のオブジェクト指向言語処理に
よるアセンブラソースコード』 1 ___1A: 2 pushl %ebp 3 movl %esp,%ebp 4 movl 8(%ebp),%edx 5 movl $__vt$1A,4(%edx) 6 L2: 7 movl %edx,%eax 8 jmp L1 9 .align 4,0x90 10 jmp L1 11 .align 4,0x90 12 L1: 13 movl %ebp,%esp 14 popl %ebp 15 ret 16 LC0: 17 .ascii "%d\12\0" 18 .align 4 19 _Func__1A: 20 pushl %ebp 21 movl %esp,%ebp 22 pushl %ebx 23 movl 8(%ebp),%ebx 24 movl (%ebx),%edx 25 pushl %edx 26 pushl $LC0 27 call _printf 28 addl $8,%esp 29 L3: 30 movl -4(%ebp),%ebx 31 movl %ebp,%esp 32 popl %ebp 33 ret 34 .align 4 35 ___1ARC1A: 36 pushl %ebp 37 movl %esp,%ebp 38 pushl %ebx 39 movl 8(%ebp),%ecx 40 movl 12(%ebp),%edx 41 movl $__vt$1A,4(%ecx) 42 movl (%edx),%ebx 43 movl %ebx,(%ecx) 44 L5: 45 movl %ecx,%eax 46 jmp L4 47 .align 4,0x90 48 jmp L4 49 .align 4,0x90 50 L4: 51 movl -4(%ebp),%ebx 52 movl %ebp,%esp 53 popl %ebp 54 ret 55 .align 4 56 ___1B: 57 pushl %ebp 58 movl %esp,%ebp 59 pushl %ebx 60 movl 8(%ebp),%ebx 61 pushl %ebx 62 call ___1A 63 addl $4,%esp 64 movl $__vt$1B,4(%ebx) 65 L7: 66 movl %ebx,%eax 67 jmp L6 68 .align 4,0x90 69 jmp L6 70 .align 4,0x90 71 L6: 72 movl -4(%ebp),%ebx 73 movl %ebp,%esp 74 popl %ebp 75 ret 76 .align 4 77 _Func__1B: 78 pushl %ebp ( 中略 ) 200 xorl %eax,%eax 201 jmp L16 202 .align 4,0x90 203 jmp L16 204 .align 4,0x90 205 L16: 206 movl %ebp,%esp 207 popl %ebp 208 ret 209 .align 2 210 __vt$1C: 211 .word 0 212 .word 0 213 .long 1 214 .word 0 215 .word 0 216 .long _Func__1C 217 .align 2 218 __vt$1B: 219 .word 0 220 .word 0 221 .long 1 222 .word 0 223 .word 0 224 .long _Func__1B 225 .align 2 226 __vt$1A: 227 .word 0 228 .word 0 229 .long 1 230 .word 0 231 .word 0 232 .long _Func__1A 以上。
【0046】上記の『従来例のアセンブラソースコー
ド』に対し、本発明によるものは以下のようになる。 『本発明のオブジェクト指向言語処理によるアセンブラ
ソースコード』 1 LC0: 2 .ascii "%d\12\0" 3 .align 4 4 _Func__1D: 5 pushl %ebp 6 movl %esp,%ebp 7 pushl %ebx 8 movl 8(%ebp),%ebx 9 movl (%ebx),%eax 10 movl %eax,4(%ebx) 11 pushl %eax 12 pushl $LC0 13 call _printf 14 addl $8,%esp 15 jmp L2 ( 中略 ) 62 xorl %eax,%eax 63 jmp L5 64 .align 4,0x90 65 jmp L5 66 .align 4,0x90 67 L5: 68 movl %ebp,%esp 69 popl %ebp 70 ret 以上。
【0047】このように『従来例のアセンブラソースコ
ード』では、210行目から232行目に実行時決定機
能を実現するためのメソッド管理テーブルが存在し、該
メソッド管理テーブルの初期化をするためのコードが5
行目、62行目から64行目(例示していない127行
目から129行目)に存在する。また、メインコードよ
り参照のないA、Bに関しても1行目から55行目と5
6行目から119行目までに実装されており、実行コー
ドサイズが大きくなっている。
【0048】これに対し『本発明のアセンブラソースコ
ード』では、210行目から232行目に該当するよう
な実行時決定機能を実現するためのメソッド管理テーブ
ルが存在しない。すなわち、具体的に製品となった半導
体メモリを解析した場合は、210行目の「__vt$1C:」、
211行目の「 .word 0」などのようなメソッド管理テ
ーブルに対応するコマンド列がソースコードに存在しな
いことになる。 また、メインコードに参照のない
オブジェクトに関して、トランスレータにより除外され
実装されていないので、実行コードサイズは小さくな
る。上記の本比較例では、232行のコードサイズが、70
行のコードサイズに小さくなっていることが判る。そし
て、本発明によれば、継承が多重になるほど実行コード
サイズが小さくなる。
【0049】以上のように、本発明によるオブジェクト
指向言語処理方法または処理装置を適用しオブジェクト
指向言語によって処理された半導体メモリは小型化さ
れ、安価なものとなる利点を有している。さらに、プロ
グラム開発およびデバッグを容易にするために、オブジ
ェクト指向言語の特徴である実行時決定機能および継承
機能を利用しても、実行コードサイズが大きくならない
ので、本発明によるオブジェクト指向言語処理装置をエ
ンジン制御装置の半導体メモリ処理に適用すれば、プロ
グラムの開発工数が半減するという利点が付加される。
これらの点からエンジン制御装置(すなわち、エンジン
コントロールユニット)のコスト低減に結び付くという
効果がある。
【0050】
【発明の効果】以上説明したように、本発明によれば、
アプリケーションソースコードに存在するインスタンス
を抽出し、該インスタンスのみを提供するクラス定義を
トランスレータが自動生成し、該クラス定義に対応する
ように該アプリケーションソースコードを変換し、また
は実行時メソッド決定部を静的メソッド呼出に変換し、
あるいは動的オブジェクト生成を静的オブジェクト生成
に変換することで、継承による不必要なインスタンス生
成やメソッドアドレス管理テーブルをなくし、オブジェ
クトの生成を全て静的にすることにより、実行コードサ
イズの最適化ができる。
【0051】上記により、オブジェクト指向言語を用い
た半導体メモリを有するエンジンコントロールユニット
が提供され、コスト低減に結び付くという効果がある。
【図面の簡単な説明】
【図1】本発明による一実施例のオブジェクト指向言語
処理装置を示す構成図である。
【図2】図1のトランスレータの内部構成図である。
【図3】図2(a)のトランスレータのクラス最適化処理
方法を示すフローチャートである。
【図4】クラス最適化処理前のアプリケーションソース
コードを示す図である。
【図5】各テーブルの構成要素を示す図である。
【図6】各テーブルの一実施例を示す図である。
【図7】クラス最適化処理後のアプリケーションソース
コードを示す図である。
【図8】図2(b)のトランスレータの動的呼出最適化
処理方法を示すフローチャートである。
【図9】動的呼出最適化処理前のアプリケーションソー
スコードを示す図である。
【図10】動的呼出テーブルの構成要素を示す図であ
る。
【図11】動的呼出テーブルの一実施例を示す図であ
る。
【図12】動的呼出最適化処理後のアプリケーションソ
ースコードを示す図である。
【図13】図2(c)のトランスレータの動的生成最適
化処理方法を示すフローチャートである。
【図14】動的生成最適化処理前のアプリケーションソ
ースコードを示す図である。
【図15】動的生成テーブルの構成要素を示す図であ
る。
【図16】動的生成テーブルの一実施例を示す図であ
る。
【図17】動的生成最適化処理後のアプリケーションソ
ースコードを示す図である。
【図18】本発明による一実施例のエンジン制御装置を
示す構成図である。
【符号の説明】
1…各種センサ、2…エンジンコントロールユニット、
3…各種アクチュエータ、4…半導体メモリ、7…マス
タ半導体メモリ、8…オブジェクト指向言語処理装置、
10,11,12…アプリケーションソースコード、2
0…トランスレータ、21…アプリケーションソースコ
ード読み込み部、22…アプリケーションソースコード
解析部、23…クラス登録部、24…データ登録部、2
5…メソッド登録部、30…コンパイラ、31…クラス
テーブル、32…データテーブル、33…メソッドテー
ブル、40…実行ファイル、53…クラス名称、54…
継承リンク、55…メソッドリンク、56…データリン
ク、57…クラス利用有無、63…データ名称、67…
データ利用有無、73…メソッド名称、77…メソッド
利用有無、81…動的呼出登録部、82…動的呼出テー
ブル、83…呼出宣言、84,94…ポインタタイプ、
85,95…代入タイプ、86…代入宣言、87…呼出
関数、91…動的生成登録部、92…動的生成テーブ
ル、93…生成宣言、96…ポインタ呼出、110,120,
130,150…クラス定義、111,121,131…データ定義、
112,122,132,153…メソッド定義、113,123,133…
メソッド実装、140,141,142,160161,162…メインコ
ード、200…クラス生成部、201…アプリケーションソー
スコード変換部。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】オブジェクトの動的オブジェクト生成を静
    的オブジェクト生成に変換し、当該オブジェクト生成を
    全て前記静的オブジェクト生成にて実行し、半導体メモ
    リを処理することを特徴とするオブジェクト指向言語処
    理方法。
  2. 【請求項2】トランスレータとコンパイラとを備え、オ
    ブジェクト指向言語におけるメソッドの実行時決定機能
    と継承機能とを利用し、半導体メモリを処理するオブジ
    ェクト指向言語処理方法であって、 前記トランスレータが、動的なアプリケーションソース
    コードを解析し、該動的なアプリケーションソースコー
    ドに含まれているインスタンスを抽出し、抽出した前記
    インスタンスを所定ルールでインスタンス情報として登
    録管理し、登録管理した該インスタンス情報に基づい
    て、前記動的なアプリケーションソースコードを静的な
    アプリケーションソースコードに変換することによっ
    て、 オブジェクトの動的オブジェクト生成を静的オブジェク
    ト生成に変換することを特徴とするオブジェクト指向言
    語処理方法。
  3. 【請求項3】請求項2において、前記所定ルールとし
    て、クラス,データ,メソッドの3つの動的なテーブル
    を作成することを特徴とするオブジェクト指向言語処理
    方法。
  4. 【請求項4】請求項2において、前記所定ルールとし
    て、動的呼出テーブルを作成することを特徴とするオブ
    ジェクト指向言語処理方法。
  5. 【請求項5】請求項2において、前記所定ルールとし
    て、動的生成テーブルを作成することを特徴とするオブ
    ジェクト指向言語処理方法。
  6. 【請求項6】動的オブジェクト生成に関するアプリケー
    ションソースコードを解析し、該アプリケーションソー
    スコードに含まれているインスタンスを抽出するインス
    タンス抽出手段と、 抽出した前記インスタンスを所定ルールでインスタンス
    情報として登録管理する情報管理手段と、 登録管理した該インスタンス情報に基づいて、前記動的
    オブジェクト生成に関するアプリケーションソースコー
    ドを静的オブジェクト生成に関するアプリケーションソ
    ースコードに変換するコード変換手段とを有する、トラ
    ンスレータを備えたことを特徴とするオブジェクト指向
    言語処理装置。
  7. 【請求項7】請求項1または請求項2記載のオブジェク
    ト指向言語処理方法、あるいは、請求項6記載のオブジ
    ェクト指向言語処理装置にて処理された半導体メモリを
    用いてセンサからの検出信号を処理し、アクチュエータ
    を駆動してエンジンを制御すること特徴とするエンジン
    コントロールユニット。
JP33857295A 1995-12-26 1995-12-26 オブジェクト指向言語処理方法及び処理装置 Pending JPH09179738A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33857295A JPH09179738A (ja) 1995-12-26 1995-12-26 オブジェクト指向言語処理方法及び処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33857295A JPH09179738A (ja) 1995-12-26 1995-12-26 オブジェクト指向言語処理方法及び処理装置

Publications (1)

Publication Number Publication Date
JPH09179738A true JPH09179738A (ja) 1997-07-11

Family

ID=18319440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33857295A Pending JPH09179738A (ja) 1995-12-26 1995-12-26 オブジェクト指向言語処理方法及び処理装置

Country Status (1)

Country Link
JP (1) JPH09179738A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990077425A (ko) * 1998-03-27 1999-10-25 포만 제프리 엘 정적객체인터페이스로부터다형적성향을가능하게하는데이터처리장치및방법과컴퓨터프로그램제품
US6292937B1 (en) 1998-07-22 2001-09-18 Matsushita Electric Industrial Co., Ltd. Program conversion device for translating an object-oriented language source program
CN1103962C (zh) * 1997-08-21 2003-03-26 索尼公司 源代码变换方法
CN102968173A (zh) * 2012-09-28 2013-03-13 北京航空航天大学 一种基于带宽自适应代码迁移的移动设备节能方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1103962C (zh) * 1997-08-21 2003-03-26 索尼公司 源代码变换方法
KR19990077425A (ko) * 1998-03-27 1999-10-25 포만 제프리 엘 정적객체인터페이스로부터다형적성향을가능하게하는데이터처리장치및방법과컴퓨터프로그램제품
US6292937B1 (en) 1998-07-22 2001-09-18 Matsushita Electric Industrial Co., Ltd. Program conversion device for translating an object-oriented language source program
CN102968173A (zh) * 2012-09-28 2013-03-13 北京航空航天大学 一种基于带宽自适应代码迁移的移动设备节能方法

Similar Documents

Publication Publication Date Title
EP4099153B1 (en) Extending a virtual machine instruction set architecture
CN102187313B (zh) 高速缓存运行时生成的代码
KR101795844B1 (ko) 런타임 시스템
US6157960A (en) Technique for programmatically creating distributed object programs
US5230049A (en) Program source code translator
EP3180734B1 (en) Restrictive access control for modular reflection
US10853096B2 (en) Container-based language runtime loading an isolated method
US6363522B1 (en) Method and apparatus for handling exceptions as normal control flow
EP3350696B1 (en) Overriding a migrated method of an updated type
US10310827B2 (en) Flow-based scoping
US20050246677A1 (en) Native method invocation (NMI) custom marshalling stub service
JPH09179738A (ja) オブジェクト指向言語処理方法及び処理装置
CN117724804B (zh) 一种虚拟机指令集的生成方法、装置及设备
JP2002132502A (ja) 言語機能解釈による分散オブジェクト自動生成システム及び方法
CN119847605B (zh) 一种区块链智能合约的指令扩充管理方法
US20240338186A1 (en) Compile-Time Checking For Exhaustive Switch Statements And Expressions
US10346225B2 (en) Synthesized modules for module renaming
KR100703285B1 (ko) 메시르를 이용한 교환 시스템의 동적 서비스를 지원하는방법
Abbas et al. LEARN. NET WITH PROGRAMMING (3-in-1): Covers. NET using C#, Visual Basic ASP. NET
CN121300762A (zh) 一种与人工智能代理交互的软件自描述方法
JP3018783B2 (ja) コンパイル方式
JPH1021087A (ja) コンパイル方法
JP2000311091A (ja) シンボル参照情報のキャッシュ方法ならびに装置