2011-08-10 13 views
44

名前が示すようにスクリプト言語の場合は、下位レベルの言語で記述する必要がありますか? PHPがどのようにC言語で書かれているように、JavaScriptはどの言語で書かれていますか?JavaScriptはどの言語で書かれていますか?

+8

[Narcissus](https://github.com/mozilla/narcissus/)は、純粋なJavascriptで書かれたJavascriptインタプリタです(必ずしもそうである必要はありません) meta-circular evaluator](http://en.wikipedia.org/wiki/Meta-circular_evaluator):) – CMS

+0

さまざまな言語で書かれたさまざまなJavaScriptエンジンがあると思います。 – Galik

答えて

72

Javascriptはちょうど標準であり、より正式にはECMAScriptとして知られています。どのような標準と同様に、どの言語でも実装できます。

クロムのJavascriptエンジン、V8は、C++で記述されています。プロジェクトページから

V8はC++で書かれており、Google Chromeのは、Googleのオープンソースブラウザで使用されています。 ECMA-262第5版で指定、およびWindows(XP以降)、マックOS X(10.5以降)、およびLinux上の 実行IA-32を使用し システム、x64の、またはとして

V8は、ECMAScriptのを実装しますARMプロセッサ。

FirefoxのJavascriptエンジンであるSpiderMonkey(今やTraceMonkey)もC++で書かれています。そして、以下の言い換えられたように、RhinoはJavaで書かれています。

+6

確かに。私はその大半がC++で実装されていると賭けているが(http://en.wikipedia.org/wiki/List_of_ECMAScript_engines)(またはCとその派生物)。 Rhinoは明らかにJavaです。 – maerics

3

どちらの言語インタプリタがで書かれたJavaScriptクライアントwebbrowsers :)

4

JavascriptがECMAScript規格の実装ですが、PHPでご覧のように何の単数正規の通訳はありません。

主要な実装(スタンドアロンまたはWebブラウザの一部)のほとんどは、パフォーマンス上の理由からCまたはC++で記述される傾向がありますが、必ずしもそうであるとは限りません。 Mozillaが管理しているRhinoは、Javaで書かれています。

+4

* PHPの複数の実装が可能ですが、誰も興味がありません。 –

+0

@イグナシオショッキング、そうじゃない? ;) – dfreeman

+3

@ IgnacioVazquez-Abrams - Facebookは興味を持っていました:) –

8

ほとんどのJavascriptインタプリタはC/C++(V8、Nitroなど)で書かれていますが、任意の言語(Rhino→Java、Interpreter→Javascriptなど)で記述することができます。

2
のJavascriptの

ほとんどの実装では、あなたが離れて取っているとき、これは、例えば明確に注目すべきである明確にポインタを使用することにより、通常はCの使用に向けて指すパラメータ渡し、ByRefの原因とされる挙動を示す、またはC++

中間配列の助けを借りて、ループ内の多次元配列。ポインタやバイパスのパラメータの受け渡しに慣れていない場合(これは、毎回var hlp = new Array()を実行するか、すでに別の場所に保存していた以前の値を上書きする必要があります)

私はむしろ、この種の振る舞いがまったく違うと想像しているので、例えばJavaのJavaScriptの実装方法について興味がありますか?

関連する問題