SpiderMonkey

SpiderMonkeyは、世界で初めて開発されたJavaScriptエンジンの一つであり、特にMozilla Firefoxなどのブラウザで広く利用されています。このエンジンは、ブレンダン・アイク氏がネットスケープコミュニケーションズで開発し、後にオープンソースとして公開されました。現在では、Mozilla Foundationによって保守・管理が行われています。

内部構造



SpiderMonkeyは、C言語で実装されており、その内部は複雑な構造をしています。具体的には、JavaScriptコードを機械語に変換するコンパイラ、実行を担当するインタプリタ、不要になったメモリを解放するガベージコレクタ、そして標準クラス群などから構成されています。ただし、SpiderMonkey自体は、Document Object Model (DOM) のようなホスト環境を直接提供するわけではありません。これは、SpiderMonkeyがJavaScriptの実行エンジンとしての役割に特化しているためです。

また、SpiderMonkeyは、姉妹関係にあるRhinoとともに、ECMAScript for XML (E4X) 標準をサポートしています。

応用



SpiderMonkeyは、JavaScriptのホスト環境を提供する様々なアプリケーションに組み込んで使用されます。最も一般的な例としては、Mozilla FirefoxやMozilla Application Suite / SeaMonkeyのようなウェブブラウザがあります。これらのブラウザでは、ウェブページのJavaScriptコードを実行するためにSpiderMonkeyが利用されています。

その他にも、Adobe AcrobatやAdobe ReaderなどのPDF閲覧ソフトウェア、Yahoo! Widgetsのようなデスクトップウィジェットシステム、さらにはウルティマオンラインサーバエミュレータであるUOX3など、多岐にわたるアプリケーションで採用されています。また、ロールプレイングゲーム設計支援ツールであるSphereのような、より特殊なアプリケーションでもJavaScriptエンジンとして活用されています。

さらに興味深いのは、SpiderMonkeyの一部が、WineプロジェクトでJScript機能を実装するために流用されている点です。これにより、WindowsアプリケーションをLinuxなどのUnix系オペレーティングシステムで実行する際に、JavaScriptのサポートが提供されています。

TraceMonkey



Mozillaは、SpiderMonkeyの性能を向上させるために、様々な最適化技術を導入してきました。その一つが、2009年7月にリリースされたFirefox 3.5で実装された「Trace Trees」を使った最適化です。この最適化により、場合によっては20%から40%の性能向上が期待されました。しかし、このTraceMonkeyは、Firefox 11以降では使用されなくなりました。

JägerMonkey



TraceMonkeyを利用できないケースを高速化するために開発されたのが、Method JITであるJägerMonkeyです。この技術では、アセンブラ部分にWebKitのSquirrelFish Extreme (Nitro) のものをベースとして使用しています。しかし、JägerMonkeyもまた、Firefox 18以降ではIonMonkeyに取って代わられ、さらにFirefox 83以降ではWarpMonkeyへと進化を遂げました。

関連項目



Rhino

外部リンク



Mozilla/Projects/SpiderMonkey'>SpiderMonkey (JavaScript-C) Engine
Mozilla/Projects/SpiderMonkey/SpiderMonkey_documentation'>Documentation for SpiderMonkey
Franky Braem Tutorial on using JS from C++
wxJavaScript, porting wxWidgets using SpiderMonkey
SpiderApe - SpiderMonkey 上の C++ ライブラリ。SpiderMonkey の組み込みと拡張を単純化することを意図している。
SpiderMonkeyエンジンを使っているプロジェクト - JavaScript Native Interface, JavaScript Host
jslibs project - zlib, SQLite, NSPR, ode, libpng, libjpeg, libffi, (...) といった SpiderMonkey 用ライブラリ群
Malzilla - SpiderMonkey を使ってWebページ上のJavaScriptを調べることでマルウェアを探し出すツール
TriXUL - (TriXUL CVS) - SpiderMonkey を組み込んだXMLベースのGUIツールキット。GUIの背後にあるロジックをJavaScriptで実装する。JavaScript から C++ オブジェクトを呼び出せる。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。