JP2003501741A - 様々なソース言語の実行メディアへの移植 - Google Patents
様々なソース言語の実行メディアへの移植Info
- Publication number
- JP2003501741A JP2003501741A JP2001501983A JP2001501983A JP2003501741A JP 2003501741 A JP2003501741 A JP 2003501741A JP 2001501983 A JP2001501983 A JP 2001501983A JP 2001501983 A JP2001501983 A JP 2001501983A JP 2003501741 A JP2003501741 A JP 2003501741A
- Authority
- JP
- Japan
- Prior art keywords
- language
- program
- execution
- intermediate language
- source
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
のであり、更に一般的には、高水準プログラム言語で書かれたアプリケーション
によりロードされる、マイクロプロセッサ式のプログラム可能なオープン・デー
タの処理手段に関するものである。
できず、かつそれをプログラム可能なデータのいかなる処理手段によっても実行
させることができないという、これらの様々な言語の不均一性を対象とするもの
である。従って、本発明は、データ処理手段の開放をも対象としている。本発明
は、JAVA(登録商標)カード、SMARTカード用WINDOWS(登録商
標)、MultOS(出願商標)等のようなプログラム可能なデータ処理手段用
に書かれたアプリケーションの操作互換性に関するものである。操作互換性はセ
キュリティの面で、制約を伴うものである。
アプリケーションを書く為に用いられるプログラミングの各ソース言語は、一つ
の特定の実行メディアに必然的に関連づけられており、該実行メディアは、一般
的に仮想マシンのようなソフトウェア的性格のみならず、マイクロプロセッサの
ようなハードウェア的性格も有している。
ース言語で書かれたプログラムをコンパイルし、次に、それを、所定のソース言
語で書かれたプログラムを受け入れるような特別の仕様のチップカードにロード
する。カードは、コンパイル済プログラムを受け入れ、特殊な実行メディアによ
ってそれを実行するが、実行メディアは、所定のソース言語で最初に書かれたプ
ログラムの実行に専用のものである。
Enは、他のチップカードC1〜CNの実行メディアSE1〜SENとは異なっ
ているが、ここでnは1を含む整数であり、大文字のNはソース言語LS1〜L
SNの所定の数を示すものであって、該チップカードCnは、それらがそれぞれ
のソース言語LSnでプログラムされている場合にのみ、アプリケーション・プ
ログラムPnを実行することができる。ロードするプログラムをコンパイルする
前にそれをコード・チェックにかけ、ロードされるプログラムがソース言語LS
nに結びついた実行メディアSEnによって与えられるセキュリティのプロパテ
ィに違反していないことを検査する。
されたプログラムPnは、以下の理由から、目的実行メディアSEnに密接に結
びついている: 1)ソース言語LSnによって供給されるデータ構造とオペレーションとは、ソ
ース言語LSn専用の実行メディアSEn用に、最適なサイズと速度で最適化さ
れた表現にコンパイルされるように特殊化される。 2)ソース言語LSnで供給されるプログラミング・ライブラリBPnは、一般
的にソース言語と相互関係を有し、しかも、ソース言語専用の実行メディアSE
n用に最適化されている。 3)カードCnにロードされる前のプログラムPnのチェックは、セキュリティ
のプロパティに密接に関連するものであり、目的実行メディアSEnにより確保
される。
、コンパイル、そしてロードの一連の工程CVCCnで実現されていく。この工
程は、高級ソース言語で書かれたプログラムPnを、コンパクトで、かつソース
言語LSn専用の実行メディアSEnによって効率的に実行されるに適した形式
に変換するのを管理する。
書かれたプログラムを、それがどの言語で書かれたかにかかわらず、様々な実行
メディアSE1〜SEMに関連づけるということであり、ここでMは整数Nと等
しいか、又は異なる任意の整数である。この一般的な問題は、以下のような三つ
のサブ問題に分解できる。
メディアSEm上で、ソース言語LSnで書かれたプログラムPを実行させるこ
とであるが、ここでmは1からMの間に含まれるサフィックスである。
たプログラムP1〜PNを、共通の実行メディアSEmにロードすることに関す
るものであり、該実行メディアは、これらの様々なプログラムに、メモリサイズ
、実行速度、それらのプログラミング・ライブラリBP1〜BPM、そしてそれ
らのセキュリティのプロパティの点で有効な環境を与えることができるものであ
る。
たプログラムP1〜PNを、共通の実行メディアSEmの内部で共存させること
を目指すものである。第三のサブ問題については、様々なプログラミング環境か
ら生じ、同一の物理メディア内に置かれたプログラムのセキュリティP1〜PN
を、処理することを推奨する。
ム可能なチップカード用に書かれた様々なアプリケーションの操作互換性の問題
を、セキュリティと保護及び相互作用のメカニズムを保ちつつ、解決するという
ことに尽きるのであり、解決するために当業者なら、次のような三種類の解決法
を検討することはできるが、それは余り満足のいくものではない。
みオペレーションW1及びWMで示されるように、チップカードCnに移植され
た実行メディアSEn専用のソース言語LSnで書かれたプログラムPnを、例
えばチップカードC1及びCMに移植される実行メディアSE1及びSEM専用
のソース言語LS1〜LSMでそれぞれ書かれるプログラムPn1及びPnMに
リライトすることである。
、重い負担のある退屈な作業で、それが、プログラムPnのアルゴリズムをプロ
グラムPn1,PnMにリライトすることからなり、しかも該リライトは、新し
いソース言語LS1,LSMの為のデータ構造と、異なるプログラミング・ライ
ブラリBP1,BPMに適合させなければならない。更にその上、新しい実行メ
ディアSE1とSEMのそれぞれが供給するセキュリティのメカニズムは、リラ
イトされたプログラムPn1,PnMのコードを再認証する必要がある。
操作互換性の問題の非常に限られた部分しか解決しない。更に、実行メディアS
E1,SEn及びSEM以外の実行メディアに関連した他のソース言語が、新し
いカードの中に出現する場合には、前記他のソース言語でリライトする為に、最
初のソース言語LSnで書かれた古いプログラムの全てをやり直さなければなら
ない。
語LS1とLS2で書かれており、しかも、該それぞれのソース言語は、二枚の
チップカードC1及びC2の中のそれぞれの実行メディアSE1及びSE2にも
ともと専用のものであるが、検証、コンパイル、そしてロードの工程CVCC1
及びCVCC2でのコンパイルを経てから、それぞれを従来のように実行メディ
アSE1及びSE2内で実行することが可能となる。しかしながら、プログラム
P1とP2の実行は、それぞれメディアSE2及びSE1内で実行されなければ
ならず、しかも両方が、第三のチップカードC3に保存され、かつ第三のソース
言語LS3に専用の第三の実行メディアSE3内で実行されなければならない。
SE2とは別の、目的実行メディアメディアSE2及びSE3、またはSE1及
びSE3内でプログラムP1、またはP2を実行する為には、プログラムP1、
またはP2は、検証、コンパイル、そしてロードの追加の工程CVCC21及び
CVCC31,またはCVCC12及びCVCC32においてコンパイルされる
。
ラムのリライトを行う必要はもはやないが、非常に数多くの、検証、コンパイル
、そしてロードの工程CVCC12,CVCC21,CVCC31,CVCC3
2に従わなければならない。更に一般的には、N個のソース言語LS1〜LSN
とM個の実行メディアSE1〜SEMのためには、検証、コンパイル、そしてロ
ードの工程がN*M本必要となる。これらの工程は、それらの数といい、それら
の複雑さといい、ハード面、ソフト面そして人的側面での相当の投資を伴うもの
である。
びこれらのプログラムを書くために用いられるソース言語LS1とLS2のプロ
グラミング・ライブラリに、きちんと前もって適合されていないため、メモリサ
イズとこのように生成されるプログラムの実行速度の点で性能が悪い。 −検証、コンパイル、そしてロードの工程は、新しいソース言語が一つ現れる場
合には、現在の目的実行メディアSE1〜SEMと同じ数だけ、また、逆に、新
しい実行メディアが一つ現れる場合には、現在のソース言語LS1〜LSNと同
じ数だけ作りだされることになる。 −プログラムを展開するためには、様々な実行メディアSE1〜SEMごとにコ
ンパイルされ証明されたコードを付与したプログラムを、全ての遠隔ロードサイ
トに予めロードしておかなければならず、それが第二の解決法を更に複雑で費用
のかかるものにしてしまう。
べると、自動的に取り扱うのであり、従って、プログラムの操作互換性の問題の
非常に限られた部分しか解決しない。更に、実行メディアSE1〜SEM以外の
他の実行メディアに関連した他のソース言語が、新しいカードの中に現われる場
合には、最初のプログラムの全てP1〜PNを、検証、コンパイル、そしてロー
ドの新しい工程を通過させ、前記他の実行メディアの為に証明されたコードを生
成しなければならない。
メディア、例えば、図4で示されるような、三つの実行メディアSE1,SE2
及びSE3を有している。従って、様々なソース言語LS1,LS2及びLS3
でそれぞれ書かれたプログラムP1,P2及びP3は、それぞれに検証、コンパ
イル、そしてロードの工程CVCC1,CVCC2及びCVCC3を経て、カー
ドCPにロードすることができる。カードCPは、各プログラムP1,P2,P
3に、それぞれのソース言語LS1,LS2,LS3専用の実行メディアSE1
,SE2,SE3しか有さない一枚のカードに個別にロードされた場合と全く同
じ機能を持たすことができる。
証、コンパイル、そしてロードの工程CVCC1,CVCC2及びCVCC3を
忠実に好適に保全しつつ、しかもサブ問題SP2も解決できるものである。
される様々な実行メディアは、それぞれが大量のコードを記述しており、それら
の実行メディアの数が大きくなるので、それだけに事実上実現不可能になってし
まうということである。この大きな欠点は、Bertil Foliot並びに
Ian Piumarta著の「Virtual Virtual Machi
nes」(1997年9月)、もしくは同じ著者の「A Dymically
Configurable Multi−language Executio
n Platform」(1998年)という文献に記載されたVVMタイプの
アーキテクチャにも存在する。このタイプのアーキテクチャ(VVM)には、メ
モリに複数の実行メディアが存在し、実行メディアはそれら自体が、低レベルの
原始的なシステムの補足的な抽象要素に基礎をおいている。このタイプの解決法
に必要なメモリは、実際にはチップカードの中では考えられぬほどのものであり
、実用的には、例えば更に多くのデータとプログラムを記憶する為にさらに有益
に利用できるはずのものである。
ソース言語に、プログラマを拘束させることなく、単一の実行メディアの中で様
々なソース言語で書き込まれた複数のプログラムを自動に実行する為の方法を提
供することである。この主な目的は、結局のところ、上記に定義された三つのサ
ブ問題SP1,SP2及びSP3を解決することであり、つまりは、上記の三つ
の解決法のいずれも完全には解決していない、様々なソース言語でのプログラム
の操作互換性の問題を解決することなのである。
のプログラムを、データ処理手段の方に移植させる方法は、以下のような過程か
ら成ることを特徴とする。 −ソース言語の最小のサブセットを表す中間言語で表現されたそれぞれのプログ
ラムに各プログラムをコンパイルし、 −中間言語専用の所定の実行メディアを、データ処理手段に供給し、そして、 −それぞれのソース言語を中間言語に適合させるそれぞれのプログラミング・ラ
イブラリと共に、中間言語でのそれぞれのプログラムを、データ処理手段にロー
ドし、中間言語でのプログラムを所定の実行メディア内で実行する。
所定のマイクロプロセッサ式データ処理手段の実行メディア内に存在する最初の
最小の共通点である。例えば、実行メディアは、周知の様々なタイプのチップカ
ードの中に保存されており、つまり、それらのプログラムは、様々なソース言語
で書かれている。従って、本発明は、前述で示した第三の解決法の利点を、提供
するものであり、存在し得る全ての実行メディア全体を、マイクロプロセッサ式
データ処理手段の中に設置することを提案する。しかしながら、本発明は、相当
なメモリサイズ、つまりは実現不能なメモリサイズを必要としないで、一つの最
小限の中間言語専用の、小型化されてはいるが柔軟な実行メディアを一つしか、
チップカードのような各データ処理手段内に移植しないものである。そのような
場合には、その中間言語は、どの特定のソース言語とも結びついておらず、また
複数のソース言語の目的として役立つための基本言語として役割を果たしている
。従って、その中間言語を移植する為に必要なメモリは小さくなり、ゆえに、一
つのプログラムの実行は上記に提案された第三の解決法による場合よりも速くな
る。
や、それらが良好に機能する為に必要な特殊なセキュリティのプロパティをも表
現することができる中間言語と、 −その中間言語専用実行メディアではあるが、作業環境面は勿論のこと、アプリ
ケーションのセキュリティ面での各言語の制約によりよく適合する為に再構成も
行える実行メディア。
。 −プログラムを、それぞれの実行メディアに専用の機械語でコンパイル済プログ
ラムに、コンパイルし、そして −そのコンパイル済プログラムを中間言語で表現されたそれぞれのプログラムに
変換する。
する人にとって、中間言語でコードを生成するために、有益なものとなりうる。
このオペレーションを可能にするツールは、変換器である。そのソース言語にそ
れぞれ結びついた実行メディアの命令は、中間言語で書かれたオペレーションで
置き換えられることになる。
中間言語でのそれぞれのプログラムから有効化情報を抽出する為の一つの過程と
、ロードする過程の後に、抽出された有効化情報を所定の実行メディア内で検証
する過程を一つ含むことができる。
ちの一つと類似したものにすることもできる。本発明の基礎的な実施例に比べる
と全体として有利さが劣るものではあるが、ソース言語が、類似の高水準で修正
された言語である場合には、この変形も有益なものとなりうる。
拡張可能なものであることが好ましい。少なくともソース言語の一つと中間言語
は、オブジェクト指向言語であるのが好適である。
を一つ含んでもよく、該サーバーは、その後、コンパイルする過程を実行する。
線電話端末に内蔵される加入者識別カードであってもよい。
説明を、対応する添付図面を参照しつつ、読むことで更に明らかになっていく。 −図1は、既に説明を加えているが、それぞれの実行メディア用の様々なソース
言語でそれぞれ書かれた複数のプログラムの生成と実行のダイアグラムである。 −図2、3及び4は、既に説明を加えているが、第一、第二、及び第三の解決法
のダイアグラムであり、該解決法は、それぞれ先行技術で提案されたものであり
、様々な言語でのプログラムの操作互換性の問題を部分的に解決するものである
。 −図5は、本発明の好ましい実施例とその変形例に従う、様々なソース言語で書
かれた複数のプログラムの生成と実行のダイアグラムであり、一つの中間言語専
用で、かつ一枚のマイクロプロセッサ式カードに保存された一つの実行メディア
内で実行される。 −図6は、既知の言語で書かれた一つのプログラムを、本発明による中間言語に
コンパイルし変換する過程を示している。 −図7は、図6のプログラムに類似の、既知の言語で書かれた一つのプログラム
を中間言語に、直接コンパイルする過程である。 −図8は、第一の実施例による実行の前に、中間言語での一つのシーケンスを適
合させる過程を示している。 −図9と10は、仮想マシン言語で書かれた一つのシーケンスを、複数のシーケ
ンスに変換する際に、中間言語の拡張がある場合と無い場合とをそれぞれ示して
いる。 −図11は、実行前に、本発明の変形により、中間言語での一つのシーケンスを
適合させるところを示している。
リケーション・サーバーSER内での一見して異なるソース言語LS1〜LSN
でそれぞれ書かれる可能性がある。ソース言語は「高水準言語」や、「高級言語
」と呼ばれることがある。
ディアSEUにそれぞれのソース言語LSnで書かれた任意のプログラムPnを
、移植させることであり、該汎用実行メディアは、後述する「汎用」プログラム
可能チップカードCUのような、対応するデータ処理手段に保存されている。
ソース言語LSnでの一つのプログラムPnの開発と供給の最初の過程E0の後
に、基本的に四つの過程E1〜E4を含む。
ークRESを介して接続されたサーバーSER内で開発されたものである。例え
ば、端末TEは、ネットワークRESの賃貸線または専用線でサーバーに接続さ
れた銀行端末である。もう一つの例では、端末TEは、GSMタイプの移動無線
電話端末であり、デジタルセルラー無線電話ネットワークRESによってサーバ
ーSERに接続されており、サーバーは、無線電話ネットワークの信号ネットワ
ークを介して移動サービス交換局(MSC)に接続され、カードCUは、端末T
Eから取り外し可能なSIM(加入者識別モジュール)タイプの加入者識別カー
ドである。
合わせて、その実行メディアの既に提示された特性をそこから読み取って登録す
る。次に、ソース言語LSnでのプログラムPnは、各目的実行メディアSEn
に専用の機械語で表現されたコンパイル済プログラムPCnにコンパイルされる
。過程E1を行うコンパイラは、サーバーSERにインストールされた一つのプ
ログラムである。次に、過程E2では、コンパイル済プログラムPCnを、本発
明による中間言語LIに変換する。コンパイラと同様に、言語の変換器も、サー
バーSERにインプリメンテーションされた一つのプログラムであり、過程E2
を実行する。
でき、他の言語から生じたプログラムを効率的に表現することができる。 −強度の類型化:既に知られているように、類型化によるコードのセキュリティ
のメカニズムはセキュリティチェックの為の可能な限りのきめの細かさを構成す
るものである。その場合、各言語のセキュリティのプロパティはカードの中にあ
る最初のモデルに基づいて明示されるものである。中間言語LIにより、オブジ
ェクト言語のタイプとクラスに合わせて拡張可能な類型化による検査が可能にな
る。
は、様々な実行メディアSE1〜SENの機械語を表す最小限のサブセットであ
る。追加のプログラミング・ライブラリは、過程E2で言語変換器によって使用
されて、実行システムSEn用の基本的な各オペレーションが、汎用実行メディ
アSEU用の一つの命令セットでは置き換えられなくなるというような事態を回
避している。このような予防をすることにより、カードCUにロードされるプロ
グラムのメモリ容量が大きくなる危険が限られる。
ラム用の過程であり、該プログラムは、サーバーSERが伝送するメッセージを
カード内に受信することに関して、オブジェクト指向のソース言語JAVA(登
録商標)で表現されたコードのセグメントPJのようなものである。
)と呼ばれる形式で、コンパイルされるバイナリプログラムPJCにコンパイル
するが、該擬似コードは、実行メディアSEJ、つまり仮想マシンの概念JAV
A(登録商標)がインプリメンテーションされたマイクロ・コンピュータの下で
機能することができる。従来は、JAVA(登録商標)言語の下での各命令によ
り、仮想マシンの言語の複数命令が生み出されてきた。
録商標)の擬似コードを、中間言語LIの擬似コードにより置き換えることにと
どまるものではなく、例えば、関数の呼出しの引数を決定しつつ、コンパイル済
プログラムPJC内の基本的なオペレーション・シーケンスを中間言語での異な
るシーケンスPJLIに変換するものである。この変換は、カードCUの外で行
われるので、コンパイラで用いられる最適化と変換の技術を移植することが可能
である。過程E2での変換により、どのようなソース言語を使うかにかかわらず
、カードに伝送される言語LIでのコードは、確実に有効なものになる。更に、
言語の変換は、カードCUがプログラムの実現可能性を検査する為に用いる言語
LIが、うまく機能していることを示す証拠要素を生成するのに寄与する。過程
E2の後で、言語変換器は、そのカードがそのプログラムの実現可能性を検証す
るのに役立つ類型化の情報を提供する。
ードのセグメントPJに関するのと同様に、C言語で表現され、かつ作業テーブ
ルの宣言に対応するコードのセグメントPCを示している。C言語でのプログラ
ムを実行することのできる機械語専用の実行メディア用のセグメントPCを、従
来のようにコンパイルする為のコンパイル過程E1の後で、過程E2は、機械語
での対応するセグメントを中間言語LIで表現されたシーケンスPCLIに変換
する。
それらは、同じ変数と定数を含み、並びに同じように表現されたコマンドとオペ
レーションを含んでいるが、最初のソース言語に固有のシーケンスの終わりの、
一つの例外起動の書き込みは別である。
に示された例によれば、全てのオペレーションまたはコマンドを一つのオブジェ
クトに適用されるメッセージの形式で表現されている。既に知られたオブジェク
ト指向言語と同様に、中間言語での新しいメッセージは、いつでも定義すること
ができる。
のは、例えば最初はソース言語LSNで表現されたプログラムPNの生成に関す
るものである。この第二の変形については、コンパイルと変換の過程E1とE2
は、コンパイル過程E12で置き換えられ、該手順E12は、ソース言語LSN
でのプログラムPNを、中間言語LIで直接表現されたコンパイル済プログラム
にコンパイルし、該コンパイル済プログラムは次に、検証されて、過程E3でチ
ップカードCUにロードされる。
LIでのシーケンスPCLIに直接変換するものである。
検証とロードの工程CVCを経て、目的のチップカードCUの中に検証されて遠
隔ロードされる。工程CVCは、少なくともその一部、好ましくはその全部をカ
ードCUにインストールされる。工程CVCの他の部分は、特に、中間言語での
プログラムの実行を動的に検証することに関するものであり、サーバーSER内
か、あるいはそのカードを受け入れる端末TE内にインストールされる。
カード内に受信し、かつ中間言語LIで表現されたコードを、中間言語で直接実
行可能なバイナリプログラムの形式に変換する。特にそのセキュリティ、類型化
、そして封じ込めに関しての、中間言語でのプログラムの有効性の情報は、過程
E3の際に、そのプログラムから抽出されて端末TEに設定されることができ、
カードの中にそのプログラムをロードした後で、そのカードによって検証される
ものである。検証が失敗すると、プログラムは無効化される。この検証により、
プログラムをサブ問題SP2と同調させて、使用する環境が有効であることが確
実になる。
、チップカードの環境に固有な関連性のエディットのメカニズムに帰着させるこ
とができる。
ード内で本来の場所に補完することである。検証及び/又は適合化のメカニズム
は、受信したコードを完全に変換し、それをカード内での汎用実行メディアSE
Uによって、実行可能なプログラムに変換する。この変換の目的は、セキュリテ
ィ・チェックを動的に行う場合、プログラムの実行時間の点で、大いに不利益に
なってしまうが、セキュリティについてはそれを静的に行うことにより、コード
をより有効なものにすることである。実際上は、カードCUに搭載された適合化
のメカニズムにより、実行メディアSEU、つまりカードの中にあるマイクロプ
ロセッサにより直接実行されるプログラムを生成するという重要な仕事を行うこ
とができる。図8は、適合化されたシーケンスPADを供給する為のシーケンス
PJLI,PCLIに類似した中間言語PLIでのシーケンスから、過程E3で
適合化メカニズムにより実行される処理の一例を示している。
する為のカードCUの中にインストールされている。カードSUは特有の適合化
メカニズムを有している。
期間にわたってプログラムを受け入れるということであり、その中には中間言語
LI専用の実行メディアSEUがある。従って、多様なソース言語LS1〜LS
Nで書かれたプログラムP1〜PNは、同一のカードCUの中で共存しており、
該カードCU自体は、特にソース言語LS1〜LSNのいずれか一つ専用という
わけではなくて、様々なソース言語で書かれた様々なプログラムを収容すること
ができ、それが、サブ問題SP2を解決する。
アSE1〜SENの限定的なサブセットが一つあるだけである。過程E3では、
中間言語LIでの各プログラムと同時にプログラミング・ライブラリBPnをロ
ードし、過程E4で、ソース言語LSnを中間言語に適合させ、そうして最初の
プログラムPnを中間言語で実行する。その中間言語に特有のセキュリティのプ
ロパティは汎用実行メディアSEUの中に存在するものに「上書き」するかたち
でインポートする。カードCU内の汎用実行メディアSEUのアーキテクチャで
は、この側面は、セキュリティのプロパティを維持しつつ、メモリサイズと実行
速度の面で、搭載されたプログラムにとって効率的な環境を供給するものと考え
られており、それが、サブ問題SP3を解決する。
SEUは、 −サポートされたそれぞれの新しいソース言語につき新しいプログラミング・ラ
イブラリを受け入れて、そのソフトウェア環境の中で新しい言語で最初に書かれ
たプログラムを実行するのに適しており、 −プログラムによって処理されるタイプのチェックでセキュリティのメカニズム
を確実にサポートし、また、新しいタイプの定義も確実に受け入れて、新しいプ
ログラミング・ライブラリをロードする際に、関連したセキュリティのメカニズ
ムを記述するのに適している。
メディアそれ自体を対象にしている。サブ問題SP2とSP3の問題に対応する
為に、実行可能な各プログラムの生成の為の目的として、ソフトウェア及び/ま
たはハードウェアの実行メディアSEUを用いる。最初に活用されるものとは異
なった命令セットが、その実行メディアSEUに含まれることが望ましい。この
機能により、絶対的に、実行メディアSEUの完全な再定義が可能になり、特定
の言語から生じるコードを直接、解釈することができるようになる。過程E4で
目指す拡張のメカニズムは、例えば所定の言語から生じるコードの複数の部分に
とって有益であり、特に、カードCUの最初の汎用実行メディアSEUによって
供給されるセマンティックとは異なるセマンティックを定義するオペレーション
を移植することが可能になる。
るものであり、それがテーブルの限界からはみ出るものである場合は、JAVA
(登録商標)言語では一つの例外を起動するが、その一方で、中間言語L1を最
初に移植する際には、基本命令により、そのテーブルのいずれかのセルへのアク
セスが可能になる。図9に示されているように、単純な解決法は、オペレーショ
ンOPJをJAVA(登録商標)言語に変換して、中間言語LIでのオペレーシ
ョン・シーケンスOPLIaで、それを拡張することなく、一つのテーブルにア
クセスすることにある。コードが無用に膨れ上がることは、カード内部では不利
になり、それを避ける為に、JAVA(登録商標)の擬似コード(バイト・コー
ド)と同等のセマンティックを正確に実現する基本的命令を、図10の一つのオ
ペレーション・シーケンスOPLIb内で線7〜10で示されているように、汎
用実行メディアSEUの中で定義される。
3dとE4dに置き換えられる。目指す目的は、特殊化された実行メディアSE
Sであり、例えばハードウェアのアーキテクチャと、場合によっては、ソース言
語LS1〜LSN専用の最初の実行メディアSE1〜SENの一つに類似した既
に知られているソフトウェアのアーキテクチャがある。
メカニズムOPTであり、それは、そのカードの外部で最適な効率的なネイティ
ブの最終コードを生成するものである。セキュリティの束縛は、できれば緩める
のが望ましいが、それはプログラムを作るのが特定のチップカードCSの為であ
ることがはっきりしており、業界で知られた信頼性の検査を通過するものだから
である。
たシーケンスPAdとの間の適合化を示している。
実行メディアSESに搭載し、ソース言語LSnでのプログラムPnから生じる
プログラムがその環境で機能するようにする。
、従って、新しい工程CVCの書き込みは新しい言語で機能する。
である。実行メディアSESは所定の実行メディアSEnに依存したままである
し、ソース言語LSnのプログラミング・ライブラリBPnと最初は別の言語の
為にプログラムされた実行メディアSESについて予想されるプログラミング・
ライブラリとの間の不適合により、更に大きなメモリの容量が必要となり、効率
も落ちることになる。
グラムの生成と実行のダイアグラムである。
先行技術で提案されたものであり、様々な言語でのプログラムの操作互換性の問
題を部分的に解決するものである。
先行技術で提案されたものであり、様々な言語でのプログラムの操作互換性の問
題を部分的に解決するものである。
先行技術で提案されたものであり、様々な言語でのプログラムの操作互換性の問
題を部分的に解決するものである。
数のプログラムの生成と実行のダイアグラムであり、一つの中間言語専用で、か
つ一枚のマイクロプロセッサ式カードに保存された一つの実行メディア内で実行
される。
ルし変換する過程を示している。
語に、直接コンパイルする過程である。
過程を示している。
際に、中間言語の拡張がある場合と無い場合とをそれぞれ示している。
際に、中間言語の拡張がある場合と無い場合とをそれぞれ示している。
ところを示している。
Claims (7)
- 【請求項1】それぞれの実行メディア(SE1〜SEN)に専用のソース言
語(LS1〜LSN)でそれぞれ書かれた複数のプログラム(P1〜PN)を、
一つのデータ処理手段に移植させる方法であって、以下の過程を含むことを特徴
とする方法。 −ソース言語の最小のサブセットを表す中間言語(LI)で表現されたそれぞれ
のプログラムに各プログラム(Pn)をコンパイルし(E1,E2;E12)、
−中間言語専用の所定の実行メディア(SEU;SES)を、データ処理手段(
CU;CS)に供給し(E4)、 −それぞれのソース言語(LSn)を中間言語(LI)に適合させるそれぞれの
プログラミング・ライブラリ(BPn)と共に、中間言語でのそれぞれのプログ
ラムを、データ処理手段にロードし(E3)、中間言語でプログラムを所定の実
行メディア(SEU;SES)内で実行する。 - 【請求項2】コンパイルする過程は以下の過程を含む、請求項1に記載の方
法。 −プログラム(Pn)を、それぞれの実行メディア(SEn)に専用の機械語で
済プログラム(PCn)にコンパイルし、そして −コンパイル済プログラム(PCn)を中間言語(LI)で表現されたそれぞれ
のプログラムに変換する。 - 【請求項3】ロードする過程(E3)の前に、中間言語(LI)でのそれぞ
れのプログラムから有効化情報を抽出する為の一つの過程と、ロードする過程の
後に、抽出された有効化情報を所定の実行メディア(SEU;SES)で検証す
る為の一つの過程(E3)を含む、請求項1または2に記載の方法。 - 【請求項4】所定の実行メディア(SES)は、実行メディア(SE1〜S
EN)のうちの一つに類似したものである、請求項1から3のいずれか一つに記
載の方法。 - 【請求項5】所定の実行メディア(SEU;SES)の特性を、サーバー(
SER)により読込む一つの過程を含み、該サーバーは、次にコンパイルする過
程(E1,E2;E12)を実行する、請求項1から4のいずれか一つに記載の
方法。 - 【請求項6】データ処理手段は、チップカード(CU,CS)である、請求
項1から5のいずれか一つに記載の方法。 - 【請求項7】チップカードは,移動無線電話端末(TE)に内蔵された加入
者識別カードである、請求項6に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9907239A FR2794543B1 (fr) | 1999-06-04 | 1999-06-04 | Migration de differents langages sources vers un support d'execution |
FR99/07239 | 1999-06-04 | ||
PCT/FR2000/001528 WO2000075776A1 (fr) | 1999-06-04 | 2000-06-02 | Migration de differents langages sources vers un support d'execution |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003501741A true JP2003501741A (ja) | 2003-01-14 |
JP3706065B2 JP3706065B2 (ja) | 2005-10-12 |
Family
ID=9546536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001501983A Expired - Fee Related JP3706065B2 (ja) | 1999-06-04 | 2000-06-02 | 様々なソース言語の実行メディアへの移植 |
Country Status (10)
Country | Link |
---|---|
US (1) | US6810518B1 (ja) |
EP (1) | EP1192537B1 (ja) |
JP (1) | JP3706065B2 (ja) |
CN (1) | CN1367895A (ja) |
AU (1) | AU5229800A (ja) |
DE (1) | DE60001118T2 (ja) |
ES (1) | ES2190415T3 (ja) |
FR (1) | FR2794543B1 (ja) |
MX (1) | MXPA01012308A (ja) |
WO (1) | WO2000075776A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2795835B1 (fr) * | 1999-07-01 | 2001-10-05 | Bull Cp8 | Procede de verification de transformateurs de codes pour un systeme embarque, notamment sur une carte a puce |
US20100174717A1 (en) * | 2002-02-28 | 2010-07-08 | Olivier Fambon | Interative serialisation procedure for structured software objects |
US8010405B1 (en) | 2002-07-26 | 2011-08-30 | Visa Usa Inc. | Multi-application smart card device software solution for smart cardholder reward selection and redemption |
US8015060B2 (en) | 2002-09-13 | 2011-09-06 | Visa Usa, Inc. | Method and system for managing limited use coupon and coupon prioritization |
US8626577B2 (en) | 2002-09-13 | 2014-01-07 | Visa U.S.A | Network centric loyalty system |
US7121456B2 (en) | 2002-09-13 | 2006-10-17 | Visa U.S.A. Inc. | Method and system for managing token image replacement |
US9852437B2 (en) | 2002-09-13 | 2017-12-26 | Visa U.S.A. Inc. | Opt-in/opt-out in loyalty system |
US7827077B2 (en) | 2003-05-02 | 2010-11-02 | Visa U.S.A. Inc. | Method and apparatus for management of electronic receipts on portable devices |
US7380242B2 (en) * | 2003-05-14 | 2008-05-27 | Mainsoft Israel Ltd. | Compiler and software product for compiling intermediate language bytecodes into Java bytecodes |
US8554610B1 (en) | 2003-08-29 | 2013-10-08 | Visa U.S.A. Inc. | Method and system for providing reward status |
US7104446B2 (en) | 2003-09-03 | 2006-09-12 | Visa U.S.A., Inc. | Method, system and portable consumer device using wildcard values |
US7051923B2 (en) | 2003-09-12 | 2006-05-30 | Visa U.S.A., Inc. | Method and system for providing interactive cardholder rewards image replacement |
US8407083B2 (en) | 2003-09-30 | 2013-03-26 | Visa U.S.A., Inc. | Method and system for managing reward reversal after posting |
US8005763B2 (en) | 2003-09-30 | 2011-08-23 | Visa U.S.A. Inc. | Method and system for providing a distributed adaptive rules based dynamic pricing system |
US7653602B2 (en) | 2003-11-06 | 2010-01-26 | Visa U.S.A. Inc. | Centralized electronic commerce card transactions |
DE102005033597A1 (de) * | 2005-07-19 | 2007-02-01 | Giesecke & Devrient Gmbh | Erzeugung und Ausführung von Programmen |
CN101256612B (zh) * | 2008-04-01 | 2010-11-03 | 北京飞天诚信科技有限公司 | 基于.Net卡的程序保护方法和系统 |
US8473897B2 (en) * | 2008-10-03 | 2013-06-25 | Microsoft Corporation | Common intermediate representation for data scripting language |
US7992781B2 (en) | 2009-12-16 | 2011-08-09 | Visa International Service Association | Merchant alerts incorporating receipt data |
US8429048B2 (en) | 2009-12-28 | 2013-04-23 | Visa International Service Association | System and method for processing payment transaction receipts |
US11163560B1 (en) * | 2020-04-09 | 2021-11-02 | Capital One Services, Llc | Methods and arrangements to process comments |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2539385B2 (ja) * | 1986-08-08 | 1996-10-02 | 株式会社日立製作所 | 情報処理装置 |
JP3602857B2 (ja) * | 1991-04-23 | 2004-12-15 | 株式会社日立製作所 | 多機種対応型情報処理システム、および、方法 |
US6138140A (en) * | 1995-07-14 | 2000-10-24 | Sony Corporation | Data processing method and device |
US5794164A (en) * | 1995-11-29 | 1998-08-11 | Microsoft Corporation | Vehicle computer system |
US5732074A (en) * | 1996-01-16 | 1998-03-24 | Cellport Labs, Inc. | Mobile portable wireless communication system |
US5960200A (en) * | 1996-05-03 | 1999-09-28 | I-Cube | System to transition an enterprise to a distributed infrastructure |
ES2184066T3 (es) * | 1996-10-25 | 2003-04-01 | Schlumberger Systems & Service | Uso de un lenguaje de programacion de alto nivel con microcontrolador. |
US6321376B1 (en) * | 1997-10-27 | 2001-11-20 | Ftl Systems, Inc. | Apparatus and method for semi-automated generation and application of language conformity tests |
US6199128B1 (en) * | 1998-03-26 | 2001-03-06 | Gemplus, S.C.A. | Smart card system for use with peripheral devices |
-
1999
- 1999-06-04 FR FR9907239A patent/FR2794543B1/fr not_active Expired - Fee Related
-
2000
- 2000-06-02 JP JP2001501983A patent/JP3706065B2/ja not_active Expired - Fee Related
- 2000-06-02 EP EP00937002A patent/EP1192537B1/fr not_active Expired - Lifetime
- 2000-06-02 US US09/585,414 patent/US6810518B1/en not_active Expired - Fee Related
- 2000-06-02 CN CN00811225A patent/CN1367895A/zh active Pending
- 2000-06-02 WO PCT/FR2000/001528 patent/WO2000075776A1/fr active IP Right Grant
- 2000-06-02 DE DE60001118T patent/DE60001118T2/de not_active Expired - Lifetime
- 2000-06-02 MX MXPA01012308A patent/MXPA01012308A/es not_active Application Discontinuation
- 2000-06-02 ES ES00937002T patent/ES2190415T3/es not_active Expired - Lifetime
- 2000-06-02 AU AU52298/00A patent/AU5229800A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
DE60001118T2 (de) | 2003-10-16 |
AU5229800A (en) | 2000-12-28 |
FR2794543A1 (fr) | 2000-12-08 |
US6810518B1 (en) | 2004-10-26 |
JP3706065B2 (ja) | 2005-10-12 |
EP1192537B1 (fr) | 2003-01-02 |
ES2190415T3 (es) | 2003-08-01 |
CN1367895A (zh) | 2002-09-04 |
MXPA01012308A (es) | 2002-08-12 |
FR2794543B1 (fr) | 2001-08-24 |
EP1192537A1 (fr) | 2002-04-03 |
WO2000075776A1 (fr) | 2000-12-14 |
DE60001118D1 (de) | 2003-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003501741A (ja) | 様々なソース言語の実行メディアへの移植 | |
US5675804A (en) | System and method for enabling a compiled computer program to invoke an interpretive computer program | |
US5038025A (en) | Method of receiving program down-loaded to IC card and IC card thereof | |
CN111176791B (zh) | 一种基于多虚拟机区块链平台跨虚拟机调用方法 | |
US8001518B2 (en) | Configuring a shared library to accommodate relocatable data in a pervasive device | |
CN109739508B (zh) | 源代码编译方法、装置、系统及存储介质 | |
CN108139921A (zh) | 仿真器的性能优化 | |
US7181732B2 (en) | Method and apparatus for facilitating lazy type tagging for compiled activations | |
US7581216B2 (en) | Preserving platform independence with native accelerators for performance critical program objects | |
CN108229148A (zh) | 一种基于Android虚拟机的沙箱脱壳方法及系统 | |
CN114115990A (zh) | 动静结合二进制翻译的程序迁移方法、系统及存储介质 | |
US7197600B2 (en) | Transferring data along with code for program overlays | |
US20080127034A1 (en) | Distributed resource understanding tool management | |
US7051323B2 (en) | Method and apparatus for initializing romized system classes at virtual machine build time | |
US6901591B1 (en) | Frameworks for invoking methods in virtual machines | |
CN115705194A (zh) | 一种硬件内存序架构下的代码处理方法及相应装置 | |
CN114840195B (zh) | 一种针对iOS SDK静态库的私有化方法 | |
CN116107578A (zh) | 一种执行智能合约的方法、装置、电子设备和存储介质 | |
CN110990018B (zh) | 一种嵌入式系统的编译方法及编译系统 | |
CN112650512A (zh) | 硬件驱动方法及装置、终端、存储介质 | |
CN111880803A (zh) | 一种应用于多平台的软件构建方法及装置 | |
JP3682050B2 (ja) | 組込みソフトウェア開発装置 | |
CN112783502A (zh) | 一个面向移动端区块链节点的访问方法及系统 | |
EP1306757A2 (en) | Transferring data along with code for program overlays | |
KR100703285B1 (ko) | 메시르를 이용한 교환 시스템의 동적 서비스를 지원하는방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041124 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050223 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050302 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050524 |
|
A524 | Written submission of copy of amendment under section 19 (pct) |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20050524 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050727 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100805 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120805 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |