* HLX-001
-(by [[K]], 2021.06.20)

** (0)
-HLXは、[[a21_txt01]]やその続編で作ったHLシリーズ(はりぼて言語)をベースに、[[K]]が望む理想の言語を作るプロジェクトです。
--中・長期の目標は[[a21_hlx000]]に書いてあります。
-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の機械語に変換

-(以下編集中)


----

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS