ES-BASIC #16
はじめに
そもそもES-BASICとは?
- ここを読む方はおそらく「ES-BASIC」(イーエス・ベーシック)なんて初めて聞く言葉でしょう。ES-BASICは川合が2019年の7月から作ったプログラミング言語です。
- コンパイラでは「ない」ので、ソースコードを食わせて実行ファイルを得る、みたないことはできません。ソースコードを入力するかもしくはロードして、「RUN」することで実行します。つまりインタプリタ型言語(もしくはスクリプト言語)です。
- 実際、かなり手軽に実行できます。
- スクリプト言語としては、PyhthonやRubyが非常に有名ですが、それと同じタイプになります。しかしこれらの言語と比較すると、ES-BASICは実行速度がかなり高速でもあります。
ES-BAISCと自作OSとの関係(1)
- ES-BASICはかなり小さな言語処理系です(100KB程度です)。またグラフィック処理がOSに依存していますが(Windows)、それ以外はCPUにしか依存していません。
- だからこれを「はりぼてOS」に移植するのはそんなには難しくないでしょう。ただ、オリジナルの「はりぼてOS」は「アプリがメモリ上に機械語を生成して、それを実行する」機能をまだ持っていないので(オリジナルでは実行できるのはディスクから読み込んだ部分だけ)、そこは少し拡張してやる必要がありそうです。
- 使ってみると分かりますが、ES-BASICはけっこう楽しい言語なので(それはesbasic0014の画像とかを見ても察してもらえると思いますが)、これが自作OSで動いたらかなり楽しそうです!
ES-BASICと自作OSとの関係(2)
- 私がプログラム言語を分類するときに注目しているポイントの一つに「その言語でOSは作れるのか」というのがあります(笑)。
- ES-BASICがただのコンパイラ言語なら、生成した機械語をOSの中で利用できさえすれば、それで一応「OSが作れる言語」になります。ES-BASICはそもそも機械語生成能力を持っているので、ただのコンパイラにしてしまうことはとても簡単なことですが、しかしそれだとスクリプト言語だからできること(非常に複雑な定数式のコンパイル時評価)などができなくなってしまい、あまり面白くありません。
- もしスクリプト言語のまま、自作OSに使えるようになったら、起動時の環境によって生成する機械語を変化させ、最適な状態で動くことも可能になりそうですし、アプリももう機械語にする必要はなくなって、ES-BASICで書くだけでよくなります。そうすれば、アプリはもうCPUに依存しないで書けるようになるかもしれず(一つの実行ファイルで、すべてのCPUに対応できる!)、夢はかなり膨らみます!!
- これって、かつて話題になったJavaOSに似たところがあって、つまりそれを「自作OS+自作言語」でやってしまおうということで、わくわくが止まらないわけです。
(編集中)
こめんと欄