Если это язык сценариев, как следует из названия, он должен быть написан на языке более низкого уровня? Как то, как PHP написан на языке C на каком языке написан JavaScript?
На каком языке написан JavaScript?
Ответ 1
Javascript - это просто стандарт, более формально известный как ECMAScript. Он может быть реализован на любом языке, как и любой стандарт.
Chrome Javascript engine, V8, написан на С++.
На странице проекта:
V8 написан на С++ и используется в Google Chrome, браузере с открытым исходным кодом от Google.
V8 реализует ECMAScript, как указано в ECMA-262, 5th edition и работает на Windows (XP или новее), Mac OS X (10,5 или новее) и Linux систем, использующих процессоры IA-32, x64 или ARM.
Firefox Javascript engine, SpiderMonkey (и теперь TraceMonkey) также написан на С++. И как говорят нижеприведенные maerics, Rhino написан на Java.
Ответ 2
Все ответы до сих пор верны, но поскольку он еще не упоминался, JavaScript может быть написан на JavaScript.
Ответ 3
Большинство интерпретаторов Javascript написаны на C/С++ (V8, Nitro и т.д.), однако совместимый интерпретатор может быть написан на любом языке (Rhino → Java, Interpreter → Javascript и т.д.).
Ответ 4
Какой бы язык ни был интерпретирован javascript-интерпретатором веб-браузеров клиента:)
Ответ 5
Javascript - это реализация стандарта ECMAScript, но нет единственного канонического интерпретатора, который вы видите в PHP.
Большинство основных реализаций (автономных или как часть веб-браузеров), как правило, в основном написаны на C или C++ по соображениям производительности, но это не всегда так. Rhino, движок, поддерживаемый Mozilla, написан на Java.
Ответ 6
Большинство реализаций поведения Javascript, которые явно вызваны использованием указателей и передачи параметров byref, которые обычно указывают на использование C или С++
Это, безусловно, примечательно, например, когда вы разбираете многомерный массив в цикле с помощью промежуточного массива. Они, как правило, ведут себя очень "странно", если вы не знакомы с указателями и передачей параметров (вам нужно всегда делать var hlp = new Array() или перезаписывать предыдущие значения, которые вы уже храните где-то еще)
Мне довольно любопытно, как реализация javascript в, например, Java, потому что я предполагаю, что такое поведение будет в этом случае совсем другим?
Ответ 7
C++ является основным языком для всего современного и модного. Большинство современных языков высокого уровня являются подмножеством языка низкого уровня, C++. Все современные языки, которые вы видите сегодня, так или иначе являются подмножеством C++. Даже Java является подмножеством C++.