- 追加された行はこの色です。
- 削除された行はこの色です。
* [[a21]]に関する雑記#1
-(by [[K]], 2021.01.26)
** 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] ソースがあっても処理系がないと動かない(どのバージョンで動かすかわからなくなったとか)。
* こめんと欄
#comment