Devoxx: Towards a dynamic VM by Brian Goetz and Alex Buckley

The JVM and the Java Language should be treated as two decoupled things. The JVM provides the basic infrastructure on which the Java Language builds: Garbage collection, reflection, security, Hotspot ... All those things make the JVM appealing to other languages like JRuby, Jython, Groovy and Scala. Choosing for the JVM as a platform has also tradeoffs like for example the fact that the JVM is stack based (vs. the registry based VM in for example the Davlik VM of Android).

Dynamic language on the JVM problems and solutions (mostly focusing on JRuby). All this is quite low level for me, I just wrote down some keywords I might investigate further some day:

  • 'Open classes' --> JSR 292 invokedynamic =consider argument types at runtime = invokevirtual optimized
  • overhead of reflection and BigInteger
  • 'inline caching' trick to cache 'Method Objects'
  • 'invoke interface'
  • tail calls
  • continuations
  • tuples
  • value objects

No comments: