What is Java (compiler lang / or interpreter lang)

Hi,

at our company we have a deadly war going on, please help us :)

Some programmers, including me, saying that Java is

a interpreter language, because the bytecode cant

run on a processor, because the bytecode still is some kind of abstraction, that the VM or a Java-CPU must

interpret.

The other fraction is saying that because you have a compilation step in your development process, and because the bytecode is some kind of machine code, Java is a compiler language.

I would appreciate any comments on this, including some arguments for any opinion.

Thx

Loge

[630 byte] By [logemann] at [2007-9-26 3:06:09]
# 1
Obvious: It's a language that compiles to byte codes.
bschauwe at 2007-6-29 11:08:41 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 2

> Obvious: It's a language that compiles to byte codes.

sure, but this doesnt answer my question...

I hoped for some arguments like "hey its a compiler

language because...." or "hey its a interpreter language because ...."

Its a theoretical discussion here, i personally am not happy with the statement "Java is a compiler language".

Loge

logemann at 2007-6-29 11:08:41 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 3

I'm not happy with the statements "X is a compiled language" or "X is an interpreted language". Languages cannot be classified into compiled and interpreted. It's implementations of languages that can be either compilers or interpreters.

Every implementation of Java I've ever seen compiles Java source code to bytecode or native code.

There are varying implementations of Java bytecode, ranging from strict interpreters to strict compilers and some implementations that combine both approaches.

schapel at 2007-6-29 11:08:41 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 4

> Obvious: It's a language that compiles to byte codes.

sure, but this doesnt answer my question...

I hoped for some arguments like "hey its a compiler

language because...." or "hey its a interpreter language because ...."

Its a theoretical discussion here, i personally am not happy with the statement "Java is a compiler language".

Loge

logemann at 2007-6-29 11:08:41 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 5
well, java does gets compiled to byte codes and the bytecodes get interpreted.i feel u cant jus classify java as a purely compiler lang or an interpreted language.its in between or as schapel said it depends on the implementation.G.P.
ga11 at 2007-6-29 11:08:41 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 6
> logemann said > > Obvious: It's a language that compiles to byte codes.> sure, but this doesnt answer my question...schapel answered the question.
jschell at 2007-6-29 11:08:41 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 7

Hi,

I think, as for speaking generally Java is an interpreted language and in normal case, when the java code is compiled to the byte code format they are interpreted during execution. But I think, In the case of just in time compilers and hotspot compilers, it actually compiles the byte code into machine format ON THE FLY along with optimising them.. So I think modern versions of jvm can be fully classified niether fully as interpreted nor as compiled since the usage of jit can be desabled/enabled. Please give me your valuable comments since I am relatively new to this JVM stuff..

regards Stallon

stallon at 2007-6-29 11:08:41 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 8
I was under the impression that there were some java compilers that produce machine code not byte code output.
jschell at 2007-6-29 11:08:41 > top of Java-index,Java HotSpot Virtual Machine,Specifications...