Языки, которые интерпретируют Javascript?

Другое сообщение поставил под вопрос, насколько практично это компилировать языки в Javascript. Практичность в стороне, какие переводчики переводят с некоторого языка X на Javascript и были реализованы в Javascript? Меня особенно интересуют случаи, когда X не был разработан с целью нацеливания на Javascript. Даже если интерпретатор не полностью закончен, я хотел бы услышать об этом.

Вам может быть интересно узнать о мотивации этого вопроса. Javascript, конечно же, не может использовать столько возможностей, как ассемблер, но гибкость для распространения и исполнения кода иногда может перевесить эту стоимость.

Одним из вариантов использования этих интерпретаторов является модель обучения и обучения языкам программирования. Подумайте, насколько полезно иметь переводчик Javascript в интерактивной книге Eloquent Javascript. Несомненно, может произойти поражение производительности при компиляции его изначально, но в некоторых ситуациях стоимость, безусловно, стоит того. И да, я понимаю, что всегда есть возможность полагаться на сервер для компиляции или интерпретации кода, но меня особенно интересуют клиентские подходы.


UPDATE: много ответов содержат ссылки на компиляторы, которые не были реализованы в Javascript. Я просто хочу подчеркнуть, что сам интерпретатор должен быть реализован в Javascript, чтобы и он, и код исходного языка могли запускаться в браузере на вашем бабушке дедушки.

Ответ 1

  • Objective-J - это язык, который в основном принимает "Objective" часть Objective-C и привязывает его к ECMAScript
  • Clamato - это язык, основанный на Smalltalk для клиентских веб-скриптов.

Смотрите также этот вопрос: Существуют ли другие языки, кроме Objective-J, которые "скомпилированы" для JavaScript в браузере?

Ответ 2

CoffeeScript - это язык программирования, который компилируется на JavaScript.

Ответ 3

Сообщество Wiki, разрешите это: -)

jsc - перекомпилирует из CIL (CIL, скомпилированный из VB.NET, С# и т.д.)

Script # - компилируется из С# (исходный код).

GWT: Google Web Toolkit - компилируется с Java.

Emscripten - компилируется из LLVM. Должен иметь возможность работать (язык X) → LLVM- > JavaScript, минус проблемы, когда Language X имеет компилятор LLVM.

Ответ 5

j2js компилирует байт-код Java в Javascript (например, Java, Scala и т.д.).

Ответ 7

Пижамы могут скомпилировать Python для JavaScript. Это перевод серверного типа; Пижама еще не была использована для компиляции, поэтому нет интерпретатора JavaScript Python.