BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース DartでコンパイルされたDartコンパイラーがDartコードをブラウザ内でコンパイル

DartでコンパイルされたDartコンパイラーがDartコードをブラウザ内でコンパイル

原文(投稿日:2013/05/13)へのリンク

Google が再開したtry.dartlang.org、オンラインの遊び場でユーザーは、Dart SDKをダウンロードして、インストールすることなく、Dartを試すことができる。 旧バージョンと違って、新しいバージョンでは、ブラウザでダートコードをJavaScriptにコンパイルし、結果として、またオフラインで動作する。また、dart:html, HTML DOM 操作用のDartlibraryもサポートしている。しかし、その実装は、おそらくtry.dartlang.orgの中で最も印象的な側面である。

 

Peter von der Ahé がGoogle+でリリースを発表した。

我々は、try.dartlang.orgを復活しました。旧バージョンと比べて、新バージョンのフィーチャは、ブラウザ内のコンパイル、dart:htmlのサポート、オフラインで動くことです。

もしあなたがiOS デバイスを持っているなら、Try Dart! をあなたのホーム画面上のアプリとしてインストール出来ます。

ほとんどの言語で使用できる遊び場環境がある-たとえばtry rubyあるいはrepl.itこれは、多くの言語( Python, JavaScript, Luaや他の多くの言語)にREPL (Read Eval Print Loops) を提供している。これらの遊び場サイトのほとんどは、ユーザーの入力をサーバーへ送信し、そこでコードを実行し、クライアントに結果を返します。 Try.dartlang.org は、コードのコンパイル実行がブラウザで行われる点が違う。

そこで、それはどのように動作するのか?いかにDartチームは、Dart to JavaScriptコンパイラー( dart2jsと呼ばれている)をブラウザー内で上手くホストするのか? try.dartlang.org プロジェクトのソースコードリポジトリを見るとそのトリックがわかる。

dart2js コンパイラー自身がDartで書かれている。通常、それはSDKに含まれているDartVMを使って走る。しかし、try.dartlang.orgを実装するために、Dartチームは、自身の上でdart2jsコンパイラーを呼び出し、1つの 457KBの JavaScript ファイルとして、DartコードをJavaScriptへ変換するコンパイラーを生成する。コンパイラーのこのJavaScriptバージョンは、 Dartコードがエディタ内で変わる度にブラウザーに読み込まれ、呼び出される。次にJavaScript コードが評価され、結果が表示される。

ブラウザーでdart2jsコンパイラーを走らせることは、Dartを使って作るウェブアプリケーションのタイプの典型的な例ではないが、このような方法でdart2jsコンパイラーをブートストラップする のは、印象的な技術的偉業である。

Try.dartlang.org には幾つもの事前にパッケージ化された例題アプリケーションが付属している。これらは簡単に走らせることができ、言語がいかに動くかを良く理解できるように、変更できるようになっている。例題アプリケーションは、単純なhello worldからDelta Blue ベンチマークまで、複雑さは様々である。

この記事に星をつける

おすすめ度
スタイル

BT