JPH1040107A - セキュリテ・インタープリタにおけるプライベート変数機能呼出しの走行時間最適化のためのシステム及び方法 - Google Patents
セキュリテ・インタープリタにおけるプライベート変数機能呼出しの走行時間最適化のためのシステム及び方法Info
- Publication number
- JPH1040107A JPH1040107A JP8328896A JP32889696A JPH1040107A JP H1040107 A JPH1040107 A JP H1040107A JP 8328896 A JP8328896 A JP 8328896A JP 32889696 A JP32889696 A JP 32889696A JP H1040107 A JPH1040107 A JP H1040107A
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- interpreter
- procedures
- instruction
- private
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Storage Device Security (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 プライベート変数または一定の値をアクセス
する方法の走行時間インタープリテーションの最適化。 【解決手段】 セキュリティ・プログラム・インタープ
リタは、最初に呼出した方法がプライベート変数の値を
アクセスし、プライベート変数の値を変更し、または定
数値をリターンすることかどうかを決定する方法呼出し
の特別検査を実行するときに、呼出された方法のプライ
ベート変数または呼出された方法の記憶された定数を直
接アクセスするように変更される。変更された方法表現
は、セキュリティ違反に標識が付けられることなく実行
されている方法の外側のプライベート変数及び定数をア
クセスする特別な“特権”装填及び記憶命令を用いる。
プログラムの実行が終了したとき、方法の変更された内
部表現は、プログラムが再び実行されるときに該インタ
ープリタが上記方法の新しいワーキング表現を生成する
ように、フラッシュされる。
する方法の走行時間インタープリテーションの最適化。 【解決手段】 セキュリティ・プログラム・インタープ
リタは、最初に呼出した方法がプライベート変数の値を
アクセスし、プライベート変数の値を変更し、または定
数値をリターンすることかどうかを決定する方法呼出し
の特別検査を実行するときに、呼出された方法のプライ
ベート変数または呼出された方法の記憶された定数を直
接アクセスするように変更される。変更された方法表現
は、セキュリティ違反に標識が付けられることなく実行
されている方法の外側のプライベート変数及び定数をア
クセスする特別な“特権”装填及び記憶命令を用いる。
プログラムの実行が終了したとき、方法の変更された内
部表現は、プログラムが再び実行されるときに該インタ
ープリタが上記方法の新しいワーキング表現を生成する
ように、フラッシュされる。
Description
【0001】
【産業上の利用分野】本発明は、インタープリタがセキ
ュアな方法でオブジェクト方法を実行するような一般に
オブジェクト指向型コンピュータ・システムに関し、特
に、その唯一の目的がプライベート変数をアクセスし、
プライベート変数の値を変更し、または一定の値をリタ
ーンすることである方法に対する呼出しを最適化するた
めの改良されたインタープリタに関する。
ュアな方法でオブジェクト方法を実行するような一般に
オブジェクト指向型コンピュータ・システムに関し、特
に、その唯一の目的がプライベート変数をアクセスし、
プライベート変数の値を変更し、または一定の値をリタ
ーンすることである方法に対する呼出しを最適化するた
めの改良されたインタープリタに関する。
【0002】
【従来の技術】オブジェクト指向型プログラミング言語
では、全てのオブジェクトは、ときどきいオブジェクト
・クラスと呼ばれる、特定の“クラス”に属する。オブ
ジェクトのクラスは、どの変数をオブジェクトが有する
か及びどの動作(“方法”)がオブジェクト上で実行さ
れうるかを示す。ある変数(即ち、オブジェクトにおけ
る)は、“プライベート”とマークされる。このマーキ
ングは、変数がオブジェクトと同じクラスに属する方法
によってのみアクセスまたは変更されうるということを
示す。それらは、他のクラスから変更またはアクセスさ
れないであろう。ある一定のオブジェクトのクラスがそ
の唯一の目的がプライベート変数の値をアクセスし、プ
ライベート変数の値を変更し、またはある一定の値をリ
ターンすることである方法を有することは、まれではな
い。そのような方法を生成することによって、クラスの
インプリメンタは、クラスのインプリメンテーションの
詳細を隠すことができるほうがよい。それは、また、そ
れらのコードをリコンパイルすることをクラスの全ての
ユーザに要求することなく、クラスを再インプリメント
するためのより大きな自由度をインプリメンタに与え
る。
では、全てのオブジェクトは、ときどきいオブジェクト
・クラスと呼ばれる、特定の“クラス”に属する。オブ
ジェクトのクラスは、どの変数をオブジェクトが有する
か及びどの動作(“方法”)がオブジェクト上で実行さ
れうるかを示す。ある変数(即ち、オブジェクトにおけ
る)は、“プライベート”とマークされる。このマーキ
ングは、変数がオブジェクトと同じクラスに属する方法
によってのみアクセスまたは変更されうるということを
示す。それらは、他のクラスから変更またはアクセスさ
れないであろう。ある一定のオブジェクトのクラスがそ
の唯一の目的がプライベート変数の値をアクセスし、プ
ライベート変数の値を変更し、またはある一定の値をリ
ターンすることである方法を有することは、まれではな
い。そのような方法を生成することによって、クラスの
インプリメンタは、クラスのインプリメンテーションの
詳細を隠すことができるほうがよい。それは、また、そ
れらのコードをリコンパイルすることをクラスの全ての
ユーザに要求することなく、クラスを再インプリメント
するためのより大きな自由度をインプリメンタに与え
る。
【0003】
【発明が解決しようとする課題】しかしながら、方法呼
出しは、しばしば変数アクセスよりもかなり高価である
(即ち、より多くのCPU時間を取る)。同様に、方法
呼出しは、ある一定の値をアクセスすることよりも高価
である。ある最適化コンパイラは、適切なときに、簡単
な変数アクセスまたはときどき“イン−ライニング”と
呼ばれる変更に方法呼出しを自動的に変換する。しかし
ながら、このスキームは、二つの理由でセキュア環境内
で受入れ不可能である: 1)合成最適化コード内で、それは、最適化コードが別
のクラスのオブジェクトのプライベート変数を直接用い
ているように思われる。しかしながら、セキュア走行時
間システムは、これに気付きかつセキュリティ違反のフ
ラグを立てる。特に、セキュア走行時間システムは、通
常、方法に別のクラスのオブジェクトの内側のプライベ
ート変数をアクセスさせてはならない;そして、 2)オリジナル・クラスの著者は、オブジェクト・クラ
スの“古い”定義に対して(即ち、プライベート変数を
アクセスする方法の古いバージョンで)だれかが最適化
コードをコンパイルした以上の可能性が存在するならば
インプリメンテーションを変更するための能力(機能)
を失う。
出しは、しばしば変数アクセスよりもかなり高価である
(即ち、より多くのCPU時間を取る)。同様に、方法
呼出しは、ある一定の値をアクセスすることよりも高価
である。ある最適化コンパイラは、適切なときに、簡単
な変数アクセスまたはときどき“イン−ライニング”と
呼ばれる変更に方法呼出しを自動的に変換する。しかし
ながら、このスキームは、二つの理由でセキュア環境内
で受入れ不可能である: 1)合成最適化コード内で、それは、最適化コードが別
のクラスのオブジェクトのプライベート変数を直接用い
ているように思われる。しかしながら、セキュア走行時
間システムは、これに気付きかつセキュリティ違反のフ
ラグを立てる。特に、セキュア走行時間システムは、通
常、方法に別のクラスのオブジェクトの内側のプライベ
ート変数をアクセスさせてはならない;そして、 2)オリジナル・クラスの著者は、オブジェクト・クラ
スの“古い”定義に対して(即ち、プライベート変数を
アクセスする方法の古いバージョンで)だれかが最適化
コードをコンパイルした以上の可能性が存在するならば
インプリメンテーションを変更するための能力(機能)
を失う。
【0004】本発明の目的は、その唯一の目的が、永久
的に改訂されたプログラムを生成することなく、プライ
ベート変数または一定の値をアクセスすることである他
の方法を呼出す方法の走行時間インタープリテーション
(翻訳)を最適化することである。本発明の別の目的
は、その唯一の目的が、別のクラスのオブジェクトのプ
ライベート変数をアクセスすることから一つのクラスの
方法を防ぐことに対するインタープリタの通常のセキュ
リティ供給を不能にすることなく、セキュリティ違反が
回避されるような方法でプライベート変数または一定の
値をアクセスすることである方法の効率的実行のために
走行時間インタープリタを最適化することである。
的に改訂されたプログラムを生成することなく、プライ
ベート変数または一定の値をアクセスすることである他
の方法を呼出す方法の走行時間インタープリテーション
(翻訳)を最適化することである。本発明の別の目的
は、その唯一の目的が、別のクラスのオブジェクトのプ
ライベート変数をアクセスすることから一つのクラスの
方法を防ぐことに対するインタープリタの通常のセキュ
リティ供給を不能にすることなく、セキュリティ違反が
回避されるような方法でプライベート変数または一定の
値をアクセスすることである方法の効率的実行のために
走行時間インタープリタを最適化することである。
【0005】
【課題を解決するための手段】本発明の上記目的は、複
数のオブジェクト及び複数の手順を記憶するメモリであ
り、各オブジェクトが関連オブジェクト・クラスの場合
を含みかつ各手順が対応オブジェクト・クラスに属し、
複数の手順は、各簡単な手順によって実行される機能全
体が、(A)プライベート変数が記憶されかつ簡単な手
順が属するオブジェクト・クラスのオブジェクトに対し
てプライベートである、プライベート変数の値をリター
ンし、(B)プライベート変数の中に指定した値を記憶
し、かつ(C)一定値をリターンすることからなるグル
ープから選択されるような簡単な手順を含んでいる、メ
モリ;及び手順の選択したものを実行するセキュリティ
・プログラム・インタープリタであり、インタープリタ
は、実行されるべき手順の第1のもののワーキング表現
を生成するための装填副手順と、手順の他のものによっ
て呼出されたときに簡単な手順の実行を最適化するため
の最適化副手順とを含み、最適化副手順は、インタープ
リタが手順の第2のものに対する第1の手順における手
順呼出しを処理しているときに、第2の手順が簡単な手
順の一つであるか否かを決定し、かつ決定が肯定的であ
るときに、第1の手順のワーキング表現の手順呼出しを
直接アクセス命令で置換し、直接アクセス命令は、
(A)プライベート変数の値を直接リターンする第1の
命令、(B)指定した値をプライベート変数に直接記憶
する第2の命令、及び(C)一定値を直接記憶する第3
の命令からなるグループから選択される、セキュリティ
・プログラム・インタープリタ;を備えているコンピュ
ータ・システムによって達成される。
数のオブジェクト及び複数の手順を記憶するメモリであ
り、各オブジェクトが関連オブジェクト・クラスの場合
を含みかつ各手順が対応オブジェクト・クラスに属し、
複数の手順は、各簡単な手順によって実行される機能全
体が、(A)プライベート変数が記憶されかつ簡単な手
順が属するオブジェクト・クラスのオブジェクトに対し
てプライベートである、プライベート変数の値をリター
ンし、(B)プライベート変数の中に指定した値を記憶
し、かつ(C)一定値をリターンすることからなるグル
ープから選択されるような簡単な手順を含んでいる、メ
モリ;及び手順の選択したものを実行するセキュリティ
・プログラム・インタープリタであり、インタープリタ
は、実行されるべき手順の第1のもののワーキング表現
を生成するための装填副手順と、手順の他のものによっ
て呼出されたときに簡単な手順の実行を最適化するため
の最適化副手順とを含み、最適化副手順は、インタープ
リタが手順の第2のものに対する第1の手順における手
順呼出しを処理しているときに、第2の手順が簡単な手
順の一つであるか否かを決定し、かつ決定が肯定的であ
るときに、第1の手順のワーキング表現の手順呼出しを
直接アクセス命令で置換し、直接アクセス命令は、
(A)プライベート変数の値を直接リターンする第1の
命令、(B)指定した値をプライベート変数に直接記憶
する第2の命令、及び(C)一定値を直接記憶する第3
の命令からなるグループから選択される、セキュリティ
・プログラム・インタープリタ;を備えているコンピュ
ータ・システムによって達成される。
【0006】本発明のコンピュータ・システムでは、イ
ンタープリタは、標準命令が存在するような手順に対す
るオブジェクト・クラスのオブジェクトに記憶されてい
ないプライベート変数をアクセスすることから、変数の
値をオペランド・スタックに装填しかつオペランド・ス
タック上の値を変数に記憶する標準命令を防ぐためのセ
キュリティ命令を含み;かつ第1及び第2の命令は、第
1の手順及び第2の手順が異なる対応オブジェクト・ク
ラスに属するときでもセキュリティ命令によってセキュ
リティ違反に標識を付けられることなくプライベート変
数をアクセスすることができる特定目的命令であっても
よい。本発明のコンピュータ・システムでは、インター
プリタは、第1の手順が再び実行されるときにインター
プリタが第1の手順の新しいワーキング表現を生成する
ように、第1の手順の実行が終了するときに手順インタ
ープリタから第1の手順のワーキング表現をフラッシュ
するための命令を含んでもよい。
ンタープリタは、標準命令が存在するような手順に対す
るオブジェクト・クラスのオブジェクトに記憶されてい
ないプライベート変数をアクセスすることから、変数の
値をオペランド・スタックに装填しかつオペランド・ス
タック上の値を変数に記憶する標準命令を防ぐためのセ
キュリティ命令を含み;かつ第1及び第2の命令は、第
1の手順及び第2の手順が異なる対応オブジェクト・ク
ラスに属するときでもセキュリティ命令によってセキュ
リティ違反に標識を付けられることなくプライベート変
数をアクセスすることができる特定目的命令であっても
よい。本発明のコンピュータ・システムでは、インター
プリタは、第1の手順が再び実行されるときにインター
プリタが第1の手順の新しいワーキング表現を生成する
ように、第1の手順の実行が終了するときに手順インタ
ープリタから第1の手順のワーキング表現をフラッシュ
するための命令を含んでもよい。
【0007】また、本発明の上記目的は、コンピュータ
・システムを動作する方法であって、コンピュータ・メ
モリに複数のオブジェクト及び複数の手順を記憶し、各
オブジェクトが関連オブジェクト・クラスの場合を含み
かつ各手順が対応オブジェクト・クラスに属し、複数の
手順は、各簡単な手順によって実行される機能全体が、
(A)プライベート変数が記憶されかつ簡単な手順が属
するオブジェクト・クラスのオブジェクトに対してプラ
イベートである、プライベート変数の値をリターンし、
(B)プライベート変数の中に指定した値を記憶し、か
つ(C)一定値をリターンすることからなるグループか
ら選択されるような簡単な手順を含んでおり;及びセキ
ュリティ・プログラム・インタープリタの制御下で、実
行されるべき手順の第1のもののワーキング表現を生成
すること、及び第1の手順によって呼出されたときに簡
単な手順の実行を最適化することを含んでいる、手順の
選択したものを実行し、最適化する段階は、インタープ
リタが手順の第2のものに対する第1の手順における手
順呼出しを処理しているときに、第2の手順が簡単な手
順の一つであるか否かを決定し、かつ決定が肯定的であ
るときに、第1の手順のワーキング表現の手順呼出しを
直接アクセス命令で置換し、直接アクセス命令は、
(A)プライベート変数の値を直接リターンする第1の
命令、(B)指定した値をプライベート変数に直接記憶
する第2の命令、及び(C)一定値を直接記憶する第3
の命令からなるグループから選択される方法によって達
成される。
・システムを動作する方法であって、コンピュータ・メ
モリに複数のオブジェクト及び複数の手順を記憶し、各
オブジェクトが関連オブジェクト・クラスの場合を含み
かつ各手順が対応オブジェクト・クラスに属し、複数の
手順は、各簡単な手順によって実行される機能全体が、
(A)プライベート変数が記憶されかつ簡単な手順が属
するオブジェクト・クラスのオブジェクトに対してプラ
イベートである、プライベート変数の値をリターンし、
(B)プライベート変数の中に指定した値を記憶し、か
つ(C)一定値をリターンすることからなるグループか
ら選択されるような簡単な手順を含んでおり;及びセキ
ュリティ・プログラム・インタープリタの制御下で、実
行されるべき手順の第1のもののワーキング表現を生成
すること、及び第1の手順によって呼出されたときに簡
単な手順の実行を最適化することを含んでいる、手順の
選択したものを実行し、最適化する段階は、インタープ
リタが手順の第2のものに対する第1の手順における手
順呼出しを処理しているときに、第2の手順が簡単な手
順の一つであるか否かを決定し、かつ決定が肯定的であ
るときに、第1の手順のワーキング表現の手順呼出しを
直接アクセス命令で置換し、直接アクセス命令は、
(A)プライベート変数の値を直接リターンする第1の
命令、(B)指定した値をプライベート変数に直接記憶
する第2の命令、及び(C)一定値を直接記憶する第3
の命令からなるグループから選択される方法によって達
成される。
【0008】本発明の方法では、第1及び第2の命令
は、特定目的命令であり、かつ方法は、標準命令が存在
する手順の外側のプライベート変数をアクセスすること
から、変数の値をオペランド・スタックに装填しかつオ
ペランド・スタック上の値を変数に記憶する標準命令を
防ぎ、かつ標準命令の実行が標準命令が存在するような
手順に対するオブジェクト・クラスのオブジェクトに記
憶されていないプライベート変数をアクセスすることを
必要とするときにセキュリティ違反に標識を付け;かつ
第1の手順及び第2の手順が異なる対応オブジェクト・
クラスに属するときでもセキュリティ違反に標識を付け
られることなく第1の手順及び第2の手順にプライベー
ト変数をアクセスさせることができる段階を具備するよ
うに構成してもよい。
は、特定目的命令であり、かつ方法は、標準命令が存在
する手順の外側のプライベート変数をアクセスすること
から、変数の値をオペランド・スタックに装填しかつオ
ペランド・スタック上の値を変数に記憶する標準命令を
防ぎ、かつ標準命令の実行が標準命令が存在するような
手順に対するオブジェクト・クラスのオブジェクトに記
憶されていないプライベート変数をアクセスすることを
必要とするときにセキュリティ違反に標識を付け;かつ
第1の手順及び第2の手順が異なる対応オブジェクト・
クラスに属するときでもセキュリティ違反に標識を付け
られることなく第1の手順及び第2の手順にプライベー
ト変数をアクセスさせることができる段階を具備するよ
うに構成してもよい。
【0009】本発明の方法では、インタープリタは、第
1の手順が再び実行されるときにインタープリタが第1
の手順の新しいワーキング表現を生成するように、第1
の手順の実行が終了するときにインタープリタから第1
の手順のワーキング表現をフラッシュすることを含むよ
うにしてもよい。
1の手順が再び実行されるときにインタープリタが第1
の手順の新しいワーキング表現を生成するように、第1
の手順の実行が終了するときにインタープリタから第1
の手順のワーキング表現をフラッシュすることを含むよ
うにしてもよい。
【0010】更に、本発明の上記目的は、データ処理シ
ステム上で実行されるプログラムによるアクセスのため
のデータを記憶するメモリであって、メモリに記憶され
る複数のオブジェクト及び複数の手順であり、各オブジ
ェクトが関連オブジェクト・クラスの場合を含みかつ各
手順が対応オブジェクト・クラスに属し、複数の手順
は、各簡単な手順によって実行される機能全体が、
(A)プライベート変数が記憶されかつ簡単な手順が属
するオブジェクト・クラスのオブジェクトに対してプラ
イベートである、プライベート変数の値をリターンし、
(B)プライベート変数の中に指定した値を記憶し、か
つ(C)一定値をリターンすることからなるグループか
ら選択されるような簡単な手順を含んでいる、複数のオ
ブジェクト及び複数の手順;及び手順の選択したものを
実行するセキュリティ・プログラム・インタープリタで
あり、インタープリタは、実行されるべき手順の第1の
もののワーキング表現を生成するための装填副手順と、
手順の他のものによって呼出されたときに簡単な手順の
実行を最適化するための最適化副手順とを含み、最適化
副手順は、インタープリタが手順の第2のものに対する
第1の手順における手順呼出しを処理しているときに、
第2の手順が簡単な手順の一つであるか否かを決定し、
かつ決定が肯定的であるときに、第1の手順のワーキン
グ表現の手順呼出しを直接アクセス命令で置換し、直接
アクセス命令は、(A)プライベート変数の値を直接リ
ターンする第1の命令、(B)指定した値をプライベー
ト変数に直接記憶する第2の命令、及び(C)一定値を
直接記憶する第3の命令からなるグループから選択され
る、セキュリティ・プログラム・インタープリタ;を備
えているメモリによって達成される。
ステム上で実行されるプログラムによるアクセスのため
のデータを記憶するメモリであって、メモリに記憶され
る複数のオブジェクト及び複数の手順であり、各オブジ
ェクトが関連オブジェクト・クラスの場合を含みかつ各
手順が対応オブジェクト・クラスに属し、複数の手順
は、各簡単な手順によって実行される機能全体が、
(A)プライベート変数が記憶されかつ簡単な手順が属
するオブジェクト・クラスのオブジェクトに対してプラ
イベートである、プライベート変数の値をリターンし、
(B)プライベート変数の中に指定した値を記憶し、か
つ(C)一定値をリターンすることからなるグループか
ら選択されるような簡単な手順を含んでいる、複数のオ
ブジェクト及び複数の手順;及び手順の選択したものを
実行するセキュリティ・プログラム・インタープリタで
あり、インタープリタは、実行されるべき手順の第1の
もののワーキング表現を生成するための装填副手順と、
手順の他のものによって呼出されたときに簡単な手順の
実行を最適化するための最適化副手順とを含み、最適化
副手順は、インタープリタが手順の第2のものに対する
第1の手順における手順呼出しを処理しているときに、
第2の手順が簡単な手順の一つであるか否かを決定し、
かつ決定が肯定的であるときに、第1の手順のワーキン
グ表現の手順呼出しを直接アクセス命令で置換し、直接
アクセス命令は、(A)プライベート変数の値を直接リ
ターンする第1の命令、(B)指定した値をプライベー
ト変数に直接記憶する第2の命令、及び(C)一定値を
直接記憶する第3の命令からなるグループから選択され
る、セキュリティ・プログラム・インタープリタ;を備
えているメモリによって達成される。
【0011】本発明のメモリでは、インタープリタは、
標準命令が存在するような手順に対するオブジェクト・
クラスのオブジェクトに記憶されていないプライベート
変数をアクセスすることから、変数の値をオペランド・
スタックに装填しかつオペランド・スタック上の値を変
数に記憶する標準命令を防ぐためのセキュリティ命令を
含み;かつ第1及び第2の命令は、第1の手順及び第2
の手順が異なる対応オブジェクト・クラスに属するとき
でもセキュリティ命令によってセキュリティ違反に標識
を付けられることなくプライベート変数をアクセスする
ことができる特定目的命令であってもよい。本発明のメ
モリでは、インタープリタは、第1の手順が再び実行さ
れるときにインタープリタが第1の手順の新しいワーキ
ング表現を生成するように、第1の手順の実行が終了す
るときに手順インタープリタから第1の手順のワーキン
グ表現をフラッシュするための命令を含むようにしても
よい。
標準命令が存在するような手順に対するオブジェクト・
クラスのオブジェクトに記憶されていないプライベート
変数をアクセスすることから、変数の値をオペランド・
スタックに装填しかつオペランド・スタック上の値を変
数に記憶する標準命令を防ぐためのセキュリティ命令を
含み;かつ第1及び第2の命令は、第1の手順及び第2
の手順が異なる対応オブジェクト・クラスに属するとき
でもセキュリティ命令によってセキュリティ違反に標識
を付けられることなくプライベート変数をアクセスする
ことができる特定目的命令であってもよい。本発明のメ
モリでは、インタープリタは、第1の手順が再び実行さ
れるときにインタープリタが第1の手順の新しいワーキ
ング表現を生成するように、第1の手順の実行が終了す
るときに手順インタープリタから第1の手順のワーキン
グ表現をフラッシュするための命令を含むようにしても
よい。
【0012】
【作用】纏めると、本発明は、多重クラスの複数のオブ
ジェクト及び複数の手順を記憶するメモリを有している
コンピュータ・システムのオブジェクト指向型プログラ
ムをインタープリト(翻訳)するプログラム・インター
プリタである。好ましい実施例では、セキュア・プログ
ラム・インタープリタは、初めてそれが呼出された方法
の唯一の目的が呼出された方法のクラスの場合のプライ
ベート変数の値をアクセスし、呼出された方法のクラス
の場合のプライベート変数の値を変更し、または一定の
値をリターンすることであるかどうかを決定するための
方法呼出しを実行するときに特別の検査(チェック)を
実行する。これがそのような場合であるときに、実行さ
れている方法のインタープリタの内部表現は、呼出され
た方法のクラスの場合のプライベート変数を直接アクセ
スするか、または呼出された方法の記憶された定数を直
接アクセスするように変更される。
ジェクト及び複数の手順を記憶するメモリを有している
コンピュータ・システムのオブジェクト指向型プログラ
ムをインタープリト(翻訳)するプログラム・インター
プリタである。好ましい実施例では、セキュア・プログ
ラム・インタープリタは、初めてそれが呼出された方法
の唯一の目的が呼出された方法のクラスの場合のプライ
ベート変数の値をアクセスし、呼出された方法のクラス
の場合のプライベート変数の値を変更し、または一定の
値をリターンすることであるかどうかを決定するための
方法呼出しを実行するときに特別の検査(チェック)を
実行する。これがそのような場合であるときに、実行さ
れている方法のインタープリタの内部表現は、呼出され
た方法のクラスの場合のプライベート変数を直接アクセ
スするか、または呼出された方法の記憶された定数を直
接アクセスするように変更される。
【0013】プログラム・インタープリタによって内部
的に記憶された、変更された方法表現は、他のクラスの
オブジェクトの場合におけるプライベート変数及び実行
されている方法の外側の定数をアクセスすることが許容
される、通常のソース・コード・プログラムでは利用可
能ではない、特別の“特権”装填及び記憶命令を用い
る。方法の変更された部分が実行されるとき、プライベ
ート変数及び定数は、特権装填及び記憶命令を用いて実
行した方法によって直接アクセスされ、その使用は、プ
ログラム・インタープリタによるセキュリティ違反のフ
ラギング(flagging)(フラグを立てること)を回避す
る。更に、プログラム全体の実行が終了するときに、方
法の変更された内部表現は、フラッシュされる。結果と
して、実行した方法の変更は、短命である。呼出された
方法のいずれかが、プライベート変数または定数に割り
当てられた値を改訂し、またはもはやプライベート変数
を簡単にアクセスしないがその代わり値を計算する方法
を有するように呼出している方法を実行するプログラム
のユーザ間で変更されたならば、呼出された方法の改訂
されたバージョンは、そのような後続する実行の間に用
いられ、それにより関連オブジェクト・クラスを変更す
るための著者の能力(機能)を保存する。
的に記憶された、変更された方法表現は、他のクラスの
オブジェクトの場合におけるプライベート変数及び実行
されている方法の外側の定数をアクセスすることが許容
される、通常のソース・コード・プログラムでは利用可
能ではない、特別の“特権”装填及び記憶命令を用い
る。方法の変更された部分が実行されるとき、プライベ
ート変数及び定数は、特権装填及び記憶命令を用いて実
行した方法によって直接アクセスされ、その使用は、プ
ログラム・インタープリタによるセキュリティ違反のフ
ラギング(flagging)(フラグを立てること)を回避す
る。更に、プログラム全体の実行が終了するときに、方
法の変更された内部表現は、フラッシュされる。結果と
して、実行した方法の変更は、短命である。呼出された
方法のいずれかが、プライベート変数または定数に割り
当てられた値を改訂し、またはもはやプライベート変数
を簡単にアクセスしないがその代わり値を計算する方法
を有するように呼出している方法を実行するプログラム
のユーザ間で変更されたならば、呼出された方法の改訂
されたバージョンは、そのような後続する実行の間に用
いられ、それにより関連オブジェクト・クラスを変更す
るための著者の能力(機能)を保存する。
【0014】本発明の更なる目的及び特徴は、添付した
図面を参照することにより以下の詳細な説明及び特許請
求の範囲からより容易に理解されるであろう。
図面を参照することにより以下の詳細な説明及び特許請
求の範囲からより容易に理解されるであろう。
【0015】
【実施例】図1を参照すると、多重クライアント・コン
ピュータ102及び多重サーバ・コンピュータ104を
有している分散型コンピュータ・システム100が示さ
れている。好ましい実施例では、各クライアント・コン
ピュータ102は、他の型の通信接続が用いられうるけ
れども、インターネット103を介してサーバ104に
接続される。ほとんどのクライアント・コンピュータ
は、サン・ワークステーション、IBMコンパチブル・
コンピュータ及びマッキントッシュ・コンピュータのよ
うな、デスクトップ・コンピュータであるが、実質的に
あらゆる型のコンピュータがクライアント・コンピュー
タでありうる。好ましい実施例では、各クライアント・
コンピュータは、CPU105、通信インターフェイス
106、ユーザ・インターフェイス107、及びメモリ
108を含む。メモリ108は、次のものを記憶する:
ピュータ102及び多重サーバ・コンピュータ104を
有している分散型コンピュータ・システム100が示さ
れている。好ましい実施例では、各クライアント・コン
ピュータ102は、他の型の通信接続が用いられうるけ
れども、インターネット103を介してサーバ104に
接続される。ほとんどのクライアント・コンピュータ
は、サン・ワークステーション、IBMコンパチブル・
コンピュータ及びマッキントッシュ・コンピュータのよ
うな、デスクトップ・コンピュータであるが、実質的に
あらゆる型のコンピュータがクライアント・コンピュー
タでありうる。好ましい実施例では、各クライアント・
コンピュータは、CPU105、通信インターフェイス
106、ユーザ・インターフェイス107、及びメモリ
108を含む。メモリ108は、次のものを記憶する:
【0016】オペレーティング・システム109;イン
ターネット通信マネージャ・プログラム110;指定し
たプログラムがある所定の保全性基準を満足するか否か
を確認するためのバイトコード・プログラム・ベリファ
イヤ112;アプリケーション・プログラムを実行する
ためのバイトコード・プログラム・インタープリタ11
4;オブジェクト・クラスをユーザのアドレス空間に装
填しかつ各装填されたオブジェクト・クラスに関連付け
られた方法の保全性を確認するためにバイトコード・プ
ログラム・ベリファイヤを用いる、クラス・ローダ11
6;ユーザのコンピュータ102による使用中及び/又
は使用のために利用可能なオブジェクト・クラス122
を局所的に記憶するための、少なくとも一つのクラス・
レポジトリ120;オブジェクト・レポジトリ120に
記憶されたオブジェクト・クラスのオブジェクトの例で
ある、オブジェクト126を記憶するための少なくとも
一つのオブジェクト・レポジトリ124。
ターネット通信マネージャ・プログラム110;指定し
たプログラムがある所定の保全性基準を満足するか否か
を確認するためのバイトコード・プログラム・ベリファ
イヤ112;アプリケーション・プログラムを実行する
ためのバイトコード・プログラム・インタープリタ11
4;オブジェクト・クラスをユーザのアドレス空間に装
填しかつ各装填されたオブジェクト・クラスに関連付け
られた方法の保全性を確認するためにバイトコード・プ
ログラム・ベリファイヤを用いる、クラス・ローダ11
6;ユーザのコンピュータ102による使用中及び/又
は使用のために利用可能なオブジェクト・クラス122
を局所的に記憶するための、少なくとも一つのクラス・
レポジトリ120;オブジェクト・レポジトリ120に
記憶されたオブジェクト・クラスのオブジェクトの例で
ある、オブジェクト126を記憶するための少なくとも
一つのオブジェクト・レポジトリ124。
【0017】好ましい実施例では、オペレーティング・
システム109は、各画定されたアドレス空間内の実行
の多重スレッドを支持するオブジェクト指向型マルチタ
スキング・オペレーティング・システムである。しかし
ながら、本発明は、オペレーティング・システムを持た
ないコンピュータ・システムを含む、他の型のコンピュ
ータ・システムの用いることができる。クラス・ローダ
116は、適切なオブジェクト・クラスのオブジェクト
が生成されることを必要とする手順の実行をユーザが最
初に開始するときに一般に呼び出される。クラス・ロー
ダ116は、適切なオブジェクト・クラスに装填しかつ
装填されたオブジェクト・クラスの全てのバイトコード
・プログラムの保全性を確認するためにバイトコード・
プログラム・ベリファイヤ112を呼出す。全ての方法
が成功裏に確認されたならば、オブジェクト・クラスの
オブジェクト・インスタンスが生成され、かつ方法と一
般的に呼ばれる、ユーザ要求手順を実行するためにバイ
トコード・インタープリタ114が呼出される。ユーザ
によって要求された手順がバイトコード・プログラムで
ないならばかつ非バイトコード・プログラムの実行が許
容されるならば(本発明の範疇外です)、プログラム
は、コンパイルされたプログラム・エクスキュータ(図
示省略)によって実行される。
システム109は、各画定されたアドレス空間内の実行
の多重スレッドを支持するオブジェクト指向型マルチタ
スキング・オペレーティング・システムである。しかし
ながら、本発明は、オペレーティング・システムを持た
ないコンピュータ・システムを含む、他の型のコンピュ
ータ・システムの用いることができる。クラス・ローダ
116は、適切なオブジェクト・クラスのオブジェクト
が生成されることを必要とする手順の実行をユーザが最
初に開始するときに一般に呼び出される。クラス・ロー
ダ116は、適切なオブジェクト・クラスに装填しかつ
装填されたオブジェクト・クラスの全てのバイトコード
・プログラムの保全性を確認するためにバイトコード・
プログラム・ベリファイヤ112を呼出す。全ての方法
が成功裏に確認されたならば、オブジェクト・クラスの
オブジェクト・インスタンスが生成され、かつ方法と一
般的に呼ばれる、ユーザ要求手順を実行するためにバイ
トコード・インタープリタ114が呼出される。ユーザ
によって要求された手順がバイトコード・プログラムで
ないならばかつ非バイトコード・プログラムの実行が許
容されるならば(本発明の範疇外です)、プログラム
は、コンパイルされたプログラム・エクスキュータ(図
示省略)によって実行される。
【0018】また、クラス・ローダは、実行しているバ
イトコード・プログラムが、ユーザのアドレス空間の中
にまだ装填されていないオブジェクト・クラスに対する
オブジェクト方法への呼出しに出会う(直面する)とき
にはいつでも呼出される。もう一度クラス・ローダ11
6が適切なオブジェクト・クラスに装填されかつ装填さ
れたオブジェクト・クラスの全てのバイトコード・プロ
グラムの保全性を確認するためにバイトコード・プログ
ラム・ベリファイヤ112を呼出す。多くの状況では、
オブジェクト・クラスは、図1に示したサーバ104の
一つのような、遠隔的に配置されたコンピュータから装
填される。装填されたオブジェクト・クラスの全ての方
法が成功裏に確認されたならば、オブジェクト・クラス
のオブジェクト・インスタンスが生成され、かつバイト
コード・インタープリタ114は、呼出したオブジェク
ト方法を実行するために呼出される。
イトコード・プログラムが、ユーザのアドレス空間の中
にまだ装填されていないオブジェクト・クラスに対する
オブジェクト方法への呼出しに出会う(直面する)とき
にはいつでも呼出される。もう一度クラス・ローダ11
6が適切なオブジェクト・クラスに装填されかつ装填さ
れたオブジェクト・クラスの全てのバイトコード・プロ
グラムの保全性を確認するためにバイトコード・プログ
ラム・ベリファイヤ112を呼出す。多くの状況では、
オブジェクト・クラスは、図1に示したサーバ104の
一つのような、遠隔的に配置されたコンピュータから装
填される。装填されたオブジェクト・クラスの全ての方
法が成功裏に確認されたならば、オブジェクト・クラス
のオブジェクト・インスタンスが生成され、かつバイト
コード・インタープリタ114は、呼出したオブジェク
ト方法を実行するために呼出される。
【0019】図1に示すように、バイトコード・プログ
ラム・インタープリタ114は、全ての現在装填された
方法のワーキング表現が一時的に記憶されるようなワー
ク・アレー130を含む。ワーキング表現は、インター
プリタに対して内部的に記憶されかつ以下に詳述するよ
うに、実行スピードを最適化するために動的に変更され
うる。好ましい実施例では、バイトコード・プログラム
・インタープリタ114は、また、別のクラスの場合で
あるオブジェクトのプライベート変数を直接アクセスす
ることから一つの方法における標準装填及び記憶命令を
防ぐためのセキュリティ命令を含んでいる、プログラム
実行要求事項をセキュアすることに相反する多数のプロ
グラム実施を防ぐためのセキュリティ手順132または
命令を含む。そのような命令の実行がプログラム・イン
タープリタによって試みられるときに、それは、セキュ
リティ違反として命令にフラグを立てかつ命令を含む方
法の実行を中止する。
ラム・インタープリタ114は、全ての現在装填された
方法のワーキング表現が一時的に記憶されるようなワー
ク・アレー130を含む。ワーキング表現は、インター
プリタに対して内部的に記憶されかつ以下に詳述するよ
うに、実行スピードを最適化するために動的に変更され
うる。好ましい実施例では、バイトコード・プログラム
・インタープリタ114は、また、別のクラスの場合で
あるオブジェクトのプライベート変数を直接アクセスす
ることから一つの方法における標準装填及び記憶命令を
防ぐためのセキュリティ命令を含んでいる、プログラム
実行要求事項をセキュアすることに相反する多数のプロ
グラム実施を防ぐためのセキュリティ手順132または
命令を含む。そのような命令の実行がプログラム・イン
タープリタによって試みられるときに、それは、セキュ
リティ違反として命令にフラグを立てかつ命令を含む方
法の実行を中止する。
【0020】バイトコード・プログラム・インタープリ
タ114は、ある一定の型の簡単な方法に対する手順呼
出しを、関連プライベート変数を直接アクセスまたは変
更するかまたは関連定数値を直接装填する特別命令で置
換するための機能呼出し置換手順134を更に含む。
タ114は、ある一定の型の簡単な方法に対する手順呼
出しを、関連プライベート変数を直接アクセスまたは変
更するかまたは関連定数値を直接装填する特別命令で置
換するための機能呼出し置換手順134を更に含む。
【0021】オブジェクトに対するデータ構造 図2は、本発明の好ましい実施例のオブジェクトに対す
るデータ構造200を示す。オブジェクト・クラスAの
オブジェクトは、オブジェクトに対する方法へのポイン
タ204及びオブジェクトに対するデータ・アレー20
8へのポインタ206を含むオブジェクト・ハンドル2
02を有する。オブジェクトの方法へのポインタ204
は、実際には、関連オブジェクト・クラスの方法への間
接ポインタである。より特定的には、方法ポインタ20
4は、オブジェクトのオブジェクト・クラスに対する仮
想機能表(Virtual Function Table)(VFT)210を
指し示す。各オブジェクト・クラスは、オブジェクト・
クラスの方法214のそれぞれへのポインタ212を含
むVFT210を有する。VFT210は、また、オブ
ジェクト・クラスに対するクラス・ディスクリプタ21
8を呼出したデータ構造へのポインタ216を含む。ク
ラス・ディスクリプタ218は、ここでは関係がアイテ
ムに加えて、(データ・アレー208のどこに変数の値
が記憶されるかを示している)オブジェクト・クラスの
方法によって用いられる変数のそれぞれに対するデータ
・アレー・オフセット220を含む。更に、各データ・
オフセット・アイテム220に対してクラス・ディスク
リプタは、変数の識別(例えば、変数の名前)プラス、
変数のデータ型(例えば、整数)のインディケータ、及
び変数がプライベート変数であるか否かを示すインディ
ケータを含む。ある実施例ではオブジェクトの構造は、
図2に示したよりも複雑であるが、それら付加構造構成
要素は、この文書における説明には無関係である。
るデータ構造200を示す。オブジェクト・クラスAの
オブジェクトは、オブジェクトに対する方法へのポイン
タ204及びオブジェクトに対するデータ・アレー20
8へのポインタ206を含むオブジェクト・ハンドル2
02を有する。オブジェクトの方法へのポインタ204
は、実際には、関連オブジェクト・クラスの方法への間
接ポインタである。より特定的には、方法ポインタ20
4は、オブジェクトのオブジェクト・クラスに対する仮
想機能表(Virtual Function Table)(VFT)210を
指し示す。各オブジェクト・クラスは、オブジェクト・
クラスの方法214のそれぞれへのポインタ212を含
むVFT210を有する。VFT210は、また、オブ
ジェクト・クラスに対するクラス・ディスクリプタ21
8を呼出したデータ構造へのポインタ216を含む。ク
ラス・ディスクリプタ218は、ここでは関係がアイテ
ムに加えて、(データ・アレー208のどこに変数の値
が記憶されるかを示している)オブジェクト・クラスの
方法によって用いられる変数のそれぞれに対するデータ
・アレー・オフセット220を含む。更に、各データ・
オフセット・アイテム220に対してクラス・ディスク
リプタは、変数の識別(例えば、変数の名前)プラス、
変数のデータ型(例えば、整数)のインディケータ、及
び変数がプライベート変数であるか否かを示すインディ
ケータを含む。ある実施例ではオブジェクトの構造は、
図2に示したよりも複雑であるが、それら付加構造構成
要素は、この文書における説明には無関係である。
【0022】図3は、多くの“簡単な方法”を有してい
るオブジェクト・クラスの方法230を記憶するための
データ構造122−Aを示す。この文書の目的に対し
て、用語“簡単な方法”は、その唯一の機能が(A)プ
ライベート変数が簡単な手順に対してプライベートであ
るような、プライベート変数の値をリターンし、(B)
指定した値をプライベート変数の中に記憶し、または
(C)定数値をリターンする、方法を意味するために画
定される。バイトコード・プログラム・インタープリタ
のセキュリティ手順132は、一つのクラスのあらゆる
方法を、別のクラスのオブジェクトのプライベート変数
を直接アクセスすることから防ぐ。図4を参照すると、
オブジェクト・クラスの方法に関連付けられたプログラ
ム・コードは、装填された方法のワーキング内部表現を
形成するためにインタープリタのワーク・アレーに最初
にコピーされる。方法のその最初のワーキング表現は、
方法のワーキング表現の最適化されたフォームを生成す
るために種々の方法でインタープリタによって次いで変
更されうる。本発明の場合には、方法のワーキング表現
は、より計算的に効率的な簡単な方法に対する手順呼出
しを行うように変更される。
るオブジェクト・クラスの方法230を記憶するための
データ構造122−Aを示す。この文書の目的に対し
て、用語“簡単な方法”は、その唯一の機能が(A)プ
ライベート変数が簡単な手順に対してプライベートであ
るような、プライベート変数の値をリターンし、(B)
指定した値をプライベート変数の中に記憶し、または
(C)定数値をリターンする、方法を意味するために画
定される。バイトコード・プログラム・インタープリタ
のセキュリティ手順132は、一つのクラスのあらゆる
方法を、別のクラスのオブジェクトのプライベート変数
を直接アクセスすることから防ぐ。図4を参照すると、
オブジェクト・クラスの方法に関連付けられたプログラ
ム・コードは、装填された方法のワーキング内部表現を
形成するためにインタープリタのワーク・アレーに最初
にコピーされる。方法のその最初のワーキング表現は、
方法のワーキング表現の最適化されたフォームを生成す
るために種々の方法でインタープリタによって次いで変
更されうる。本発明の場合には、方法のワーキング表現
は、より計算的に効率的な簡単な方法に対する手順呼出
しを行うように変更される。
【0023】最適化された方法インタープリタ技法 表1は、本発明に関連するプログラム・インタープリタ
手順の部分の擬似コード表現を含む。表1に用いられる
擬似コードは、本質的に、汎用コンピュータ言語規定(u
niversal computer language conventions) を用いてい
るコンピュータ言語である。ここで採り入れられた擬似
コードがこの記述の目的のためにだけ発明されたと同時
に、それは、この分野におけるコンピュータ・プログラ
マによって容易に理解可能であるべく指定される。図5
及び表1に示されたプログラム・インタープリタ手順に
対する擬似コードを参照すると、方法の実行が要求され
るとき、方法のワーキング・コピーは、インタープリタ
のワーク・アレーに装填される(260)。インタープ
リタによる方法の実行の間中、インタープリタは、実行
すべき次の命令を選択する(262)。選択した命令が
最初に実行される方法呼出しであり(264−Y)かつ
呼出した方法がその唯一の機能が(A)プライベート変
数の値をリターンし、(B)指定した値をプライベート
変数の中に記憶し、または(C)定数値をリターンする
(266−Y)簡単な方法であれば、方法呼出しは、対
応している直接アクセス命令で置換される(268)。
手順の部分の擬似コード表現を含む。表1に用いられる
擬似コードは、本質的に、汎用コンピュータ言語規定(u
niversal computer language conventions) を用いてい
るコンピュータ言語である。ここで採り入れられた擬似
コードがこの記述の目的のためにだけ発明されたと同時
に、それは、この分野におけるコンピュータ・プログラ
マによって容易に理解可能であるべく指定される。図5
及び表1に示されたプログラム・インタープリタ手順に
対する擬似コードを参照すると、方法の実行が要求され
るとき、方法のワーキング・コピーは、インタープリタ
のワーク・アレーに装填される(260)。インタープ
リタによる方法の実行の間中、インタープリタは、実行
すべき次の命令を選択する(262)。選択した命令が
最初に実行される方法呼出しであり(264−Y)かつ
呼出した方法がその唯一の機能が(A)プライベート変
数の値をリターンし、(B)指定した値をプライベート
変数の中に記憶し、または(C)定数値をリターンする
(266−Y)簡単な方法であれば、方法呼出しは、対
応している直接アクセス命令で置換される(268)。
【0024】好ましい実施例では、その唯一の機能がプ
ライベート変数の値をリターンする簡単な方法に対する
方法呼出しは、参照したプライベート変数の値をインタ
ープリタのオペランド・スタックに押しつける特定目的
装填命令で置換される:
ライベート変数の値をリターンする簡単な方法に対する
方法呼出しは、参照したプライベート変数の値をインタ
ープリタのオペランド・スタックに押しつける特定目的
装填命令で置換される:
【0025】GetVarSPC PrivateVa
riable
riable
【0026】ここで“GetVarSPC”は、別の方
法のプライベート変数を直接アクセスすることから一つ
の方法を禁止している通常のセキュリティ制限から除外
されるGet Variable命令の特別フォームで
ある。好ましい実施例では、その唯一の機能が指定した
値を指定したプライベート変数の中に記憶する簡単な方
法に対する方法呼出しは、参照したプライベート変数の
中にインタープリタのオペランド・スタックからの値を
記憶する特定目的記憶命令で置換される:
法のプライベート変数を直接アクセスすることから一つ
の方法を禁止している通常のセキュリティ制限から除外
されるGet Variable命令の特別フォームで
ある。好ましい実施例では、その唯一の機能が指定した
値を指定したプライベート変数の中に記憶する簡単な方
法に対する方法呼出しは、参照したプライベート変数の
中にインタープリタのオペランド・スタックからの値を
記憶する特定目的記憶命令で置換される:
【0027】SetVarSPC PrivateVa
riable
riable
【0028】ここで“SetVarSPC”は、別のク
ラスのオブジェクトのプライベート変数を直接アクセス
することから一つの方法を禁止している通常のセキュリ
ティ制限から除外されるGスタック−対−変数記憶命令
の特別フォームである。好ましい実施例では、その唯一
の機能が定数値をリターンする簡単な方法に対する方法
呼出しは、定数値を得る命令で置換される:
ラスのオブジェクトのプライベート変数を直接アクセス
することから一つの方法を禁止している通常のセキュリ
ティ制限から除外されるGスタック−対−変数記憶命令
の特別フォームである。好ましい実施例では、その唯一
の機能が定数値をリターンする簡単な方法に対する方法
呼出しは、定数値を得る命令で置換される:
【0029】Get ConstantValue
【0030】ここで“Get”は、インタープリタのオ
ペランド・スタックに指定した値を押しつけるための命
令である。実行されている方法のワーキング表現が更新
された後、そうであるならば、ステップ264、26
6、268により、インタープリタのセキュリティ手順
は、選択した次の命令の実行がセキュリティ制限に違反
するか否かを決定する(270)。そうでないならば、
選択した命令が実行される(272)。選択した命令の
実行が、プライベート変数をアクセスすることに対する
制限のような、セキュリティ制限に違反するならば、セ
キュリティ違反は、標識が付けられ(フラグが立てら
れ)かつ方法の実行が中止される(274)。纏める
と、本発明は、それらの方法呼出しを同等のイン−ライ
ン直接アクセス命令で置換することによってある一定の
型の簡単な方法呼出しの実行を最適化するが、しかしイ
ン−ライン命令が呼出している方法が実行のために再装
填される毎に再生成されるような方法でそれを行い、そ
れにより、プログラムの所有者または出版社によって行
われた呼出された簡単な方法の改訂が呼出している方法
の後続の実行において反映されることを確実にする。
ペランド・スタックに指定した値を押しつけるための命
令である。実行されている方法のワーキング表現が更新
された後、そうであるならば、ステップ264、26
6、268により、インタープリタのセキュリティ手順
は、選択した次の命令の実行がセキュリティ制限に違反
するか否かを決定する(270)。そうでないならば、
選択した命令が実行される(272)。選択した命令の
実行が、プライベート変数をアクセスすることに対する
制限のような、セキュリティ制限に違反するならば、セ
キュリティ違反は、標識が付けられ(フラグが立てら
れ)かつ方法の実行が中止される(274)。纏める
と、本発明は、それらの方法呼出しを同等のイン−ライ
ン直接アクセス命令で置換することによってある一定の
型の簡単な方法呼出しの実行を最適化するが、しかしイ
ン−ライン命令が呼出している方法が実行のために再装
填される毎に再生成されるような方法でそれを行い、そ
れにより、プログラムの所有者または出版社によって行
われた呼出された簡単な方法の改訂が呼出している方法
の後続の実行において反映されることを確実にする。
【0031】本発明は、2〜3の特定な実施例を参照し
て記述されたが、記述は、本発明の説明のためであり本
発明を限定することを意図しない。特許請求の範囲によ
って画定された本発明の真の精神及び範疇から逸脱する
ことなく種々の変更が当業者に対して起こりうる。
て記述されたが、記述は、本発明の説明のためであり本
発明を限定することを意図しない。特許請求の範囲によ
って画定された本発明の真の精神及び範疇から逸脱する
ことなく種々の変更が当業者に対して起こりうる。
【0032】
【表1】
【0033】
【表2】
【0034】
【発明の効果】本発明のコンピュータ・システムは、複
数のオブジェクト及び複数の手順を記憶するメモリであ
り、各オブジェクトが関連オブジェクト・クラスの場合
を含みかつ各手順が対応オブジェクト・クラスに属し、
複数の手順は、各簡単な手順によって実行される機能全
体が、(A)プライベート変数が記憶されかつ簡単な手
順が属するオブジェクト・クラスのオブジェクトに対し
てプライベートである、プライベート変数の値をリター
ンし、(B)プライベート変数の中に指定した値を記憶
し、かつ(C)一定値をリターンすることからなるグル
ープから選択されるような簡単な手順を含んでいる、メ
モリ;及び手順の選択したものを実行するセキュリティ
・プログラム・インタープリタであり、インタープリタ
は、実行されるべき手順の第1のもののワーキング表現
を生成するための装填副手順と、手順の他のものによっ
て呼出されたときに簡単な手順の実行を最適化するため
の最適化副手順とを含み、最適化副手順は、インタープ
リタが手順の第2のものに対する第1の手順における手
順呼出しを処理しているときに、第2の手順が簡単な手
順の一つであるか否かを決定し、かつ決定が肯定的であ
るときに、第1の手順のワーキング表現の手順呼出しを
直接アクセス命令で置換し、直接アクセス命令は、
(A)プライベート変数の値を直接リターンする第1の
命令、(B)指定した値をプライベート変数に直接記憶
する第2の命令、及び(C)一定値を直接記憶する第3
の命令からなるグループから選択される、セキュリティ
・プログラム・インタープリタ;を備えているので、そ
の唯一の目的が、永久的に改訂されたプログラムを生成
することなく、プライベート変数または一定の値をアク
セスすることである他の方法を呼出す方法の走行時間イ
ンタープリテーションを最適化することができ、かつそ
の唯一の目的が、別のクラスのオブジェクトのプライベ
ート変数をアクセスすることから一つのクラスの方法を
防ぐことに対するインタープリタの通常のセキュリティ
供給を不能にすることなく、セキュリティ違反が回避さ
れるような方法でプライベート変数または一定の値をア
クセスすることである方法の効率的実行のために走行時
間インタープリタを最適化することができる。
数のオブジェクト及び複数の手順を記憶するメモリであ
り、各オブジェクトが関連オブジェクト・クラスの場合
を含みかつ各手順が対応オブジェクト・クラスに属し、
複数の手順は、各簡単な手順によって実行される機能全
体が、(A)プライベート変数が記憶されかつ簡単な手
順が属するオブジェクト・クラスのオブジェクトに対し
てプライベートである、プライベート変数の値をリター
ンし、(B)プライベート変数の中に指定した値を記憶
し、かつ(C)一定値をリターンすることからなるグル
ープから選択されるような簡単な手順を含んでいる、メ
モリ;及び手順の選択したものを実行するセキュリティ
・プログラム・インタープリタであり、インタープリタ
は、実行されるべき手順の第1のもののワーキング表現
を生成するための装填副手順と、手順の他のものによっ
て呼出されたときに簡単な手順の実行を最適化するため
の最適化副手順とを含み、最適化副手順は、インタープ
リタが手順の第2のものに対する第1の手順における手
順呼出しを処理しているときに、第2の手順が簡単な手
順の一つであるか否かを決定し、かつ決定が肯定的であ
るときに、第1の手順のワーキング表現の手順呼出しを
直接アクセス命令で置換し、直接アクセス命令は、
(A)プライベート変数の値を直接リターンする第1の
命令、(B)指定した値をプライベート変数に直接記憶
する第2の命令、及び(C)一定値を直接記憶する第3
の命令からなるグループから選択される、セキュリティ
・プログラム・インタープリタ;を備えているので、そ
の唯一の目的が、永久的に改訂されたプログラムを生成
することなく、プライベート変数または一定の値をアク
セスすることである他の方法を呼出す方法の走行時間イ
ンタープリテーションを最適化することができ、かつそ
の唯一の目的が、別のクラスのオブジェクトのプライベ
ート変数をアクセスすることから一つのクラスの方法を
防ぐことに対するインタープリタの通常のセキュリティ
供給を不能にすることなく、セキュリティ違反が回避さ
れるような方法でプライベート変数または一定の値をア
クセスすることである方法の効率的実行のために走行時
間インタープリタを最適化することができる。
【0035】本発明の方法は、コンピュータ・システム
を動作する方法であって、コンピュータ・メモリに複数
のオブジェクト及び複数の手順を記憶し、各オブジェク
トが関連オブジェクト・クラスの場合を含みかつ各手順
が対応オブジェクト・クラスに属し、複数の手順は、各
簡単な手順によって実行される機能全体が、(A)プラ
イベート変数が記憶されかつ簡単な手順が属するオブジ
ェクト・クラスのオブジェクトに対してプライベートで
ある、プライベート変数の値をリターンし、(B)プラ
イベート変数の中に指定した値を記憶し、かつ(C)一
定値をリターンすることからなるグループから選択され
るような簡単な手順を含んでおり;及びセキュリティ・
プログラム・インタープリタの制御下で、実行されるべ
き手順の第1のもののワーキング表現を生成すること、
及び第1の手順によって呼出されたときに簡単な手順の
実行を最適化することを含んでいる、手順の選択したも
のを実行し、最適化する段階は、インタープリタが手順
の第2のものに対する第1の手順における手順呼出しを
処理しているときに、第2の手順が簡単な手順の一つで
あるか否かを決定し、かつ決定が肯定的であるときに、
第1の手順のワーキング表現の手順呼出しを直接アクセ
ス命令で置換し、直接アクセス命令は、(A)プライベ
ート変数の値を直接リターンする第1の命令、(B)指
定した値をプライベート変数に直接記憶する第2の命
令、及び(C)一定値を直接記憶する第3の命令からな
るグループから選択されるので、その唯一の目的が、永
久的に改訂されたプログラムを生成することなく、プラ
イベート変数または一定の値をアクセスすることである
他の方法を呼出す方法の走行時間インタープリテーショ
ンを最適化することができ、かつその唯一の目的が、別
のクラスのオブジェクトのプライベート変数をアクセス
することから一つのクラスの方法を防ぐことに対するイ
ンタープリタの通常のセキュリティ供給を不能にするこ
となく、セキュリティ違反が回避されるような方法でプ
ライベート変数または一定の値をアクセスすることであ
る方法の効率的実行のために走行時間インタープリタを
最適化することができる。
を動作する方法であって、コンピュータ・メモリに複数
のオブジェクト及び複数の手順を記憶し、各オブジェク
トが関連オブジェクト・クラスの場合を含みかつ各手順
が対応オブジェクト・クラスに属し、複数の手順は、各
簡単な手順によって実行される機能全体が、(A)プラ
イベート変数が記憶されかつ簡単な手順が属するオブジ
ェクト・クラスのオブジェクトに対してプライベートで
ある、プライベート変数の値をリターンし、(B)プラ
イベート変数の中に指定した値を記憶し、かつ(C)一
定値をリターンすることからなるグループから選択され
るような簡単な手順を含んでおり;及びセキュリティ・
プログラム・インタープリタの制御下で、実行されるべ
き手順の第1のもののワーキング表現を生成すること、
及び第1の手順によって呼出されたときに簡単な手順の
実行を最適化することを含んでいる、手順の選択したも
のを実行し、最適化する段階は、インタープリタが手順
の第2のものに対する第1の手順における手順呼出しを
処理しているときに、第2の手順が簡単な手順の一つで
あるか否かを決定し、かつ決定が肯定的であるときに、
第1の手順のワーキング表現の手順呼出しを直接アクセ
ス命令で置換し、直接アクセス命令は、(A)プライベ
ート変数の値を直接リターンする第1の命令、(B)指
定した値をプライベート変数に直接記憶する第2の命
令、及び(C)一定値を直接記憶する第3の命令からな
るグループから選択されるので、その唯一の目的が、永
久的に改訂されたプログラムを生成することなく、プラ
イベート変数または一定の値をアクセスすることである
他の方法を呼出す方法の走行時間インタープリテーショ
ンを最適化することができ、かつその唯一の目的が、別
のクラスのオブジェクトのプライベート変数をアクセス
することから一つのクラスの方法を防ぐことに対するイ
ンタープリタの通常のセキュリティ供給を不能にするこ
となく、セキュリティ違反が回避されるような方法でプ
ライベート変数または一定の値をアクセスすることであ
る方法の効率的実行のために走行時間インタープリタを
最適化することができる。
【0036】本発明のメモリは、データ処理システム上
で実行されるプログラムによるアクセスのためのデータ
を記憶するメモリであって、メモリに記憶される複数の
オブジェクト及び複数の手順であり、各オブジェクトが
関連オブジェクト・クラスの場合を含みかつ各手順が対
応オブジェクト・クラスに属し、複数の手順は、各簡単
な手順によって実行される機能全体が、(A)プライベ
ート変数が記憶されかつ簡単な手順が属するオブジェク
ト・クラスのオブジェクトに対してプライベートであ
る、プライベート変数の値をリターンし、(B)プライ
ベート変数の中に指定した値を記憶し、かつ(C)一定
値をリターンすることからなるグループから選択される
ような簡単な手順を含んでいる、複数のオブジェクト及
び複数の手順;及び手順の選択したものを実行するセキ
ュリティ・プログラム・インタープリタであり、インタ
ープリタは、実行されるべき手順の第1のもののワーキ
ング表現を生成するための装填副手順と、手順の他のも
のによって呼出されたときに簡単な手順の実行を最適化
するための最適化副手順とを含み、最適化副手順は、イ
ンタープリタが手順の第2のものに対する第1の手順に
おける手順呼出しを処理しているときに、第2の手順が
簡単な手順の一つであるか否かを決定し、かつ決定が肯
定的であるときに、第1の手順のワーキング表現の手順
呼出しを直接アクセス命令で置換し、直接アクセス命令
は、(A)プライベート変数の値を直接リターンする第
1の命令、(B)指定した値をプライベート変数に直接
記憶する第2の命令、及び(C)一定値を直接記憶する
第3の命令からなるグループから選択される、セキュリ
ティ・プログラム・インタープリタ;を備えているの
で、その唯一の目的が、永久的に改訂されたプログラム
を生成することなく、プライベート変数または一定の値
をアクセスすることである他の方法を呼出す方法の走行
時間インタープリテーションを最適化することができ、
かつその唯一の目的が、別のクラスのオブジェクトのプ
ライベート変数をアクセスすることから一つのクラスの
方法を防ぐことに対するインタープリタの通常のセキュ
リティ供給を不能にすることなく、セキュリティ違反が
回避されるような方法でプライベート変数または一定の
値をアクセスすることである方法の効率的実行のために
走行時間インタープリタを最適化することができる。
で実行されるプログラムによるアクセスのためのデータ
を記憶するメモリであって、メモリに記憶される複数の
オブジェクト及び複数の手順であり、各オブジェクトが
関連オブジェクト・クラスの場合を含みかつ各手順が対
応オブジェクト・クラスに属し、複数の手順は、各簡単
な手順によって実行される機能全体が、(A)プライベ
ート変数が記憶されかつ簡単な手順が属するオブジェク
ト・クラスのオブジェクトに対してプライベートであ
る、プライベート変数の値をリターンし、(B)プライ
ベート変数の中に指定した値を記憶し、かつ(C)一定
値をリターンすることからなるグループから選択される
ような簡単な手順を含んでいる、複数のオブジェクト及
び複数の手順;及び手順の選択したものを実行するセキ
ュリティ・プログラム・インタープリタであり、インタ
ープリタは、実行されるべき手順の第1のもののワーキ
ング表現を生成するための装填副手順と、手順の他のも
のによって呼出されたときに簡単な手順の実行を最適化
するための最適化副手順とを含み、最適化副手順は、イ
ンタープリタが手順の第2のものに対する第1の手順に
おける手順呼出しを処理しているときに、第2の手順が
簡単な手順の一つであるか否かを決定し、かつ決定が肯
定的であるときに、第1の手順のワーキング表現の手順
呼出しを直接アクセス命令で置換し、直接アクセス命令
は、(A)プライベート変数の値を直接リターンする第
1の命令、(B)指定した値をプライベート変数に直接
記憶する第2の命令、及び(C)一定値を直接記憶する
第3の命令からなるグループから選択される、セキュリ
ティ・プログラム・インタープリタ;を備えているの
で、その唯一の目的が、永久的に改訂されたプログラム
を生成することなく、プライベート変数または一定の値
をアクセスすることである他の方法を呼出す方法の走行
時間インタープリテーションを最適化することができ、
かつその唯一の目的が、別のクラスのオブジェクトのプ
ライベート変数をアクセスすることから一つのクラスの
方法を防ぐことに対するインタープリタの通常のセキュ
リティ供給を不能にすることなく、セキュリティ違反が
回避されるような方法でプライベート変数または一定の
値をアクセスすることである方法の効率的実行のために
走行時間インタープリタを最適化することができる。
【図1】本発明の好ましい実施例を組み込んでいるコン
ピュータ・システムのブロック図である。
ピュータ・システムのブロック図である。
【図2】本発明の好ましい実施例におけるオブジェクト
に対するデータ構造のブロック図である。
に対するデータ構造のブロック図である。
【図3】複数の簡単な方法を有しているオブジェクト・
クラスに対するデータ構造のブロック図である。
クラスに対するデータ構造のブロック図である。
【図4】本発明の方法装填及び最適化処理の内容表現図
である。
である。
【図5】本発明の好ましい実施例に用いるプログラム・
インタープリタ手順のフローチャートである。
インタープリタ手順のフローチャートである。
100 分散型コンピュータ・システム 102 多重クライアント・コンピュータ 103 インターネット 104 多重サーバ・コンピュータ 105 CPU 106 通信インターフェイス 107 ユーザ・インターフェイス 108 メモリ 109 オペレーティング・システム 110 インターネット通信マネージャ・プログラム 112 バイトコード・プログラム・ベリファイヤ 114 バイトコード・プログラム・インタープリタ 116 クラス・ローダ 120 クラス・レポジトリ 122 オブジェクト・クラス 124 オブジェクト・レポジトリ 126 オブジェクト 130 ワーク・アレー 132 セキュリティ手順 134 機能呼出し置換手順
Claims (9)
- 【請求項1】 複数のオブジェクト及び複数の手順を記
憶するメモリであり、各該オブジェクトが関連オブジェ
クト・クラスの場合を含みかつ各該手順が対応オブジェ
クト・クラスに属し、該複数の手順は、各該簡単な手順
によって実行される機能全体が、(A)前記プライベー
ト変数が記憶されかつ該簡単な手順が属するオブジェク
ト・クラスのオブジェクトに対してプライベートであ
る、プライベート変数の値をリターンし、(B)前記プ
ライベート変数の中に指定した値を記憶し、かつ(C)
一定値をリターンすることからなるグループから選択さ
れるような簡単な手順を含んでいる、該メモリ;及び前
記手順の選択したものを実行するセキュリティ・プログ
ラム・インタープリタであり、該インタープリタは、実
行されるべき前記手順の第1のもののワーキング表現を
生成するための装填副手順と、前記手順の他のものによ
って呼出されたときに前記簡単な手順の実行を最適化す
るための最適化副手順とを含み、該最適化副手順は、該
インタープリタが前記手順の第2のものに対する前記第
1の手順における手順呼出しを処理しているときに、前
記第2の手順が前記簡単な手順の一つであるか否かを決
定し、かつ前記決定が肯定的であるときに、前記第1の
手順の前記ワーキング表現の前記手順呼出しを直接アク
セス命令で置換し、該直接アクセス命令は、(A)前記
プライベート変数の値を直接リターンする第1の命令、
(B)指定した値を前記プライベート変数に直接記憶す
る第2の命令、及び(C)前記一定値を直接記憶する第
3の命令からなるグループから選択される、該セキュリ
ティ・プログラム・インタープリタ;を備えていること
を特徴とするコンピュータ・システム。 - 【請求項2】 前記インタープリタは、標準命令が存在
するような手順に対するオブジェクト・クラスのオブジ
ェクトに記憶されていないプライベート変数をアクセス
することから、変数の値をオペランド・スタックに装填
しかつ前記オペランド・スタック上の値を変数に記憶す
る前記標準命令を防ぐためのセキュリティ命令を含み;
かつ前記第1及び第2の命令は、前記第1の手順及び第
2の手順が異なる対応オブジェクト・クラスに属すると
きでも前記セキュリティ命令によってセキュリティ違反
に標識を付けられることなく前記プライベート変数をア
クセスすることができる特定目的命令であることを特徴
とする請求項1に記載のコンピュータ・システム。 - 【請求項3】 前記インタープリタは、前記第1の手順
が再び実行されるときに前記インタープリタが前記第1
の手順の新しいワーキング表現を生成するように、前記
第1の手順の実行が終了するときに前記手順インタープ
リタから前記第1の手順の前記ワーキング表現をフラッ
シュするための命令を含むことを特徴とする請求項1に
記載のコンピュータ・システム。 - 【請求項4】 コンピュータ・システムを動作する方法
であって、 コンピュータ・メモリに複数のオブジェクト及び複数の
手順を記憶し、各該オブジェクトが関連オブジェクト・
クラスの場合を含みかつ各該手順が対応オブジェクト・
クラスに属し、該複数の手順は、各該簡単な手順によっ
て実行される機能全体が、(A)前記プライベート変数
が記憶されかつ該簡単な手順が属するオブジェクト・ク
ラスのオブジェクトに対してプライベートである、プラ
イベート変数の値をリターンし、(B)前記プライベー
ト変数の中に指定した値を記憶し、かつ(C)一定値を
リターンすることからなるグループから選択されるよう
な簡単な手順を含んでおり;及びセキュリティ・プログ
ラム・インタープリタの制御下で、実行されるべき前記
手順の第1のもののワーキング表現を生成すること、及
び前記第1の手順によって呼出されたときに前記簡単な
手順の実行を最適化することを含んでいる、前記手順の
選択したものを実行し、前記最適化する段階は、該イン
タープリタが前記手順の第2のものに対する前記第1の
手順における手順呼出しを処理しているときに、前記第
2の手順が前記簡単な手順の一つであるか否かを決定
し、かつ前記決定が肯定的であるときに、前記第1の手
順の前記ワーキング表現の前記手順呼出しを直接アクセ
ス命令で置換し、該直接アクセス命令は、(A)前記プ
ライベート変数の値を直接リターンする第1の命令、
(B)指定した値を前記プライベート変数に直接記憶す
る第2の命令、及び(C)前記一定値を直接記憶する第
3の命令からなるグループから選択されることを特徴と
する方法。 - 【請求項5】 前記第1及び第2の命令は、特定目的命
令であり、かつ前記方法は、標準命令が存在する手順の
外側のプライベート変数をアクセスすることから、変数
の値をオペランド・スタックに装填しかつ前記オペラン
ド・スタック上の値を変数に記憶する前記標準命令を防
ぎ、かつ標準命令の実行が前記標準命令が存在するよう
な手順に対するオブジェクト・クラスのオブジェクトに
記憶されていないプライベート変数をアクセスすること
を必要とするときにセキュリティ違反に標識を付け;か
つ前記第1の手順及び第2の手順が異なる対応オブジェ
クト・クラスに属するときでもセキュリティ違反に標識
を付けられることなく前記第1の手順及び第2の手順に
前記プライベート変数をアクセスさせることができる段
階を具備することを特徴とする請求項4に記載の方法。 - 【請求項6】 前記インタープリタは、前記第1の手順
が再び実行されるときに前記インタープリタが前記第1
の手順の新しいワーキング表現を生成するように、前記
第1の手順の実行が終了するときに前記インタープリタ
から前記第1の手順の前記ワーキング表現をフラッシュ
することを含むことを特徴とする請求項5に記載の方
法。 - 【請求項7】 データ処理システム上で実行されるプロ
グラムによるアクセスのためのデータを記憶するメモリ
であって、 前記メモリに記憶される複数のオブジェクト及び複数の
手順であり、各該オブジェクトが関連オブジェクト・ク
ラスの場合を含みかつ各該手順が対応オブジェクト・ク
ラスに属し、該複数の手順は、各該簡単な手順によって
実行される機能全体が、(A)前記プライベート変数が
記憶されかつ該簡単な手順が属するオブジェクト・クラ
スのオブジェクトに対してプライベートである、プライ
ベート変数の値をリターンし、(B)前記プライベート
変数の中に指定した値を記憶し、かつ(C)一定値をリ
ターンすることからなるグループから選択されるような
簡単な手順を含んでいる、該複数のオブジェクト及び複
数の手順;及び前記手順の選択したものを実行するセキ
ュリティ・プログラム・インタープリタであり、該イン
タープリタは、実行されるべき前記手順の第1のものの
ワーキング表現を生成するための装填副手順と、前記手
順の他のものによって呼出されたときに前記簡単な手順
の実行を最適化するための最適化副手順とを含み、該最
適化副手順は、該インタープリタが前記手順の第2のも
のに対する前記第1の手順における手順呼出しを処理し
ているときに、前記第2の手順が前記簡単な手順の一つ
であるか否かを決定し、かつ前記決定が肯定的であると
きに、前記第1の手順の前記ワーキング表現の前記手順
呼出しを直接アクセス命令で置換し、該直接アクセス命
令は、(A)前記プライベート変数の値を直接リターン
する第1の命令、(B)指定した値を前記プライベート
変数に直接記憶する第2の命令、及び(C)前記一定値
を直接記憶する第3の命令からなるグループから選択さ
れる、該セキュリティ・プログラム・インタープリタ;
を備えていることを特徴とするメモリ。 - 【請求項8】 前記インタープリタは、標準命令が存在
するような手順に対するオブジェクト・クラスのオブジ
ェクトに記憶されていないプライベート変数をアクセス
することから、変数の値をオペランド・スタックに装填
しかつ前記オペランド・スタック上の値を変数に記憶す
る前記標準命令を防ぐためのセキュリティ命令を含み;
かつ前記第1及び第2の命令は、前記第1の手順及び第
2の手順が異なる対応オブジェクト・クラスに属すると
きでも前記セキュリティ命令によってセキュリティ違反
に標識を付けられることなく前記プライベート変数をア
クセスすることができる特定目的命令であることを特徴
とする請求項7に記載のメモリ。 - 【請求項9】 前記インタープリタは、前記第1の手順
が再び実行されるときに前記インタープリタが前記第1
の手順の新しいワーキング表現を生成するように、前記
第1の手順の実行が終了するときに前記手順インタープ
リタから前記第1の手順の前記ワーキング表現をフラッ
シュするための命令を含むことを特徴とする請求項8に
記載のメモリ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/569,754 US5794044A (en) | 1995-12-08 | 1995-12-08 | System and method for runtime optimization of private variable function calls in a secure interpreter |
| US08/569754 | 1995-12-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1040107A true JPH1040107A (ja) | 1998-02-13 |
Family
ID=24276720
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8328896A Pending JPH1040107A (ja) | 1995-12-08 | 1996-12-09 | セキュリテ・インタープリタにおけるプライベート変数機能呼出しの走行時間最適化のためのシステム及び方法 |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US5794044A (ja) |
| EP (1) | EP0778521B1 (ja) |
| JP (1) | JPH1040107A (ja) |
| KR (1) | KR100478025B1 (ja) |
| CN (1) | CN1117318C (ja) |
| AU (1) | AU712005B2 (ja) |
| CA (1) | CA2191411C (ja) |
| DE (1) | DE69621751T2 (ja) |
| SG (1) | SG75109A1 (ja) |
| TW (1) | TW341687B (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000035893A (ja) * | 1998-04-07 | 2000-02-02 | Sun Microsyst Inc | デ―タ処理システムの配列の静的初期化方法、デ―タ処理方法、並びにデ―タ処理システム及びその制御手順をコンピュ―タに実行させるプログラムを記憶したコンピュ―タ読み取り可能な記憶媒体 |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5966534A (en) * | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
| US6317796B1 (en) * | 1997-10-06 | 2001-11-13 | Sun Microsystems, Inc. | Inline database for receiver types in object-oriented systems |
| US6385660B2 (en) | 1997-10-06 | 2002-05-07 | Sun Microsystems, Inc. | Site specific message dispatch in object-oriented systems |
| US6295607B1 (en) * | 1998-04-06 | 2001-09-25 | Bindview Development Corporation | System and method for security control in a data processing system |
| US6681387B1 (en) | 1999-12-01 | 2004-01-20 | Board Of Trustees Of The University Of Illinois | Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit |
| US7024657B2 (en) * | 2000-02-21 | 2006-04-04 | Matsushita Electric Industrial Co., Ltd. | Program generation apparatus for program execution system, replaces variable name in each class file by assigned offset number so that same offset numbers are assigned to non-dependent variables with same variable name |
| US6978448B1 (en) * | 2000-06-12 | 2005-12-20 | Sun Microsystems, Inc. | Method and apparatus for rewriting bytecodes to minimize runtime checks |
| US7086044B2 (en) * | 2001-03-22 | 2006-08-01 | International Business Machines Corporation | Method, article of manufacture and apparatus for performing automatic intermodule call linkage optimization |
| US7028293B2 (en) * | 2001-03-30 | 2006-04-11 | Microsoft Corporation | Constant return optimization transforming indirect calls to data fetches |
| FR2827974B1 (fr) * | 2001-07-26 | 2005-02-11 | Trusted Logic | Procede pour la compression d'un code interprete par analyse semantique |
| FR2828296B1 (fr) * | 2001-08-03 | 2003-12-12 | Trusted Logic | Procede de compression de code objet interprete par factorisation d'expressions arborescentes |
| US20030131347A1 (en) * | 2001-10-12 | 2003-07-10 | Allison David S. | Method and apparatus for runtime binding of object members |
| DE10216602A1 (de) * | 2002-04-15 | 2003-10-30 | Giesecke & Devrient Gmbh | Optimierung von compilergeneriertem Programmcode |
| US7181744B2 (en) * | 2002-10-24 | 2007-02-20 | International Business Machines Corporation | System and method for transferring data between virtual machines or other computer entities |
| JP4012517B2 (ja) * | 2003-04-29 | 2007-11-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 仮想計算機環境におけるロックの管理 |
| US20060059471A1 (en) * | 2004-09-15 | 2006-03-16 | Microsoft Corporation | Calling non-public types |
| US7797690B2 (en) | 2005-03-15 | 2010-09-14 | International Business Machines Corporation | System, method and program product to optimize code during run time |
| US20090007068A1 (en) * | 2007-06-27 | 2009-01-01 | Microsoft Corporation | Accessing Non-Public Code |
| US8671456B2 (en) | 2012-06-26 | 2014-03-11 | Sap Portals Israel Ltd. | Accessing restricted resources in computer programming |
| US10657262B1 (en) * | 2014-09-28 | 2020-05-19 | Red Balloon Security, Inc. | Method and apparatus for securing embedded device firmware |
| TWI552781B (zh) * | 2014-09-30 | 2016-10-11 | Liquid suction and discharge filter | |
| US9729671B2 (en) * | 2014-10-05 | 2017-08-08 | YScope Inc. | Systems and processes for computer log analysis |
| US9841972B2 (en) * | 2014-12-17 | 2017-12-12 | Cisco Technology, Inc. | Securing secret information in source code verification and at runtime |
| CN108614702B (zh) * | 2016-12-28 | 2022-02-11 | 阿里巴巴集团控股有限公司 | 字节码优化方法及装置 |
| CN109032572B (zh) * | 2017-06-08 | 2023-03-31 | 阿里巴巴集团控股有限公司 | 一种基于字节码的java程序方法内联的方法 |
| CN115495088A (zh) * | 2022-09-15 | 2022-12-20 | 代码哲学(北京)科技有限公司 | 一种内联aot编译函数的解释器指令优化执行方法和装置 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
| US5210874A (en) * | 1988-03-22 | 1993-05-11 | Digital Equipment Corporation | Cross-domain call system in a capability based digital data processing system |
| US5093914A (en) * | 1989-12-15 | 1992-03-03 | At&T Bell Laboratories | Method of controlling the execution of object-oriented programs |
| AU628264B2 (en) * | 1990-08-14 | 1992-09-10 | Oracle International Corporation | Methods and apparatus for providing a client interface to an object-oriented invocation of an application |
| US5280614A (en) * | 1990-08-21 | 1994-01-18 | International Business Machines Corporation | Apparatus and method for controlling access to data using domains |
| US5307499A (en) * | 1990-11-30 | 1994-04-26 | Singapore Computer Systems Limited | Interpretive object-oriented facility which can access pre-compiled classes |
| JPH05257664A (ja) * | 1991-12-12 | 1993-10-08 | Internatl Business Mach Corp <Ibm> | バージョン独立のオブジェクト指向アプリケーション・プログラムを生成するシステム及び方法 |
| US5319784A (en) * | 1991-12-18 | 1994-06-07 | International Business Machines Corp. | System for automatic and selective compile-time installation of fastpath into program for calculation of function/procedure without executing the function/procedure |
| JP2794523B2 (ja) * | 1993-11-26 | 1998-09-10 | 日本アイ・ビー・エム株式会社 | アレイ関数をもつプログラミング言語におけるインライン展開方法 |
| US5590266A (en) * | 1994-10-11 | 1996-12-31 | International Business Machines Corporation | Integrity mechanism for data transfer in a windowing system |
-
1995
- 1995-12-08 US US08/569,754 patent/US5794044A/en not_active Expired - Lifetime
-
1996
- 1996-11-20 AU AU71889/96A patent/AU712005B2/en not_active Expired
- 1996-11-27 CA CA002191411A patent/CA2191411C/en not_active Expired - Fee Related
- 1996-12-03 EP EP96308721A patent/EP0778521B1/en not_active Expired - Lifetime
- 1996-12-03 DE DE69621751T patent/DE69621751T2/de not_active Expired - Fee Related
- 1996-12-06 SG SG1996011565A patent/SG75109A1/en unknown
- 1996-12-06 CN CN96121868A patent/CN1117318C/zh not_active Expired - Fee Related
- 1996-12-06 KR KR1019960062296A patent/KR100478025B1/ko not_active Expired - Fee Related
- 1996-12-09 JP JP8328896A patent/JPH1040107A/ja active Pending
- 1996-12-12 TW TW085115368A patent/TW341687B/zh active
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000035893A (ja) * | 1998-04-07 | 2000-02-02 | Sun Microsyst Inc | デ―タ処理システムの配列の静的初期化方法、デ―タ処理方法、並びにデ―タ処理システム及びその制御手順をコンピュ―タに実行させるプログラムを記憶したコンピュ―タ読み取り可能な記憶媒体 |
Also Published As
| Publication number | Publication date |
|---|---|
| CA2191411A1 (en) | 1997-06-09 |
| KR970049812A (ko) | 1997-07-29 |
| US5794044A (en) | 1998-08-11 |
| TW341687B (en) | 1998-10-01 |
| AU712005B2 (en) | 1999-10-28 |
| SG75109A1 (en) | 2000-09-19 |
| CA2191411C (en) | 2003-05-06 |
| AU7188996A (en) | 1997-06-12 |
| DE69621751D1 (de) | 2002-07-18 |
| EP0778521B1 (en) | 2002-06-12 |
| KR100478025B1 (ko) | 2005-06-27 |
| CN1158459A (zh) | 1997-09-03 |
| EP0778521A2 (en) | 1997-06-11 |
| EP0778521A3 (en) | 1999-05-12 |
| CN1117318C (zh) | 2003-08-06 |
| DE69621751T2 (de) | 2003-01-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1040107A (ja) | セキュリテ・インタープリタにおけるプライベート変数機能呼出しの走行時間最適化のためのシステム及び方法 | |
| US6072953A (en) | Apparatus and method for dynamically modifying class files during loading for execution | |
| US5956507A (en) | Dynamic alteration of operating system kernel resource tables | |
| US5414854A (en) | Object-oriental system for managing shared libraries | |
| US7225438B2 (en) | Lazy compilation of template-generated classes in dynamic compilation execution environments | |
| CN105723341B (zh) | 用于布局引擎和脚本引擎的存储器模型的实现方法及系统 | |
| EP0620522B1 (en) | High performance dynamic linking through caching | |
| US9116867B2 (en) | Memory model for a layout engine and scripting engine | |
| JP4571710B2 (ja) | ディスパッチテーブル構造のための方法と装置 | |
| US5983021A (en) | Dynamically switching statically bound function calls to dynamically bound function calls without recompilation | |
| US6112025A (en) | System and method for dynamic program linking | |
| US6484313B1 (en) | Compiling and persisting of intermediate language code | |
| CN107924326B (zh) | 对经更新的类型的迁移方法进行覆盖 | |
| US9417931B2 (en) | Unified metadata for external components | |
| US7949826B2 (en) | Runtime machine supported method level caching | |
| US20040268301A1 (en) | Adding new compiler methods to an integrated development environment | |
| US6810519B1 (en) | Achieving tight binding for dynamically loaded software modules via intermodule copying | |
| CN106406828A (zh) | 一种修改java系统业务工具功能的方法及装置 | |
| KR102765785B1 (ko) | 소프트웨어 업데이트 장치 및 방법 | |
| JPH08272815A (ja) | オブジェクト指向データベースシステムおよびその処理方法 | |
| HK1000847A (en) | System and method for runtime optimization of private variable function calls in a secure interpreter |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061127 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070227 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070326 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070820 |