java.lang.invoke.* and the invokedynamic bytecode have given us a powerful new toolbox with which to implement dynamic languages on the JVM. At Devoxx in Antwerp last November, I gave a talk about how to build dynamic languages in Java7+, using the JVM as the runtime. While the talk is not necessarily implementation specific, a large part of the talk covered the Nashorn project.
The fine folks at Devoxx now released my talk for free to the public, so if you are interested in the implementation details of a modern dynamic language running on the JVM, I encourage you to check it out.
Link to talk: Nashorn - Implementing dynamic languages on the JVM