JP6294886B2 - アプリケーション用の中間言語コードからネイティブコードを生成すること - Google Patents
アプリケーション用の中間言語コードからネイティブコードを生成すること Download PDFInfo
- Publication number
- JP6294886B2 JP6294886B2 JP2015530146A JP2015530146A JP6294886B2 JP 6294886 B2 JP6294886 B2 JP 6294886B2 JP 2015530146 A JP2015530146 A JP 2015530146A JP 2015530146 A JP2015530146 A JP 2015530146A JP 6294886 B2 JP6294886 B2 JP 6294886B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- code
- mdil
- computing device
- libraries
- 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.)
- Active
Links
- 238000009434 installation Methods 0.000 claims description 77
- 239000011230 binding agent Substances 0.000 claims description 65
- 238000000034 method Methods 0.000 claims description 62
- 230000027455 binding Effects 0.000 claims description 49
- 238000009739 binding Methods 0.000 claims description 49
- 230000015654 memory Effects 0.000 claims description 23
- 230000001419 dependent effect Effects 0.000 claims description 18
- 238000011156 evaluation Methods 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 18
- 230000006854 communication Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000037406 food intake Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007177 brain activity Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- 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
-
- 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/51—Source to source
-
- 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/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Description
[019] 図1は、例示的なオンラインプロバイダ/マーケットプレイスと、MDILコード120をバインドすることによってインストールされるアプリケーションのネイティブイメージ110をロードする例示的なコンピューティングデバイス100とを示す図である。図1においては、アプリケーション用の仮コード130が、オンラインプロバイダ140によって受信される。たとえば、仮コード130は、ソースコード、またはMicrosoft中間言語(MSIL)などの中間言語のコードであるアプリケーション用のコードであることが可能である。135において、その仮コードは、コンパイラ150に提供され、コンパイラ150は、その仮コード130をアプリケーション用のMDILコード120へとコンパイルする。仮コード130は、アプリケーション用のコードの、MDILコード120よりも高いレベルの表現であることが可能である。たとえば、仮コード130は、マシンコードにさらに近いレベルであるMDILコード120よりも高いレベルである中間言語(IL)である。MDILコード120は、そのMDILコード120が、プロセッサ命令セットに基づくネイティブコードを含むようにマシン依存であることが可能である。プロセッサ命令セットは、ARMプロセッサ、x86プロセッサ、またはその他のプロセッサのための命令セットであることが可能である。MDILコード120は、バインディングを通じてネイティブコードを生成するために解決することができる、シンボリックリファレンスを伴う解決されていない疑似命令を含むこともできる。
[021] 図2は、コンピューティングデバイス上にアプリケーションをインストールするためにアプリケーションのMDILコードをバインドする例示的な方法200の流れ図である。さまざまな実施態様においては、図2の示されている方法ブロックは、マージすること、サブブロックへと分割すること、または省略することが可能である。
[028] 図3は、例示的なオンラインプロバイダ/マーケットプレイスと、そのオンラインプロバイダ(またはその他のオンラインプロバイダ)によって提供および生成されるMDILなどの中間言語のコードから1つまたは複数のネイティブイメージを生成することによって1つまたは複数のマネージドアプリケーションをインストールすることができる例示的なコンピューティングデバイス350とを示す図である。図3においては、オンラインプロバイダ305が、コンパイラ310を使用して、仮コード315を1つまたは複数のMDILファイル320へとコンパイルする。MDILファイル320は、MDILのコードを含むファイルである。1つまたは複数のMDILファイル320のセットは、アプリケーション用のインストレーションパッケージ325内にパッケージされる。MDILファイルのうちのそれぞれには、330において示されているように、信頼されているものとしてサインすることができる。リソースファイルまたはアプリケーションコンテンツなどのサポート情報を含む1つまたは複数のファイル335をインストレーションパッケージ325内に含めることができる。インストレーションパッケージ325は、340において示されているように、オンラインプロバイダ305によって格納され、ダウンロード用に提供される。インストレーションパッケージ325がオンラインプロバイダ305からダウンロードされる前に、345において示されているように、インストレーションパッケージ325そのものに、信頼されているものとしてサインすることができる。
[032] 図4は、MDILのコードを使用したネイティブコード生成を通じてアプリケーションをインストールおよび更新するための例示的な方法400の流れ図である。図4においては、410において示されているように、MDILコードを含むインストレーションパッケージが生成される。いくつかの実施態様においては、MDILコードを1つまたは複数のファイル内に含めることができる。いくつかの実施態様においては、仮コードをコンパイルして、MDILコードを生成することができる。
[046] 図5は、ダウンロード用に提供することができるアプリケーション用のインストレーションパッケージを生成する例示的な方法500である。さまざまな実施態様においては、図5の示されている方法ブロックは、マージすること、サブブロックへと分割すること、または省略することが可能である。図5においては、アプリケーション用の仮コードが受信される。たとえば、アプリケーションの開発者は、そのアプリケーション用のコードを仮の言語および/または状態で送信することができ、そのアプリケーション用の仮コードを、オンラインマーケットプレイスなどのオンラインプロバイダによって受信することができる。いくつかの実施態様においては、アプリケーション用の仮コードは、アプリケーション用のソースコードである。たとえば、ソースコードは、C++、C♯、Visual Basic(登録商標)、J♯、J++、またはその他の類似のプログラミング言語などの1つまたは複数のプログラミング言語で書かれたコードであることが可能である。いくつかの実施態様においては、アプリケーション用の仮コードは、ILなどの中間表現である。たとえば、アプリケーション用のソースコードは、コンパイラおよび/またはジェネレータによってILの中間表現へとコンパイルすることができる。いくつかの実施態様においては、ILは、Microsoft中間言語(MSIL)であることが可能である。いくつかの実施態様においては、ILは、マシン依存であるネイティブ命令を含まない。しかしながら、ILのコードは、マシン依存であるネイティブ命令を含むMDILのコードへとコンパイルすることができる。
[059] 図6は、1つまたは複数のインストールされたアプリケーション用の1つまたは複数の更新されたネイティブイメージ605を生成することができるコンピューティングデバイス600の図である。図6においては、コンピューティングデバイスは、そのコンピューティングデバイス上の1つまたは複数のインストールされたアプリケーション用の1つまたは複数の生成されたネイティブイメージ610を含む。コンピューティングデバイス600は、更新されたライブラリ620を含み、更新されたライブラリ620は、1つまたは複数のネイティブイメージ610を生成するためにアプリケーションのそれぞれのMDILコードにバインドされた後に更新された、1つまたは複数のライブラリを含む。1つまたは複数のネイティブイメージ610にバインドされたライブラリのうちの少なくとも1つが更新されたため、コンピューティングデバイス600は、自分にインストールされたアプリケーションを、それらのインストールされたアプリケーション用の1つまたは複数の更新されたネイティブイメージ605を生成することによって更新する。コンピューティングデバイスはまた、更新されたランタイムエンジン670を含む。
[065] 図7は、MDILのコードからアプリケーション用のネイティブイメージを生成することによってアプリケーションを更新するための例示的な方法700である。さまざまな実施態様においては、図7の示されている方法ブロックは、マージすること、サブブロックへと分割すること、または省略することが可能である。図7においては、710において示されているように、1つまたは複数のライブラリのセットが、コンピューティングデバイス上で更新される。たとえば、コンピューティングデバイス上の1つまたは複数のライブラリの一部またはすべてが、変更、修正、またはその他の形で更新される。いくつかの実施態様においては、コンピューティングデバイス更新の一環として、1つまたは複数のライブラリのセットが更新され、デバイスのランタイムエンジンが更新される。いくつかの実施態様においては、コンピューティングデバイス上の1つまたは複数のアプリケーションに関して、(インストレーション中にそれぞれのアプリケーション用のネイティブイメージを生成するために)それぞれのアプリケーション用のMDILコードにバインドされた1つまたは複数のライブラリのうちのライブラリの少なくとも1つが、変更、修正、またはその他の形で更新される。いくつかの実施態様においては、ライブラリは、そのライブラリにバインドされているアプリケーション用のネイティブイメージのコードが、そのライブラリに関する少なくとも1つのオフセットにもはや適切に対応しなくなるように更新および/または更新される。たとえば、オブジェクトの少なくとも1つのフィールドに関するオフセットが、ライブラリ内で変わっている、といった具合である。オペレーティングシステム更新の一環として、コンピューティングデバイス上のライブラリのセットを更新することができる。または、フレームワークに対する更新および/または実行エンジン更新の一環として、コンピューティングデバイス上のライブラリを更新することができる。たとえば、コンピューティングデバイスは、.NETフレームワークなど、マネージドアプリケーションを実行するためのフレームワークを使用することができ、そのフレームワークの一部であるライブラリが、変更および/もしくは更新され、ならびに/またはそのフレームワークの一部であるランタイムエンジンが、変更および/もしくは更新される。.NETフレームワークにおいては、ベースクラスライブラリを、異なるおよび/またはより新たなバージョンのフレームワークライブラリに変更または更新することができる。いくつかのケースにおいては、コンピューティングデバイス上のすべてのライブラリが更新および/または変更されるとは限らない。その他のケースにおいては、コンピューティングデバイス上のすべてのライブラリが更新および/または変更される。
[073] 図8は、全体に802で示されている、さまざまな任意選択のハードウェアコンポーネントおよびソフトウェアコンポーネントを含む例示的なモバイルデバイス800を示すシステム図である。一般に、このモバイルデバイス内のコンポーネント802は、別のコンポーネントと通信することができるが、例示を簡単にするために、すべての接続が示されているわけではない。このモバイルデバイスは、さまざまなコンピューティングデバイス(たとえば、携帯電話、スマートフォン、タブレットコンピュータ、ハンドヘルドコンピュータ、携帯情報端末(PDA)など)のうちの任意のものであることが可能であり、セルラネットワークまたは衛星ネットワークなどの1つまたは複数のモバイル通信ネットワーク804とのワイヤレス双方向通信を可能にすることができる。
[079] 図9は、説明されている実施形態、技術、および技術を実施することができる適切な実施環境900の一般化された例を示している。
[084] 図10は、説明されているイノベーションを実施することができる適切なコンピューティング環境1000の一般化された例を示している。コンピューティング環境1000は、使用または機能の範囲に関して何らかの限定を提示することを意図されているものではない。なぜなら、これらのイノベーションは、多様な汎用または専用のコンピューティングシステムにおいて実施することができるためである。たとえば、コンピューティング環境1000は、さまざまなコンピューティングデバイス(たとえば、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、タブレットコンピュータ、メディアプレーヤ、ゲーミングシステム、モバイルデバイスなど)のうちの任意のものであることが可能である。
Claims (9)
- コンピューティングデバイスにおいて、オンラインプロバイダから、アプリケーション用の少なくとも1つのデバイスタイプ固有のインストレーションパッケージを受信するステップであって、前記少なくとも1つのデバイスタイプ固有のインストレーションパッケージが、前記オンラインプロバイダによってアプリケーション用に生成された非実行可能なマシン依存中間言語(MDIL)コードを伴うファイルと、前記アプリケーションの実行時に前記アプリケーションが使用することのできる1つまたは複数のリソースファイルと、前記少なくとも1つのデバイスタイプ固有のインストレーションパッケージに含まれるMDILファイルのセットのうちの少なくとも1つを示すファイルのリストと、示されたそれぞれのMDILファイルの前記コードにバインドされることとなる1つまたは複数のライブラリのリストと、を含む、ステップと、
前記コンピューティングデバイスにおいて、前記非実行可能なMDILコードをバインドすることによって前記アプリケーション用のネイティブイメージを生成することで、前記コンピューティングデバイス上に前記アプリケーションをインストールするステップであって、前記ネイティブイメージを前記生成することが、
前記非実行可能なMDILコードの一部分を前記コンピューティングデバイス上の1つまたは複数のライブラリとバインドすることを含み、疑似命令の中の未解決のシンボリックリファレンスを解決して、前記ネイティブイメージ用の対応するネイティブ命令を生成することを含む、ステップと、
前記ネイティブイメージを、実行用に前記アプリケーションをロードする際に使用するために前記コンピューティングデバイス上に格納するステップと、
前記コンピューティングデバイス上のライブラリのセットを更新するステップであって、前記ライブラリのセットが、前記非実行可能なMDILコードの前記一部分にバインドされた前記1つまたは複数のライブラリのうちの少なくとも1つのライブラリを含む、ステップと、
前記コンピューティングデバイス上の前記ライブラリのセットの前記更新の後、前記非実行可能なMDILコードの前記一部分を前記1つまたは複数のライブラリのうちの前記少なくとも1つのライブラリとバインドすることで、前記アプリケーション用の更新されたネイティブイメージを生成するステップであって、前記バインドすることにより、前記ライブラリのセットの前記更新に応じて、前記アプリケーション用に前記コンピューティングデバイス上で再コンパイルが行われることが回避される、ステップと
を含み、
前記非実行可能なMDILコードは、以前に、前記コンピューティングデバイスからリモートでコンパイルされ、かつ、前記オンラインプロバイダによって送信されたものであり、前記非実行可能なMDILコードは、マシン依存命令と、前記アプリケーションのインストール中にネイティブコードに解決されることとなる前記未解決のシンボリックリファレンスを伴う前記疑似命令と、を含み、前記マシン依存命令は、プロセッサ用のプロセッサ命令セットに基づき、
前記少なくとも1つのデバイスタイプ固有のインストレーションパッケージは、以前に、オンラインマーケットプレイスにおいて、さまざまなその他のデバイスタイプ固有のインストレーションパッケージとともに前記コンピューティングデバイスからリモート保存されたものである、
方法。 - 前記コンピューティングデバイスの少なくとも1つのランタイムエンジンを更新するステップと、
前記更新されたネイティブイメージを、実行用に前記アプリケーションをロードする際に使用するために前記コンピューティングデバイス上に格納するステップと
をさらに含み、
前記アプリケーション用の前記更新されたネイティブイメージは、前記更新されたネイティブイメージが前記更新された少なくとも1つのランタイムエンジンを使用して実行可能であるように生成される、請求項1に記載の方法。 - 前記アプリケーションの実行中に前記ネイティブイメージをロードするステップをさらに含み、前記ネイティブイメージを前記ロードすることが共通言語ランタイムによって実行される、請求項1に記載の方法。
- 前記マシン依存命令が、1つまたは複数のマシンコード命令とアセンブリ命令とを含む、請求項1に記載の方法。
- 前記非実行可能なMDILコードの一部分を前記1つまたは複数のライブラリと前記バインドすることが、
前記非実行可能なMDILコードの一部分の前記疑似命令のうちの所与の疑似命令からネイティブ言語命令を生成することを含む、請求項4に記載の方法。 - ネイティブ言語命令を前記生成することが、前記所与の疑似命令に基づいて数値フィールドオフセットを生成することを含む、請求項5に記載の方法。
- 前記所与の疑似命令が、フィールドを識別するトークンを含み、前記ネイティブ言語命令が、実行されたときに前記フィールドを参照するための前記数値フィールドオフセットを含む、請求項6に記載の方法。
- 前記アプリケーション用の新たなMDILコードを受信するステップと、
前記新たなMDILコードの新たな部分を前記コンピューティングデバイス上の前記1つまたは複数のライブラリとバインドすることを含む、前記アプリケーション用の更新されたネイティブイメージを生成することによって、前記コンピューティングデバイス上の前記アプリケーションを更新するステップと、
前記更新されたネイティブイメージを、実行用に前記アプリケーションをロードする際に使用するために前記コンピューティングデバイス上に格納するステップと
をさらに含む、請求項1に記載の方法。 - プロセッサとメモリとを含むコンピューティングデバイスであって、前記メモリが、前記コンピューティングデバイスにオペレーションを実行させるためのコンピュータ実行可能命令を格納しており、前記オペレーションが、
前記コンピューティングデバイスにおいて、オンラインプロバイダからアプリケーション用の少なくとも1つのデバイスタイプ固有のインストレーションパッケージを受信するステップであって、前記少なくとも1つのデバイスタイプ固有のインストレーションパッケージが、非実行可能なマシン依存中間言語(MDIL)コードを含む非実行可能なMDILファイルのセットと、前記アプリケーションの実行時に前記アプリケーションが使用することのできる1つまたは複数のリソースファイルと、前記少なくとも1つのデバイスタイプ固有のインストレーションパッケージに含まれる前記MDILファイルのセットのうちの少なくとも1つを示すファイルのリストと、示されたそれぞれのMDILファイルの前記コードにバインドされることとなる1つまたは複数のライブラリのリストと、を含む、ステップと、
前記ファイルのリストを評価するステップと、
前記ファイルのリストの前記評価に基づいて、前記コンピューティングデバイスのバインダに、前記非実行可能なMDILファイルのセットのうちの少なくとも1つの非実行可能なMDILファイルと、前記少なくとも1つの非実行可能なMDILファイルにバインドされることになる1つまたは複数のライブラリとを提供するステップと、
前記バインダを用いて、前記アプリケーションのインストール中に前記アプリケーション用のネイティブイメージを生成するステップであって、前記生成するステップが、前記1つまたは複数のライブラリを使用して前記少なくとも1つのMDILファイルの前記非実行可能なMDILコードをバインドすることを含み、疑似命令のシンボリックリファレンスを解決して、前記ネイティブイメージ用の対応するネイティブ命令を生成することを含む、ステップと、
前記コンピューティングデバイス上のライブラリのセットを更新するステップであって、前記ライブラリのセットが、前記非実行可能なMDILコードにバインドされた前記1つまたは複数のライブラリのうちの少なくとも1つのライブラリを含む、ステップと、
前記コンピューティングデバイス上の前記ライブラリのセットの前記更新の後、前記非実行可能なMDILコードを前記1つまたは複数のライブラリのうちの前記少なくとも1つのライブラリとバインドすることで、前記アプリケーション用の更新されたネイティブイメージを生成するステップと
を含み、
前記非実行可能なMDILコードは、以前に、前記コンピューティングデバイスからリモートでコンパイルされたものであり、前記非実行可能なMDILコードは、マシン依存命令と、前記アプリケーションのインストール中にネイティブコードに解決されることとなる未解決の前記シンボリックリファレンスを伴う前記疑似命令と、を含み、前記マシン依存命令は、前記プロセッサ用のプロセッサ命令セットに基づき、
前記少なくとも1つのデバイスタイプ固有のインストレーションパッケージは、以前に、オンラインマーケットプレイスにおいて、前記コンピューティングデバイスのデバイスタイプ以外のデバイスタイプに固有の、その他のさまざまなデバイスタイプ固有のインストレーションパッケージとともに前記コンピューティングデバイスからリモート保存されたものであり、
前記1つまたは複数のリソースファイルは、音声情報、音楽情報、グラフィックス情報、ビデオ情報、その他のメディア情報、データベース情報、およびテキスト情報のうちの1つまたは複数を含み、
前記バインダの使用により、前記1つまたは複数のライブラリが変更された場合、および/または、ランタイムエンジンが変更された場合に、前記アプリケーション用に前記コンピューティングデバイス上で再コンパイルが行われることが回避される、
コンピューティングデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/604,618 | 2012-09-05 | ||
US13/604,618 US9569184B2 (en) | 2012-09-05 | 2012-09-05 | Generating native code from intermediate language code for an application |
PCT/US2013/057892 WO2014039458A1 (en) | 2012-09-05 | 2013-09-03 | Generating native code from intermediate language code for an application |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015531502A JP2015531502A (ja) | 2015-11-02 |
JP2015531502A5 JP2015531502A5 (ja) | 2016-09-15 |
JP6294886B2 true JP6294886B2 (ja) | 2018-03-14 |
Family
ID=49226515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015530146A Active JP6294886B2 (ja) | 2012-09-05 | 2013-09-03 | アプリケーション用の中間言語コードからネイティブコードを生成すること |
Country Status (19)
Country | Link |
---|---|
US (2) | US9569184B2 (ja) |
EP (2) | EP3249526B1 (ja) |
JP (1) | JP6294886B2 (ja) |
KR (1) | KR102077360B1 (ja) |
CN (1) | CN104781785B (ja) |
AU (1) | AU2013312865B2 (ja) |
BR (1) | BR112015004684A2 (ja) |
CA (1) | CA2883571A1 (ja) |
CL (1) | CL2015000524A1 (ja) |
HK (1) | HK1212482A1 (ja) |
IL (1) | IL237547A0 (ja) |
MX (1) | MX348681B (ja) |
MY (1) | MY181735A (ja) |
NZ (1) | NZ705379A (ja) |
PH (1) | PH12015500405B1 (ja) |
RU (1) | RU2643484C2 (ja) |
SG (1) | SG11201501527RA (ja) |
WO (1) | WO2014039458A1 (ja) |
ZA (1) | ZA201501182B (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE537794C2 (sv) * | 2012-03-20 | 2015-10-20 | Propellerhead Software Aktiebolag | Förfaranden för att distribuera en dataprogramprodukt och ett datorsystem |
CN104798075A (zh) * | 2012-09-28 | 2015-07-22 | 惠普发展公司,有限责任合伙企业 | 应用随机化 |
US9104504B2 (en) * | 2013-03-13 | 2015-08-11 | Dell Products Lp | Systems and methods for embedded shared libraries in an executable image |
US11050820B2 (en) * | 2013-04-29 | 2021-06-29 | Sap Se | Cloud sharing system |
WO2015035289A1 (en) * | 2013-09-06 | 2015-03-12 | Unisys Corporation | Business suite framework for developing software applications |
US9529610B2 (en) * | 2013-12-30 | 2016-12-27 | Unisys Corporation | Updating compiled native instruction paths |
US20160070541A1 (en) * | 2014-09-08 | 2016-03-10 | Unisys Corporation | Conversion of business suite solutions |
RU2628920C2 (ru) * | 2015-03-31 | 2017-08-22 | Закрытое акционерное общество "Лаборатория Касперского" | Способ обнаружения вредоносных сборок |
RU2635271C2 (ru) * | 2015-03-31 | 2017-11-09 | Закрытое акционерное общество "Лаборатория Касперского" | Способ категоризации сборок и зависимых образов |
CN105100191B (zh) * | 2015-05-22 | 2018-09-21 | 华为技术有限公司 | 一种云编译实现Java应用安装的方法、装置及系统 |
CN104834530A (zh) * | 2015-05-27 | 2015-08-12 | 百富计算机技术(深圳)有限公司 | 一种pos应用程序的开发方法及云端服务器 |
US9367686B1 (en) * | 2015-07-21 | 2016-06-14 | AO Kaspersky Lab | System and method for antivirus checking of native images of software assemblies |
GB2542355B (en) | 2015-09-15 | 2019-07-17 | Samsung Electronics Co Ltd | Methods and apparatus for distributing and installing trusted applications |
WO2017047904A1 (ko) * | 2015-09-15 | 2017-03-23 | 삼성전자 주식회사 | 신뢰된 어플리케이션을 전자 디바이스에 설치하는 방법 및 장치 |
RU2625052C1 (ru) * | 2016-03-18 | 2017-07-11 | Акционерное общество "Лаборатория Касперского" | Способ ограничения доступа образа машинного кода к ресурсам операционной системы |
CN108519874B (zh) * | 2017-02-27 | 2022-03-29 | 腾讯科技(深圳)有限公司 | Python项目包的生成方法及装置 |
CN108897562B (zh) * | 2018-06-27 | 2022-08-09 | 腾讯科技(深圳)有限公司 | 安装包更新方法、装置、介质以及设备 |
KR102663196B1 (ko) * | 2018-11-16 | 2024-05-07 | 삼성전자주식회사 | 사용자 단말장치, 서버, 사용자 단말장치의 제어방법 및 서버의 제어방법 |
KR102257012B1 (ko) * | 2019-01-14 | 2021-05-27 | (주) 익투스지노믹스 | 다양한 클라우드에 적용 가능한 대용량 데이터 처리용 분산 처리 시스템의 설치방법 |
CN109814866B (zh) * | 2019-01-31 | 2022-02-08 | 天津字节跳动科技有限公司 | 页面应用转化为原生应用的处理方法和装置 |
CN111580821B (zh) * | 2019-02-15 | 2022-10-25 | 厦门雅基软件有限公司 | 脚本绑定方法、装置、电子设备及计算机可读存储介质 |
US11150926B2 (en) | 2019-02-22 | 2021-10-19 | International Business Machines Corporation | Native code generation for cloud services |
US12045605B2 (en) | 2020-02-21 | 2024-07-23 | Telefonaktiebolaget Lm Ericsson | Method for updating applications in cloud environments |
CN112925526B (zh) * | 2021-03-30 | 2023-09-19 | 平安科技(深圳)有限公司 | 基于Leakcanary的编译方法、装置、设备及介质 |
US11947966B2 (en) | 2021-10-11 | 2024-04-02 | International Business Machines Corporation | Identifying computer instructions enclosed by macros and conflicting macros at build time |
US11481200B1 (en) | 2021-10-11 | 2022-10-25 | International Business Machines Corporation | Checking source code validity at time of code update |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3602857B2 (ja) | 1991-04-23 | 2004-12-15 | 株式会社日立製作所 | 多機種対応型情報処理システム、および、方法 |
US5812854A (en) * | 1996-03-18 | 1998-09-22 | International Business Machines Corporation | Mechanism for integrating user-defined instructions with compiler-generated instructions and for optimizing the integrated instruction stream |
US6484313B1 (en) * | 1999-06-30 | 2002-11-19 | Microsoft Corporation | Compiling and persisting of intermediate language code |
US7546607B2 (en) | 2002-11-19 | 2009-06-09 | Microsoft Corporation | Native code exposing virtual machine managed object |
JP2004192038A (ja) * | 2002-12-06 | 2004-07-08 | Sharp Corp | 情報処理装置、情報処理システム、情報処理プログラム、および該プログラムを記録した記録媒体 |
US20040221272A1 (en) * | 2003-04-30 | 2004-11-04 | Gansha Wu | Apparatus and methods for desynchronizing object-oriented software applications in managed runtime environments |
US7487498B2 (en) * | 2003-11-12 | 2009-02-03 | Microsoft Corporation | Strategy for referencing code resources |
US20050188203A1 (en) * | 2004-02-19 | 2005-08-25 | Jp Mobile Operating L.P. | Method for packaging information with digitally signed software without breaking signature |
US7409675B2 (en) * | 2004-02-27 | 2008-08-05 | Microsoft Corporation | Code rewriting |
US7900199B2 (en) * | 2004-05-21 | 2011-03-01 | Computer Associates Think, Inc. | Method and apparatus for reusing a computer software library |
US7730472B2 (en) * | 2004-09-24 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Dynamic linking of modules in a pre-operating system environment |
US20060080682A1 (en) * | 2004-10-12 | 2006-04-13 | Picsel Research Ltd. | Run time dynamic linking |
WO2006040506A1 (en) * | 2004-10-12 | 2006-04-20 | Picsel (Research) Limited | Run tune dynamic linking |
US7730465B2 (en) | 2004-10-22 | 2010-06-01 | Microsoft Corporation | Mixed types |
US20060136907A1 (en) * | 2004-12-20 | 2006-06-22 | Microsoft Corporation | Language-neutral and language-specific installation packages for software setup |
US8074231B2 (en) * | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US7987457B2 (en) | 2007-06-25 | 2011-07-26 | Microsoft Corporation | Targeted patching for native generation images |
US20090064196A1 (en) * | 2007-08-31 | 2009-03-05 | Microsoft Corporation | Model based device driver code generation |
CN100478897C (zh) * | 2007-12-04 | 2009-04-15 | 腾讯科技(深圳)有限公司 | 实现在游戏运行过程中自动验证支付的方法、装置和系统 |
CN101546311B (zh) * | 2008-03-27 | 2012-05-02 | 北京铭万互联科技有限公司 | 回收站的数据处理方法及数据处理装置 |
KR101092373B1 (ko) * | 2010-01-07 | 2011-12-09 | 한국과학기술연구원 | 소프트웨어 패키지의 생성 및 설치를 위한 시스템 및 방법 |
US8869138B2 (en) * | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
US8365156B2 (en) * | 2010-04-17 | 2013-01-29 | Microsoft Corporation | Intermediate language support for change resilience |
US8924922B2 (en) * | 2010-06-14 | 2014-12-30 | Microsoft Corporation | Pre-compiling hosted managed code |
EP2405352A1 (en) | 2010-07-08 | 2012-01-11 | Fujitsu Limited | Instrumentation of proprietary software libraries |
US8683462B2 (en) | 2010-10-22 | 2014-03-25 | Adobe Systems Incorporated | Handling calls to native code in a managed code environment |
-
2012
- 2012-09-05 US US13/604,618 patent/US9569184B2/en active Active
-
2013
- 2013-09-03 AU AU2013312865A patent/AU2013312865B2/en not_active Ceased
- 2013-09-03 NZ NZ705379A patent/NZ705379A/en not_active IP Right Cessation
- 2013-09-03 CN CN201380057733.2A patent/CN104781785B/zh active Active
- 2013-09-03 RU RU2015107557A patent/RU2643484C2/ru not_active IP Right Cessation
- 2013-09-03 SG SG11201501527RA patent/SG11201501527RA/en unknown
- 2013-09-03 WO PCT/US2013/057892 patent/WO2014039458A1/en active Application Filing
- 2013-09-03 JP JP2015530146A patent/JP6294886B2/ja active Active
- 2013-09-03 MX MX2015002906A patent/MX348681B/es active IP Right Grant
- 2013-09-03 EP EP17180650.8A patent/EP3249526B1/en active Active
- 2013-09-03 BR BR112015004684A patent/BR112015004684A2/pt not_active Application Discontinuation
- 2013-09-03 MY MYPI2015700678A patent/MY181735A/en unknown
- 2013-09-03 CA CA2883571A patent/CA2883571A1/en not_active Abandoned
- 2013-09-03 EP EP13765843.1A patent/EP2893441B1/en active Active
- 2013-09-03 KR KR1020157005830A patent/KR102077360B1/ko active IP Right Grant
-
2015
- 2015-02-20 ZA ZA2015/01182A patent/ZA201501182B/en unknown
- 2015-02-25 PH PH12015500405A patent/PH12015500405B1/en unknown
- 2015-03-04 CL CL2015000524A patent/CL2015000524A1/es unknown
- 2015-03-04 IL IL237547A patent/IL237547A0/en unknown
-
2016
- 2016-01-08 HK HK16100144.7A patent/HK1212482A1/xx unknown
- 2016-12-28 US US15/393,182 patent/US10795652B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9569184B2 (en) | 2017-02-14 |
CN104781785B (zh) | 2018-05-15 |
US20140068583A1 (en) | 2014-03-06 |
CL2015000524A1 (es) | 2015-08-28 |
PH12015500405A1 (en) | 2015-04-20 |
SG11201501527RA (en) | 2015-03-30 |
IL237547A0 (en) | 2015-04-30 |
HK1212482A1 (en) | 2016-06-10 |
AU2013312865A1 (en) | 2015-03-05 |
PH12015500405B1 (en) | 2015-04-20 |
MX2015002906A (es) | 2015-06-03 |
WO2014039458A1 (en) | 2014-03-13 |
KR102077360B1 (ko) | 2020-02-13 |
CN104781785A (zh) | 2015-07-15 |
CA2883571A1 (en) | 2014-03-13 |
NZ705379A (en) | 2018-04-27 |
JP2015531502A (ja) | 2015-11-02 |
EP3249526B1 (en) | 2020-03-25 |
US20170109148A1 (en) | 2017-04-20 |
MY181735A (en) | 2021-01-05 |
EP2893441A1 (en) | 2015-07-15 |
ZA201501182B (en) | 2016-10-26 |
EP3249526A1 (en) | 2017-11-29 |
RU2015107557A (ru) | 2016-09-27 |
MX348681B (es) | 2017-06-23 |
BR112015004684A2 (pt) | 2017-08-08 |
KR20150052068A (ko) | 2015-05-13 |
EP2893441B1 (en) | 2017-08-30 |
US10795652B2 (en) | 2020-10-06 |
AU2013312865B2 (en) | 2018-11-08 |
RU2643484C2 (ru) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6294886B2 (ja) | アプリケーション用の中間言語コードからネイティブコードを生成すること | |
US10296323B2 (en) | System and method for fast initial and incremental deployment of apps | |
JP6122493B2 (ja) | 適応的に移植性を有したライブラリ | |
EP3518098A1 (en) | Cross platform content management and distribution system | |
KR102163501B1 (ko) | 애플리케이션 내의 대역외 프레임워크 라이브러리 | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
EP2950206A1 (en) | Extracting source code | |
US8607203B1 (en) | Test automation framework using dependency injection | |
US8935686B2 (en) | Error-code and exception-based function dispatch tables | |
CN109857432B (zh) | 一种游戏应用的热更新方法和装置 | |
CN111506904B (zh) | 漏洞在线修复的方法和装置 | |
CN113900704A (zh) | 应用程序安装包的发布方法、装置、可读介质及电子设备 | |
US10552135B1 (en) | Reducing a size of an application package | |
US9672020B2 (en) | Selectively loading precompiled header(s) and/or portion(s) thereof | |
US20170083298A1 (en) | Resilient format for distribution of ahead-of-time compiled code components | |
CN107092472A (zh) | 一种动态发布方法及设备 | |
CN112882698A (zh) | 开发环境的生成方法及装置、计算机存储介质及电子设备 | |
CN107784204B (zh) | 应用脱壳方法和装置 | |
CN115934123A (zh) | 一种客户端逻辑更新方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160727 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160727 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170523 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170822 |
|
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: 20180126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6294886 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |