BT

新しい あなたは、アーリーアダプター?それともイノベーター?そんな皆様に、InfoQの新機能をご案内しています。詳細はこちら

JavascriptVMに多数の言語: CoffeeScript 1.0, StratifiedJS, EmscriptenによるC/C++, Python

| 作者: Werner Schuster , 翻訳者 編集部N 投稿日 2011年1月1日. 推定読書時間: 1分未満 |

原文(投稿日:2010/12/25)へのリンク

Javascript VMは、今やどこにでもあり、増々速くなっている-この二つの特質は、言語設計者と実装者が好きなものである。JVMや.NETをターゲットにした言語には、非常に面白いものがあったが、最近は、多くの新しい言語やランタイムがJavascriptをターゲットにしている。

Javascriptの痛点は、言語そのものであるため、開発者は、Javascriptにコンパイルする新しい言語を作っている

バージョン1.0をリリースしたばかりの CoffeeScriptは、新しい言語で、Javascriptをきれいにし、いくつかの役立つフィーチャを加えることを目標にしている。CoffeeScriptコンパイラーは、CoffeeScriptで書かれており、きれいで、美しいJavascriptにコンパイルする。
ブロックを区切るのに、中括弧を使わずに、かなりのホワイトスペースを使っている。これは、CSS3 extension Sass, Hamlなどのような他の最近の言語と同じであるが、ディスカッション フォーラムを賑わし続けている。

CoffeeScriptは、1年ぐらい経つが、いくつかの公開プロジェクトが使ったために、最近知られるようになった。ArsTechnicaの iPadアプリケーションは、HTMLとCoffeeScriptを使って書かれており、PhoneGapを使ったネイティブなアプリケーションとして、走る。 37Signalは、 Chalkを公開したが、これは、iPad上で走るホワイトボード アプリケーションで、Cache Manifest のようなHTML5のフィーチャ使ってオフラインで走る。これもCoffeeScriptを使っている

StratifiedJSは、Javascriptのスーパーセットで、非同期プログラムの冗長さに対処するために、いくつかの並列性に関係したキーワードを追加している。もっと詳しいことは、StratifiedJSとそのブラウザ実装であるApolloの開発動機に関するインタビュー記事を見て欲しい。

Emscripten プロジェクトは、違ったアプローチを使っている。Emscriptenは、Javascript VMにLLVMコンパイラを持った言語を持ち込もうとしている。 LLVMが、バイトコードにコンパイルしたら、EmscriptenがJavascriptに翻訳する。マニュアルのメモリ割り当てがある程度サポートされている。Emscriptenは mallocのカスタム バージョンによって管理されるヒープ配列を使って、それをエミュレートしている。

CとC++コードは、Emscriptenを使って翻訳でき、このプロジェクト サイトには、いくつかの翻訳されたCとC++ライブラリのデモがある。しかし、 Python そして Lua ランタイムの翻訳バージョンのデモもこのサイトにある。

これらの新しい言語や翻訳されたランタイムの次は、既存の言語もJavascriptにポーティングされている。例えば、 Haskellや Steve Dekorte氏の Io language、そして Skulpt projectによるPythonがある。

これらのアプローチのどれが成功して、役立つものになるかは、まだわからない。しかし確かなのは、Javascript VM, JIT そして GCの開発者は、Emscriptenのようなアプローチが人気を集めることを予想して、パフォーマンス改善に常に取り組んだほうがよい、ということである。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT