Da Vinci Machine
From Wikipedia, the free encyclopedia
This article or section contains information about computer software currently in development. The content may change as the software development progresses. |
The Da Vinci Machine, also called Multi Language Virtual Machine is a starting Sun Microsystems project aiming to prototype the extension of the Java Virtual Machine to add support for dynamic languages.
It is already possible to run dynamic languages on top of the JVM, but the goal is to ease new dynamic languages implementation and performance.
Contents |
[edit] History
Following the success of the JRuby Java implementation, the project was started end of January 2008[1]. The capabilities experimented by Da Vinci are planned to be added to Java 7.
[edit] Support for dynamic Languages
The Java Virtual Machine has currently no built-in support for Dynamically typed languages:
- The existing JVM instruction set is statically typed[2],
- JVM has a limited support for dynamically modifying existing classes and methods. It currently only works in a debugging environment.
JSR 292 (Supporting Dynamically Typed Languages on the JavaTM Platform) [3] propose to:
- add a new
invokedynamic
instruction at the JVM level, to allow method invocation relying on dynamic Type checking, - to be able to change the classes and method at runtime dynamically in a production environment.
The Da Vinci project will prototype this JSR, but also other lower-priority extensions[4].
[edit] See also
- JVM Languages
- Dynamic Language Runtime, an ongoing effort from Microsoft to bring support for dynamic languages on top of the .NET Framework Common Language Runtime
[edit] References
- ^ Krill, Paul (2008-01-31). Sun's Da Vinci Machine broadens JVM coverage. Retrieved on 2008-02-06.
- ^ Nutter, Charles (2007-01-03). InvokeDynamic: Actually Useful?. Retrieved on 2008-02-06.
- ^ see JSR 292
- ^ Sub-Projects and Investigations. Sun Microsystems (2007). Retrieved on 2008-02-06.