マイクロソフト、Windows Phone 8のコンパイラをクラウドで提供する計画

2012年11月13日

Windows Phone 8では、コンパイラをクラウドで提供する計画がある。ZDNetのブログAll About Microsoftにポストされた記事「Microsoft details its strategy for compiling Windows Phone apps in the cloud」で、こう指摘しています。

Microsoft details its strategy for compiling Windows Phone apps in the cloud | ZDNet

この記事を足がかりにして、マイクロソフトが今月開催したイベント「Build 2012」のセッション「Deep Dive into the Kernel of .NET on Windows Phone 8」と、Channel9で公開したビデオ「Mani Ramaswamy and Peter Sollich: Inside Compiler in the Cloud and MDIL」の情報を基に、コンパイラをクラウドで提供する理由についてまとめました。

(11/13追記 すでにWindows StoreのWindows Phone 8でこの機能が提供されているとの情報をいただきました)

JITの便利さとコンパイルの起動の速さを両立

Windows Phoneに対応したアプリケーションでは、実行時にネイティブコードを生成するJITと、あらかじめコンパイルしておくNGEN(Native Image Generator)の2つの選択肢がありました。

fig

しかしJITでは実行時にネイティブコードを生成するためアプリケーションの起動が遅く、NGENではライブラリなどがアップデートされると毎回リコンパイルしなければならずデプロイも面倒です。

そこで、マイクロソフトは新たにMDIL(Machine Dependent Intermediate Language)と呼ばれる中間コードを定義します。これは素早くネイティブコードへコンパイルできるコードであり、これによってプリコンパイルが持つ素早い起動と、JITの持つ容易なデプロイの利点を両方備えることができます。

fig

マイクロソフトの計画は、C#からMDILへのコンパイルをクラウドで提供しようというもの。MDILの状態でアプリケーションストアに保存され、デバイスにダウンロードされた時点で素早くネイティブコードに変換し実行されることになります。

fig

Windows 8のARM版とIntel版へもいずれは?

クラウドでコンパイラを提供するという計画はマイクロソフトが以前からほのめかしていたことで、ついに現実解として計画が明らかになりました。

これを発展させるとさまざまな可能性があることに思い当たります。例えばPhoneGapのようにHTML5のアプリケーションを中間コードにクラウドでコンパイルできないか、あるいは現在のところターゲットはWindows Phone 8ですが、これをデスクトップのWindowsに応用して、.NETで書いたアプリケーションがクラウド上のコンパイラによって、インテル版のWindows 8とARM版のWindows RTの両方のネイティブコードを生成できるようになるのではないか、などです。

当然ながら、マイクロソフト内部でもこうしたことが検討されていないはずはありません。今後このテクノロジーがどう発展するのか、非常に興味深いものが登場してきたといえます。

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : Microsoft , Windows Phone



≫次の記事
マイクロソフトの次期SQL Server、インメモリDBとストアドプロシージャのネイティブコンパイラ搭載へ
≪前の記事
2012年10月の人気記事「EPUB3の国際標準化で日本が資金難」「Google App Engine、全データセンターを巻き込む連鎖的障害」「見えてきたECMAScript 6」ほか

カテゴリ



Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



新着記事 10本


PR - Books


fig

fig

fig