バイトコードを自動生成するコード

プレゼン後に id:hayamiz さんから質問されたことを補足して見ますよ。
確か 「バイトコードはファイルに出力されるのかどうか」 って話が出てきたかと記憶してるんですが、結論を言えば Java では完全オンメモリでクラスファイル読み込めることができます。
ちょうど kuzha で JvmCodeBuilder.java の KuzhaClassLoader#findClass で行ってる処理なのですが、クラスファイルを表すバイト列を defineClass に突っ込んであげればクラスが返ってきます。java.lang.ClassLoader#defineClass は標準で用意されているので、ASM はクラスファイルを表すバイト列を生成するところまでがんばってくれる感じです。


ちなみに、C# では System.Reflection.Emit.AssemblyBuilder クラスを使って動的なアセンブリを作ることができます。ただしこちらは、こっそりと一時的なファイルを生成するという荒業を使っているという話をどこかで聞いたことがありまして、少し話が複雑になるかもしれません。ただし見かけ上はオンメモリでやっているように見えますので、まあオンメモリと言って良いんじゃないかと思ってたりします。
DLR も Reflection.Emit を内部的に使用しているので、理屈は同じです。