HLX-000
(1)
- HLXは、a21_txt01やその続編で作ったHLシリーズ(はりぼて言語)をベースに、Kが望む理想の言語を作るプロジェクトです。
(2)
- HLはintしか使えませんでしたが、HLXではcharやfloatもdoubleも付けます。構造体ももちろん使えます。
- HLシリーズではスタック変数がなくて全部グローバル変数になっていましたが、HLXではスタック変数も使えるようにします。
- JITコンパイラと普通のコンパイラを統合します。x86とx64も統合します。たぶんARM32やAArch64もサポートします。
- セルフホストも達成して、最後にKはgccとサヨナラします。
(3) その先
- HLXはOSECPU-VMと合流したいです。・・・経緯はこうです。
- まず、HLXはプログラムをJITコンパイルして実行したり、普通のコンパイラのようにアセンブラソースを出したりできます。ターゲットとなるCPUやOSは、コマンドラインオプションで指定します。つまり言語の実行ファイルは1つです。出力したいものに合わせて、(コンパイラの)実行ファイルを選ぶ必要はありません。
- このようになんでも出せるようになると、では何で出すのが一番いいのかという疑問が生じます。x64のアセンブラでしょうか。しかしx64がベストな機械語なんでしょうか。それともAArch64でしょうか。・・・結局ソースコードのまま持っておくのが一番かもしれません。そうすればどこでも実行できます。何かの形式にしてしまうと、他のところで実行できなくなるからです。
- しかし、ソースコードのまま持っておくのは可読性は最高ですが、やはりかさばります。だからなんらかのバイナリにしたいと思います。・・・それで、それならOSECPU-VMのバイナリにすればいいじゃないかと思ったのです。これなら実行環境を選ばないですし、サイズは十分に(というか限界まで)小さくなるでしょう。
- ということで、将来的にいろんなものを開発して、それは全部OSECPU-VMのバイナリにして、そこから任意のバイナリ(x86とかx64とかAArch64とか)に変換することもできて、変換せずにJITコンパイラで実行することもできて、どのOSの上でも同じように暮らせるようなそんな世界を目指します。