На каких языках программирования есть JIT-компиляторы?

Я знаю, что С# и Java. Кто-нибудь еще знает о других?

Ответ 1

Строго говоря, JIT является свойством среды выполнения, а не языка. Педантичная точка, но подразумевается, что любой язык, который работает на JVM, например, может использовать JVM JIT. Jython, JRuby, Groovy и т.д.

У Тамарина есть JIT. Я думаю, что это может запускать JavaScript и ActionScript? Не положительно...

Ответ 2

Just-In-Time Compilation в статье о википедии перечислены еще несколько:

  • GNU lightning - библиотека, которая генерирует код языка ассемблера во время выполнения
  • Mozilla nanojit - небольшая кросс-платформенная библиотека С++, которая испускает машинный код. Он используется как JIT для двигателей Mozilla Tamarin и SpiderMonkey Javascript.

И еще несколько сборочных emmiters для С++.

Что касается С# - все языки .NET используют ту же среду выполнения и jit. VB.NET, С#, F #, IronPython, IronRuby, COBOL.NET и многое другое...

Ответ 3

Lua имеет впечатляющий LuaJIT.

Схема PLT имеет JIT в течение некоторого времени.

Я считаю, что оба они ограничены x86.

Ответ 4

среда выполнения .NET использует JIT, чтобы любой язык ударил. Вы можете найти дополнительную информацию здесь.

Ответ 5

для Python существует проект PyPy, который включает в себя JIT (что делает возможным запуск кода быстрее, чем в CPython в во многих случаях)

Ответ 6

Существует некоторая путаница в том, что определяет/использует компилятор JIT: это язык программирования? это программа? среда выполнения?.

Фактически это реализация конкретного языка программирования, который предоставляет JIT-компилятор для конкретных целевых архитектур набора инструкций (x86, x86_64, PPC,...).

Например, реализация SBCL предоставляет JIT-компилятор для Common LISP, но других реализаций этого языка нет (например, CLISP).

Еще один пример: реализация Java Java-приложения OpenJDK предоставляет JIT для некоторых архитектур, но не для других (таких как ARM), где байт-код все еще интерпретируется.

В качестве побочного примечания: не забывайте язык программирования Фактора. Реализация сильно использует компилятор JIT.

Ответ 7

С++ с дополнительными библиотеками.

Ответ 8

С# не использует JIT. С# компилируется в CIL для платформы .NET, а .NET использует JIT во время выполнения.

.NET - это нечто большее, чем просто С#. Там также VB.NET, Delphi.NET, Fujitsu Cobol, IronRuby, IronPython, F # и другие. Все языки, ориентированные на платформу .NET, используют компилятор .NET JIT во время выполнения.

Ответ 9

У Smalltalk есть JIT-компиляторы.

Ответ 10

Языки программирования не используют JIT. Программы используют JIT.

С# не передает JIT С# на CIL, а CIL 'executable' запускается JIT.

Dalvik использует синтаксис Java, но скомпилирован в собственный байт-код. Dalvik VM полностью отличается от Java VM.