Am 12.09.2013 17:55, schrieb deadalnix:
On Thursday, 12 September 2013 at 11:30:57 UTC, PauloPinto wrote:
I don't get the point, what there is VM like when I compile Java,
Scala, F#, C# native code?


Compiling such language to native code require horribly convoluted code
generation. For instance, an helloworld in java compilled natively with
gcj gives you a 50Mb (!) binary blob.

gcj is a lame example. The project is dead since 2009 and they hardly invested anything into optimizing compiler. Just blindly translating bytecodes directly to processor instructions.

Native code generation has *nothing* to do with binary size. Have you tried to statically compile similar examples in other languages?

Lets use Oberon as an example for my native point.

GC enabled systems programming language created to write operating systems. So same space as D, but also same space as Java and Go because
it does not allow disabling the GC.

Wirt used it to write Native Oberon, originally targeting the Ceres workstation at Zurich Technical University. System that was used for a few years by students and professors, even for daily desktop tasks.

At ETHZ, there were native code compilers for Oberon, interpreters and
they even played with the idea of JIT compiling dynamic modules on load
using a kernel level JIT.

So does Oberon use require VM ?

If one wants to misuse the VM term to mean runtime library, then all high level languages have a VM even ANSI C.


--
Paulo

Reply via email to