作者の川合秀実さんが、a21_txt01_10の「残された課題」に取り組む順序について、再検討した内容を共有してくれました。
残された課題は、記号表やスタックを自前で実装する必要があるため、特にはりぼて言語の公式処理系の構造をベースに言語開発をしたい人にとって良い課題となるでしょう。
私も今これを再検討していて、こんな順序がいいかもしれないと思っています。
— 川合秀実 (@hkawai3) May 20, 2022
[1]まずintだけではなくdoubleも使えるようにする。これで「変数名を見たらそれはintだと思え」が通用しなくなるので、内部に型情報も持つような構造に変わります。
[2]それができたら、次は引数なしの関数です。
型の仕組みを作った後なら、「この名前は関数名である」という管理も簡単かなと思うのです。
— 川合秀実 (@hkawai3) May 20, 2022
それから、ローカル変数、引数サポート、の順番かなと思っています。
構造体とかできたら、すごく楽しそうです。
[1]まずintだけではなくdoubleも使えるようにする(型の仕組みを作る)。
— Masahiro Oono (@words_oono) May 20, 2022
[2]引数なしの関数を作って呼び出せるようにする。
[3]ローカル変数に対応する。
[4]引数ありの関数を作って呼び出せるようにする。
[5]構造体なども使えるようにする。
[6]プリプロセッサにも対応する。
の順に変更します。 https://t.co/dLLHphxlFR
参考
「10日くらいでできる!プログラミング言語自作入門」の続編#2-1 (HL-30)
「[1]まずintだけではなくdoubleも使えるようにする(型の仕組みを作る)」実装方法を解説した公式テキストです。
「10日くらいでできる!プログラミング言語自作入門」の続編#2-2 (HL-31)
「[2]引数なしの関数を作って呼び出せるようにする」実装方法を解説した公式テキストです。