Slashdot Mirror


Intel's Open Runtime Platform Specs

prostoalex writes "The new issue of Intel Technology Journal has a lengthy article on a new platform, developed in Intel labs. The Open Runtime Platform: A Flexible High-Performance Managed Runtime Environment describes the platform that is capable of running both Java VM and Microsoft's CLI, on both Windows and Linux platforms. Full PDF version is also available."

6 of 26 comments (clear)

  1. Is this... by 3-State+Bit · · Score: 4, Informative
    ...like Parrot?

    Apparently that already runs several languages, including Python and PHP...C++ and Java are definitely supposed to be supported.

    I think.

    From elsewhere:
    Since it is a virtual machine executing virtual assembler code, there are several different languages that compile to Parrot bytecode - it isn't limited to Perl! Here are some of the languages that have been so far done to varying degrees:

    Jako, a C-like language developed for testing Parrot

    Cola, likewise, but more Java-like

    BASIC

    Forth

    ...and an extremely rudimentary Perl 6 compiler...

    What do we think?

    1. Re:Is this... by XBL · · Score: 5, Informative

      No, this article just shows how interfaces creating abstraction can be implemented between the virtual machine, the just-in-time compiler, and the garbage collector without a performance hit.

      This level of separation then allows a better implementation of each of these components to be more easily created. For example, a JIT that supports both Java and CLI is more easy to design and implement. No knowledge of the VM (besides the interface) is needed to do this with ORP.

      Overall, a very impressive article.

    2. Re:Is this... by cbiffle · · Score: 5, Informative

      Nope, not like Parrot, because the JVM and CLI are not like Parrot. There are a lot of differences, but the two main ones are:
      -Static typing.
      -Stack-based (vs. register-based)

      The JVM and CLI are both designed for static-typed languages, like Java, C, C++, C#. Parrot's main deviation from previous VMs is its design around dynamically-typed languages like Perl and Ruby, with the corresponding techniques to make this fast.

      Furthermore, the JVM and CLI are both stack-based, while Parrot is register-based. These involve different optimization techniques and a different underlying virtualization.

      The framework described in the Intel paper is most definitely static-type oriented (they discuss the difference in casting-exceptions in C# and Java, and how they handle it), and most probably stack-oriented (though that doesn't seem specified).

  2. Portable.net by absurdhero · · Score: 2, Informative

    DotGNU's Portable.net [dotgnu.org] has MS CLI and Java support. It is portable to virtually every platform, as its name implies. Im glad to see more of these next generation virtual machines in the making.

  3. Bytecode / microcode by vlad_petric · · Score: 3, Informative
    (This comment mainly refers to the Java bytecode; AFAIK though most of it is true about CLR, too)

    The bytecode, if executed "as is", can be *extremely* inefficient, as the virtual machine is a stack one.

    Modern JITs take a completely different approach to achieve decent performance - they reconstruct the control flow/data flow from the bytecode and then "recompile" (with heavy optimizations, that you can't really do in hardware) into native code. Translating bytecode to instructions directly (or naively) gets you very little benefit over interpretation. The problem is that you can't do more than naive translation in hardware in an efficient manner

    The bytecode is very high level - so high level that you can reconstruct the sourcecode from it (modulo local var names). Hardware likes simple stuff, and as a consequence it's not good at executing it efficiently

    --

    The Raven

  4. Re:but Porable.NET is GPL by Anonymous Coward · · Score: 1, Informative

    Don't confuse commercial with proprietary. There are plenty of commercial GPL products. The de-facto-standard "gnat" ADA compiler used by most of the defense industry, for example.