HLX-001
(0)
- HLXは、a21_txt01やその続編で作ったHLシリーズ(はりぼて言語)をベースに、Kが望む理想の言語を作るプロジェクトです。
- HLX-001はその最初のバージョンです。まあHL-23みたいなものです。
(1) 概要
- HLX-001は、HL-9a, HL-16a, HL-22aの3つを統合し、さらに改良を加えたものです。
- 統合されているので、モードを切り替えて使います。
- [codemode 0] HL-9a相当の実行モードで、JITコンパイルせずに中間コードを実行します。x86, x64以外でも(ソースからコンパイルすれば)動くはずです。
- [codemode 1] HL-16a相当の実行モードで、x86の32bitの機械語をJITコンパイラで生成します。64bit版でもこのモードを利用することができますが、64bit版は32bit用の機械語を実行できないので、 codedump 1 で機械語を表示することしかできません(将来のバージョンではアセンブラも出力できます。)
- [codemode 2] HL-22a相当の実行モードで、x64の64bitの機械語をJITコンパイラで生成します(MS-Windows系のABI)。32bit版でもこのモードを利用することができますが、32bit版は64bit用の機械語を実行できないので、 codedump 1 で機械語を表示することしかできません(将来のバージョンではアセンブラも出力できます。)
- [codemode 3] HL-22a相当の実行モードで、x64の64bitの機械語をJITコンパイラで生成します(System V系のABI)。以下同文。・・・しかし、codemode 3は全くデバッグしてないので、このバージョンではきちんと動かないかもしれません。
- http://k.osask.jp/files/hlx001a.zip (75.3KB)
- [内容物]
- hlx001_32.exe : 32bit版の実行ファイル(21.5KB)
- hlx001_64.exe : 64bit版の実行ファイル(29.0KB)
- mandel.cなどのサンプルプログラム
- hlx001src/
- hlx001.c (935行) - ソースコードから共通中間コードに変換
- esvm.c (945行) - 共通中間コードを最適化する
- esvm_run.c (200行) - 共通中間コードをインタプリタで実行
- esvm_x864.c (1027) - 共通中間コードをx86/x64の機械語に変換