InvokeDynamic から Nashorn のご紹介
JavaVM(Java の実行環境)は Java のバイトコード命令を実行する処理系で、JavaVM はバイトコードがどのプログラミング言語から生成されたかは重視していません。一方で、JavaVM は元々静的型付け言語のために設計・実装されていたため、JavaScript のような動的型付け言語をバイトコードに変換し JavaVM 上で実行する事は、パフォーマンスの観点で課題がありました。そこで、Oracle は Nashorn と呼ぶ JavaVM 上で高速に稼働する JavaScript エンジンの実装プロジェクトを立ち上げました。
本セッションは、新しい JavaScript エンジンのパフォーマンスのご紹介のほか、JavaScript からバイトコードを生成する過程についてご紹介します。具体的には、Java SE 7 で導入された新しい InvokeDynamic バイトコード命令の概要について紹介した後、Nashorn におけるバイトコード命令の扱いについてご紹介します。また将来に向けて提案中の、動的型付け言語用のパフォーマンスの改善ポイントについて、JavaVM とバイトコード・コンパイラそれぞれにおける改善ポイントについても触れる予定です。
オラクル・コーポレーション
Java Product Management
Java Technology Evangelist
Simon Ritter