Closed7
Crafting Interpretersやる

本家実装
Java実装だけどRustの実装例もあるみたい...多い...
これがstar多そう

↑の実装を参考に、Javaで書きつつRustにコンバートするように頑張ろう

p67にJavaScriptの設計に関する筆者の意見が書いてあるのだけど、なかなか痛烈

再開。

p133に興味深い話が書いてあった。
「Javaにおける配列の共変(covariant)性」が原因で起こる「配列アップキャスト時の落とし穴」
以下のコードは、Javaは歴史的経緯で配列を共変にしているため、Integer[]をObject[]として使える反面、実行時エラー(ArrayStoreException)が発生しうる
Object[] stuff = new Integer[1];
stuff[0] = "not an int";
配列の共変によってコンパイラチェックが抜け落ちて、実行時に型不整合が露呈している

JavaでLox実装したところで一旦停止。
このスクラップは2025/01/08にクローズされました