views:

243

answers:

10

I know C# and Java do. Anyone else know of any others?

+1  A: 

C++ with extra libraries.

x2
+6  A: 

Strictly speaking, JIT is a property of the runtime, not the language. Pedantic point, but the implication is that any language that runs on a JVM for example can take advantage of the JVM's JIT. Jython, JRuby, Groovy, etc.

Tamarin has a JIT too. I think this can run JavaScript and ActionScript? Not positive...

Willie Wheeler
Right. I changed the title of this question to reflect that fact, thanks!
DJTripleThreat
Wow, I thought I was being pedantic. Some of the responses are saying that the answers are Java bytecode and CIL. Ha ha ha. You may end up having to say "What are the programming languages for which there exists at least one static compiler to carry that language to bytecode that will run on a JIT-endowed VM?" :-)
Willie Wheeler
+4  A: 

The Just-In-Time Compilation article on wikipedia lists several more:

  • GNU ligtening - A library that generates assembly language code at run-time
  • Mozilla nanojit - A small, cross-platform C++ library that emits machine code. It is used as the JIT for the Mozilla Tamarin and SpiderMonkey Javascript engines

And several more assemblly emmiters for C++.

As for C# - all .NET languages use the same runtime and jit. VB.NET, C#, F#, IronPython, IronRuby, COBOL.NET and more...

Oded
+2  A: 

the .NET runtime uses JIT so any language hitting that. You can find more info here.

senloe
+1  A: 

C# doesn't use JIT. C# compiles to CIL for the .NET platform, and .NET uses JIT at execution time.

.NET is much more than just C#. There's also VB.NET, Delphi.NET, Fujitsu Cobol, IronRuby, IronPython, F#, and more. All languages that target the .NET platform make use of the .NET JIT compiler at runtime.

dthorpe
+1  A: 

Programming languages doesn't use JIT. Programs use JIT.

C# doesnt have JIT C# is translated to CIL and CIL 'executable' is run JIT.

Dalvik uses Java's syntax, but is compiled to its own bytecode. Dalvik VM is totaly different than Java VM.

Mike
+1 for mentioning Dalvik. That's what originally motivated me to ask this question.
DJTripleThreat
+2  A: 

Lua has the impressive LuaJIT.

PLT Scheme has had a JIT for some time now.

I believe both of these are limited to x86.

Norman Ramsey
LuaJIT for x86-64 is in beta and will be available soon.
asandroq
A: 

Smalltalk has JIT compilers.

abababa22
+1  A: 

for Python, there is a PyPy project, which it includes JIT (making possible the code to run faster than in CPython in many cases)

mykhal
A: 

There is some confusion on what defines/uses a JIT compiler: is it a programming language? is it a program ? a runtime environment?.

In fact, it is an implementation of a particular programming language which provides a JIT compiler for specific target instruction set architectures (x86, x86_64, PPC, ...).

For example, the SBCL implementation provides a JIT compiler for Common LISP, but other implementations of that language do not (such as CLISP).

Another example, the OpenJDK implementation of the Java virtual machine provides a JIT for some architectures, but not for others (such as ARM) where bytecode is still interpreted.

As a side note: don't forget the Factor programming language. The implementation heavilly uses a JIT compiler.

Gabriel Cuvillier