マイクロソフト、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の両方のネイティブコードを生成できるようになるのではないか、などです。

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

あわせて読みたい

プログラミング言語 Microsoft Windows Phone




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

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

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

最新記事10本