Какие языки программирования имеют компиляторы JIT?

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

10 ответов


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

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


Lua мощный LuaJIT.

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

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


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

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

и несколько более assemblly emmiters для C++.

как на C# - все .Net языков использовать один во время выполнения и Джит. VB.NET, C#, F#, IronPython, IronRuby, COBOL.NET и даже больше...


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


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


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

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

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

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

в качестве примечания: не забудьте язык факторного программирования. Реализация heavilly использует JIT-компилятор.


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


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

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


Smalltalk имеет компиляторы JIT.


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

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

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