Есть ли нативный компилятор машинного кода для JavaScript? [закрыто

StackOverflow https://stackoverflow.com/questions/1118138

Вопрос

Есть ли нативный компилятор машинного кода для JavaScript? Я не говорю о виртуальной машине. Если этого не существует, это сделано?
Мне интересно, можно ли это собрать в бинарное измерение из -за динамической природы языка.

Это было полезно?

Решение

Насколько я знаю, для JavaScript нет статических компиляторов. Это, безусловно, теоретически возможно; Тем не менее, статическая компиляция JavaScript потребует очень тяжелого времени выполнения для поддержки всех его функций (таких как динамическая набор и Eval). В сторону в стороне, когда он представлен с необходимостью статически компилировать Python (другой динамический язык), Пип Разработчики в конечном итоге создали язык, который был очень ограниченным подмножеством Python (называемый RPYTHON), лишенным некоторых более динамичных особенностей Python, которые были способны быть статически собраны.

Если вы спрашиваете об этом с целью создания автономного исполняемого файла из кода JavaScript, я уверен, что должны быть обертки, которые, по сути, создаст исполняемый файл, содержащий ваш сценарий и встроенную виртуальную машину JavaScript (к сожалению, я не знаю бездай )

Другие советы

Это определенно выполнимо, хотя единственный способ, которым я знаю, как это сделать в данный момент, - это двухэтапный процесс ...

  1. Скомпилируйте JavaScript в Java, используя Mozilla Rhino JSc.
  2. Скомпилируйте полученный файл класса Java для исполняемого файла, используя что -то вроде GNU's GCJ.

Зачем тебе это захотеть? Какое преимущество вы ожидаете найти?

Google V8 Engine компилирует JavaScript в натуральный машинный код. Эта функция используется в Enclosejs Компилятор, который я написал для проектов node.js и io.js.

Обратите внимание, что все эти решения DOMменьше, так что нет библиотек, как angular.js или же jquery, Только underscore.js/lodash

Следуя ФалайнаОтвет,Пип имеет Dist для JavaScript

Также, Appcelerator Titanium имеет js > JavaBit > android

Окончательно, node.js можешь использовать NexeОбъяснил в этом другом отвечать

Это теоретически возможно, но будет много участия багажа поддержки во время выполнения (и даже полный компилятор JavaScript или переводчик для поддержки eval).

Вы ищете настоящий нативный компилятор кода, или вы ищете что -то, что может объединить код JavaScript вместе со временем выполнения в один исполняемый двоичный файл?

Я уверен, что у Microsoft есть загружаемый JScript ("Microsoft JavaScript") компилятор)

Если у вас есть Windows: если вы пишете текстовый файл JavaScript, вы можете скомпилировать его: открывая командную строку с помощью CD, чтобы добраться до каталога текстовых файлов (если у вас есть Windows) Тип: C: Windows Microsoft.net Framework v2.0.50727 jsc.exe textfile.js

В противном случае: загрузите компилятор JScript введите каталог компилятора JScript, а затем имя текстового файла JavaScript

Вы можете добавить переменные среды, если не хотите вводить все имя каталога в компилятор.

Этот парень объясняет это лучше:http://www.phpied.com/make-your-javascript--windows-exe/

Я лично думаю, что это действительно круто. Я просто хотел бы, чтобы для этого было больше документации.

Я уверен, что это то, что вы ищете, но я немного новичок.

Tracemonkey В FF3.5 сделайте это с некоторыми частями кода JavaScript. Вы можете получить некоторые указания оттуда!

Компилятор AOT AOT AIR для iOS статически компилирует суперсет JavaScript, называемый ActionScript 3.0 до ABC Bytecode, затем машинный код через LLVM. Если бы вы писали свой код AS3 без классов и без аннотации типа, это было бы, по сути, JavaScript, и тогда компилятор с радостью скомпилировал бы его до машинного кода. К сожалению, это не программное обеспечение с открытым исходным кодом, и вы не получаете доступа к какому -либо DOM (о котором многие думают, когда думают о JavaScript), потому что оно работает внутри, по сути, экземпляр Flash Player.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top