哪种编程语言有JIT编译器?

时间:2010-05-19 05:31:06

标签: compiler-construction programming-languages jit

我知道C#和Java。其他人都知道其他人吗?

12 个答案:

答案 0 :(得分:11)

严格地说,JIT是运行时的属性,而不是语言。迂腐,但其含义是,例如在JVM上运行的任何语言都可以利用JVM的JIT。 Jython,JRuby,Groovy等。

Tamarin也有JIT。我认为这可以运行JavaScript和ActionScript?不是积极的......

答案 1 :(得分:4)

维基百科上的Just-In-Time Compilation文章列出了几个:

  • GNU lightning - 在运行时生成汇编语言代码的库
  • Mozilla nanojit - 一个发布机器代码的小型跨平台C ++库。它被用作Mozilla Tamarin和SpiderMonkey Javascript引擎的JIT

还有几个用于C ++的组合emmiters。

至于C# - 所有.NET语言都使用相同的运行时和jit。 VB.NET,C#,F#,IronPython,IronRuby,COBOL.NET等...

答案 2 :(得分:4)

Lua令人印象深刻LuaJIT

PLT Scheme已经有一段JIT了。

我相信这些都限于x86。

答案 3 :(得分:2)

.NET运行时使用JIT,因此任何语言都可以使用它。您可以找到更多信息here

答案 4 :(得分:2)

对于Python,有一个PyPy项目,它包含JIT(在许多情况下使代码运行得比在CPython中更快)

答案 5 :(得分:2)

对定义/使用JIT编译器的内容存在一些困惑:它是一种编程语言吗?这是一个程序吗?运行时环境?

实际上,它是特定编程语言的实现,它为特定的目标指令集架构(x86,x86_64,PPC,...)提供JIT编译器。

例如,SBCL实现为Common LISP提供了JIT编译器,但该语言的其他实现没有(例如CLISP)。

另一个例子,Java虚拟机的OpenJDK实现为某些体系结构提供了JIT,但对于仍然解释字节码的其他体系结构(例如ARM)则没有。

作为旁注:不要忘记因子编程语言。重量级的实现使用JIT编译器。

答案 6 :(得分:1)

带有额外库的C ++。

答案 7 :(得分:1)

C#不使用JIT。 C#编译为.NET平台的CIL,.NET在执行时使用JIT。

.NET不仅仅是C#。还有VB.NET,Delphi.NET,Fujitsu Cobol,IronRuby,IronPython,F#等等。所有面向.NET平台的语言都在运行时使用.NET JIT编译器。

答案 8 :(得分:1)

Smalltalk有JIT编译器。

答案 9 :(得分:0)

编程语言不使用JIT。程序使用JIT。

C#没有JIT C#被翻译成CIL而CIL'可执行'被运行JIT。

Dalvik使用Java的语法,但编译为自己的字节码。 Dalvik VM与Java VM完全不同。

答案 10 :(得分:0)

我自己不是Julia专家,但这是一种严重依赖JIT的语言。这里有许多人断言JIT纯粹是语言的运行时实现方面。这就是最初的想法。但是据我了解,Julia作为一种语言的设计受到JIT的强烈影响和构建。

答案 11 :(得分:0)

Julia 的设计初衷是为了工作 使用 JIT 编译器。