Какие языки программирования имеют JIT-компиляторы? - PullRequest
10 голосов
/ 19 мая 2010

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

Ответы [ 10 ]

11 голосов
/ 19 мая 2010

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

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

4 голосов
/ 20 мая 2010

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

Схема PLT уже некоторое время имеет JIT.

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

4 голосов
/ 19 мая 2010

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

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

и еще нескольких сборщиков для C ++.

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

2 голосов
/ 24 сентября 2010

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

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

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

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

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

2 голосов
/ 02 июля 2010

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

2 голосов
/ 19 мая 2010

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

1 голос
/ 20 мая 2010

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

1 голос
/ 19 мая 2010

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

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

1 голос
/ 19 мая 2010

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

0 голосов
/ 19 мая 2010

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

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

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

...