a21に関する雑記#1
2021.01.25(月)
- 今日はa21_txt01_3のTL-3を書きました。我ながらシンプルにわかりやすく書けた気がします。
- ラベル名をうまく使って、分岐先のpc値を高速に求められるようにしたので、結構高速に動いてくれそうな気がします。
- でもなあ、goto命令だからなあ。やっぱり嫌がられてしまうかなあ・・・。
2021.01.26(火)
- うーん、この先の拡張を考えると、トークンコードの処理は別の関数に切り出しておくほうがよさそうだなあ・・・。じゃあさかのぼってTL-2から修正するかな。
- TL-4で高速化して、TL-5で「式」を扱えるようにして、TL-6で型を導入したらいいかなあ・・・。
2021.01.27(水)
- TL-4での高速化はやっぱりやめます。それはTL-5でやることにします。
- TL-4でやるべきは「REPLの導入」だと思いなおしました。・・・TLシリーズはせっかくのスクリプト言語(インタプリタ)なので、そのメリットを生かさないともったいないです。だからREPLの導入はぜひやるべきだと確信しました!
- その後の予定としては、TL-5で少し高速化して、TL-6でもっと高速化して、TL-7でwihleループやブロックifなどを導入して、TL-8かそれ以降でグラフィック命令を導入します。
- そのあたりまでできたら、次はTJシリーズに移行して、JITコンパイラかな・・・。
- TL-4ができました。REPLできるのはすごく楽しいです。これがたった7.5KBのアプリで実現できるなんて! →a21_txt01
2021.01.28(木)
- TLシリーズでどこまでやるかで少し悩んでいます。たぶんやりすぎないほうがいいんです。道半ばにしておいて、「自分だったらこうするのに」をいくつか残しておくほうが、その後の開発にチャレンジする人が増えると思うのです。
- ということで型も浮動小数点演算も配列も構造体も関数もローカル変数も全部見送ろうかなと思っているのですが、どうかなあ。
- 具体的な改造コードを提示しないまでも、こうすればできそうだよね?くらいの話は書くかなあ。
- [memo]あとでどこか別のところにまとめるつもりだけど、インタプリタ言語のメリット:
- [1] 実行ファイルがいらない。ソースコードだけあればよい。あとで、実行ファイルだけになって、「ソースは失われてしまった」みたいな事故が起きない。
- [2] インタプリタ言語のソースコードは(たいてい)機種依存しないので、移植しなくていい。将来新しいCPUとかOSが出ても無修正で対応できる。
- [3] JITコンパイラとかであれば、それぞれの環境に応じた実行コードを生成して実行してくれる(可能性がある)。
- [4] インタプリタはREPLができる。
- 対応するデメリット:
- [1] ソースがあっても処理系がないと動かない(どのバージョンで動かすかわからなくなったとか)。
こめんと欄