2012-05-12 5 views
5

Dartは独自のDart VMで動作しますが、最新の最適化されたJavaScriptにコンパイルできます。しかし、それはどのように機能しますか?そのプロセスを説明するオンラインの論文や論文はありますか?それが要素に簡単にまっすぐ前方一致する要素である場合ダーツのjavascriptコンパイラ(dart2js)はどのように機能しますか?

私は疑問に思って、プロセスを開発したりしているがかかるだけ時間があるいくつかの要素/ JavaScriptにコンパイルすることができませんでしたダートの側面。

http://www.dartlang.org

EDIT:あなたの2つの答えのためのTHX。ポイントは、私はダーツについて私の同僚に言いました、ダーツはJavaScriptにコンパイルできるということです。彼はそれがJavaScriptにコンパイルできると受け入れましたが、それはmumbojumbaコードをもたらし、単純なもののためだけに働くでしょう。最終的に彼は言った: "''大丈夫、説明してください。どのようにこのコンパイルは自明でないコードに仕事に行くのですか?「」」

私が求めています理由ですこと。私は彼がリンクすることができるいくつかの材料がオンラインであることを望んでいた。

答えて

4

ダートエディタは今dart2jsとJavaScriptにあなたのダーツのコードをコンパイルします。あなたの質問の後半部分、ダーツ用として

:ライブラリは、サーバ/コマンドラインのみなので、dart2jsしてコンパイルすることはできませんioの。

私は今、私はあなたが「どのようにエンジニアの設計とdart2jsコンパイラを実装しなかった」「どのようにあなたがdart2jsを実行してください」、

はないが、ここでdart2jsの発表にブログの記事だ求めていると思う実現:http://news.dartlang.org/2012/05/new-dart-to-javascript-compiler-ready.html

カスパールンド、エンジニアの一人は、「技術的に興味のために、私は新しいコンパイラ は、SSA形式の内部表現(静的単一代入) を使用していることと、コンパイラはダートで完全に実装されていることを伝えることができます。」を追加しますそのプロセスを説明する任意の記事や論文のオンラインは

ソースコードがhttp://code.google.com/p/dart/source/browse/#svn%2Fbranches%2Fbleeding_edge%2Fdart%2Flib%2Fcompiler%2Fimplementation

1

であるがありますか?

フロントエンドは、古典的な手書きのレクサーと再帰的降下パーサーです。バックエンドは、ダートの型の注釈が信頼できない静的型の解析を行うためにあまりにも緩いので、型推論の束をしていると信じています。ランタイムのセマンティクスは型の注釈を真剣に受けさせません。 「具体的な型推論」に関する論文を探すなら、あなたが探している文献のいくつかを見つけることができると思います。また、SSAフォームへのコンパイルに関する参考資料(およびそのフォームからコードを作成することは、私が推測します)が役立ちます。中間表現と実装の最適化に

関連する問題