コードがその範囲外の配列をアドレス指定しないことをコンパイル時に証明できる、十分に強力な型システムをサポートする言語がいくつかあります。私の質問は、そのような言語を JVM にコンパイルする場合、パフォーマンスのためにそれを利用し、すべての配列アクセスで発生する配列境界チェックを削除する方法はありますか?
1) 最近の JDK がいくつかの配列境界チェックの除去をサポートしていることは知っていますが、コンパイル時に特定の呼び出しが安全であることを知っているので、より安全に削除することができます。
2) これはパフォーマンスにあまり影響しないと考える人もいるかもしれませんが、特に科学計算などの配列/計算の多いアプリケーションでは、最も確実に影響します。
キャストに関する同じ質問。何かが特定の型であることは知っていますが、Java は型システムが限られているためそうではありません。JVMに「私を信頼して」チェックをスキップするように指示する方法はありますか?
JVM は一般に配布されているため、おそらくこれを行う方法はないと思いますが、この機能を使用して JVM を変更することは合理的でしょうか? これは行われたことですか?
これは、より強力な型付き言語を JVM にコンパイルする際のフラストレーションの 1 つであり、Java の制限によって妨げられています。