JavaScript: автономный компилятор или интерпретатор для Windows?

Какие компиляторы или интерпретаторы JavaScript доступны для Windows?

Недавно я прочитал книгу Красноречивый JavaScript. Эта книга представляет читателя для программирования с использованием JavaScript в качестве первого языка. К сожалению, программы ограничены для запуска внутри браузера, встроенного в HTML. Итак, интересно, можно ли писать программы JavaScript, которые могут выполняться автономно.

Компилятор или интерпретатор должен быть легко доступен как предварительно скомпилированный двоичный, который может быть загружен и установлен новичком. Он должен иметь возможность писать простые автономные программы JavaScript, скомпилированные с помощью этого компилятора. Дополнительные библиотеки JavaScript, фреймворки, IDE и поддержка отладки, которые будут работать с этим компилятором, будут плюсом.

Ответ 1

Node.js отлично работает как интерпретатор, даже если вы не хотите использовать его для веб-приложений. Это среда, которая работает на движке JavaScript V8. Он хорошо документирован с большим выбором официальных и сторонних модулей.

Он требует, чтобы cygwin запускался в Windows, хотя (или вы можете скомпилировать его с помощью MingW). Существуют предварительно скомпилированные двоичные файлы, включая необходимые библиотеки cygwin, доступные в node-js.prcn.co.cc.

Ответ 2

Никто еще не упомянул о компиляторе собственного javascript: http://msdn.microsoft.com/en-us/library/vstudio/7435xtz6(v=vs.100).aspx

Microsoft (R) JScript Compiler version 8.00.50727
for Microsoft (R) .NET Framework version 2.0.50727
Copyright (C) Microsoft Corporation 1996-2005. All rights reserved.

jsc [options] <source files> [[options] <source files>...]

                         JScript Compiler Options

                           - OUTPUT FILES -
  /out:<file>              Specify name of binary output file
  /t[arget]:exe            Create a console application (default)
  /t[arget]:winexe         Create a windows application
  /t[arget]:library        Create a library assembly
  /platform:<platform>     Limit which platforms this code can run on; must be x86, Itanium, x64, or anycpu, which is the default

                           - INPUT FILES -
  /autoref[+|-]            Automatically reference assemblies based on imported namespaces and fully-qualified names (on by default)
  /lib:<path>              Specify additional directories to search in for references
  /r[eference]:<file list> Reference metadata from the specified assembly file
                           <file list>: <assembly name>[;<assembly name>...]

                           - RESOURCES -
  /win32res:<file>         Specifies Win32 resource file (.res)
  /res[ource]:<info>       Embeds the specified resource
                           <info>: <filename>[,<name>[,public|private]]
  /linkres[ource]:<info>   Links the specified resource to this assembly
                           <info>: <filename>[,<name>[,public|private]]

                           - CODE GENERATION -
  /debug[+|-]              Emit debugging information
  /fast[+|-]               Disable language features to allow better code generation
  /warnaserror[+|-]        Treat warnings as errors
  /w[arn]:<level>          Set warning level (0-4)

                           - MISCELLANEOUS -
  @<filename>              Read response file for more options
  /?                       Display help
  /help                    Display help
  /d[efine]:<symbols>      Define conditional compilation symbol(s)
  /nologo                  Do not display compiler copyright banner
  /print[+|-]              Provide print() function

                           - ADVANCED -
  /codepage:<id>           Use the specified code page ID to open source files
  /lcid:<id>               Use the specified LCID for messages and default code page
  /nostdlib[+|-]           Do not import standard library (mscorlib.dll) and change autoref default to off
  /utf8output[+|-]         Emit compiler output in UTF-8 character encoding
  /versionsafe[+|-]        Specify default for members not marked 'override' or 'hide'

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

Компилятор способен компилировать файлы javascript в исполняемые файлы, которые могут запускаться на любой машине Windows с установленной .NET.

Ответ 3

Доступно несколько бесплатных автономных интерпретаторов Javascript:

  1. V8 - это тот же движок Javascript, который используется в браузере Chrome.
  2. SpiderMonkey - от Мозиллы.
  3. Rhino - реализация Javascript на Java.

Ответ 5

Вы также можете в некоторых обстоятельствах запускать сценарии JScript (реализация Microsoft Javascript) непосредственно в командной строке.

Но мой личный фаворит - это Rhino, упомянутый в другом ответе.

Ответ 6

Хорошо, Windows Scripting Host - это инструмент для выполнения различных административных задач с использованием Microsoft Active Scripting и может запускать скрипты на разных языках, включая JScript, их реализацию ECMAScript. Больше нечего об этом говорить, поэтому укажите ваш браузер на ссылку - http://msdn.microsoft.com/en-us/library/shzd7dy4(VS.85).aspx

Забудьте о компиляторе, BTW, ECMAScript - интерпретируемый язык (компиляция JIT - это другая проблема)

Кроме того, обратите внимание, что стандарт ECMAScript не определяет никаких стандартных операций ввода-вывода, поэтому основная программа отвечает за его предоставление.

Ответ 7

Возможно, немного запутанный для того, что вы ищете, но вы можете использовать Rhino JavaScript Compiler для компиляции исходного кода JavaScript в файлы классов Java, которые затем может быть скомпилирован в двоичные исполняемые программы, используя стандартный интерфейс GCJ для компилятора GCC.

Как уже упоминалось, реализация JScript ECMAScript доступна по умолчанию при современных установках Windows. Файлы с расширением ".js" можно дважды щелкнуть или выполнить в командной строке с помощью команды cscript.exe.

Ответ 8

У меня также была такая же потребность, но в итоге я нашел приложение DeskJS (https://deskjs.wordpress.com). Это бесплатное и портативное консольное приложение Windows, которое позволяет запускать чистый код JavaScript и даже загружать любые существующие JS файлы. Он поддерживает основные всплывающие окна JS, реализованные в браузерах. Вы можете сохранять свои команды в виде файлов JS, которые можно запускать при запуске, или путем перетаскивания их в приложение. Плюс там гораздо больше, как вы можете создать систему сборки для Sublime Text, которая может запускать JS файлы через cmd, поддерживает темы для настройки всей консоли и фрагментов, которые позволяют вам сохранять короткие фрагменты кода JavaScript для последующего использования. Усовершенствования все еще выполняются в приложении вместе с другими встроенными API-интерфейсами.

Ответ 9

Вы пробовали Mozilla XUL и XULRunner? Это сложнее, чем просто интерпретатор, но он работает также на Mac OSX и Linux, а не только на Windows. Firefox и Thunderbird написаны с его использованием (да, Firefox написан на Javascript!). В следующем месяце в Варшаве состоится семинар XUL на конференции FalsyValues - ссылка.