Notes on an Architecture for Dynamic Invocation
In a previous post I enumerated the various parts that go into a call site in the JVM. In order to support the program structure of other languages, especially dynamic languages, the JVM must extend the present schemes of method definition, invocation, and linkage.
The key new requirements are dynamic relinking, programmable linkage, programmable guards, descriptor polymorphism, and method handles.
In brief:
- dynamic relinking allows dynamic linkage decisions to be revoked
- programmable linkage allows dynamic linkage decisions to be made reflectively by “bootstrap methods”
- programmable guards allows call sites to select among overloaded methods according to language-specific rules
- descriptor polymorphism allows call sites and adapters to be managed and connected generically
- method handles let bootstrap code and call sites refer directly to bytecoded methods
Posted by jrose [JVM] ( December 13, 2007 06:36 PM ) Permalink | Comments[5]
