☕JAVAの仕様をゆっくり読みたい 型推論と非java言語機能 invokedynamic命令とともに

2版は本で出ているみたいだった

https://amzn.to/3JEUqNW

非Java言語機能の概要型推論君いらっしゃい

おそらく型推論に関連して、JM仕様にも非JAVA言語の概要が入ったに違いない。2版が手に入ったら調べてみる。

Java 10 には、ローカル変数の型推論という華々しい言語機能が新しく導入されています。

https://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java_MJ18_Java10Overview.pdf

JAVAからずいぶん離れているので、たぶん型推論自体はJAVA8以前から細々とあって、JAVA10で華々しくなったようだ。

主要なメカニズムはinvokedynamic命令で、動的型付け言語のコンパイラおよびランタイム・システムのJVMへの実装を簡略化します。

https://docs.oracle.com/javase/jp/9/vm/support-non-java-languages.htm#GUID-66752E7E-B9A5-4E86-9E98-C2733B4987FA

VM仕様での非JAVA言語昨日はSE7あたりで導入されたということみたいだった。

Java SE 7 (July 28, 2011) – Codename Dolphin. This version developed under JSR 336.[40] It added many small language changes including strings in switch, try-with-resources and type inference for generic instance creation. The JVM was extended with support for dynamic languages, while the class library was extended among others with a join/fork framework,[41] an improved new file I/O library and support for new network protocols such as SCTP. Java 7 Update 76 was released in January 2015, with expiration date April 14, 2015.[42] Java SE 7(2011年7月28日) - コードネーム「ドルフィン」。JSR 336の下で開発されたバージョン[40]。 switchにおける文字列、try-with-resources、汎用インスタンス生成のための型推論など、多くの小さな言語変更が加えられた。JVMは動的言語のサポートで拡張され、クラスライブラリはjoin/forkフレームワーク、改良された新しいファイルI/Oライブラリ、SCTPのような新しいネットワークプロトコルのサポートなどで拡張されている[41]。Java 7 Update 76は2015年1月にリリースされ、有効期限は2015年4月14日である[42]。

https://en.wikipedia.org/wiki/Java_(software_platform)#Version_history

プログラミング言語は、実行時に型チェックを実行する場合、動的に型付けされます。JavaScriptとRubyは動的型付け言語の例です。これらの言語は、アプリケーション内の値が予期する型に一致することを、コンパイル時ではなく実行時に確認します。

https://docs.oracle.com/javase/jp/9/vm/support-non-java-languages.htm#GUID-B4C667E0-62EE-4124-82AA-D91FAF53F587

以降JAVAのVM仕様だがRUBYを例に色々な説明がされていく。

Javaでのinvokedynamicによ るメソッド呼出しを理解する

https://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-ND17-MethodInvoc2.pdf

お願い致します