a21_hlx003
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* HLX-003
-(by [[K]], 2021.11.30)
** (0)
-HLXは、「10日くらいでできる!プログラミング言語自作入門...
//--中・長期の目標は[[a21_hlx000]]に書いてあります。
-HLX-003はその3番目のバージョンです。まあHL-25みたいなも...
--[[a21_hlx001]] : 最初のバージョン
--[[a21_hlx002]] : 2番目のバージョン
** (1) 概要
-HLXは、普通のコンパイラと、JITコンパイラと、普通のインタ...
--普通のコンパイラ部分はクロス開発可能な仕様になっていて...
--普通のインタプリタを持っているため、JITコンパイラ部分を...
-hlx_x86_win.exeは76.0KBです。hlx_x64_win.exeは96.0KBです。
-C言語っぽい書き方とBASICっぽい書き方の両方に対応していま...
-生成コードの質は(処理系が小さいにしては)なかなかよく、...
--JITコンパイラでこんなに速いと、もう普通のコンパイラはい...
----
-''[1-1] C言語との互換性を強化しました。''
--使える演算子が増えました。
--forやifで { } を使わないコードブロックにも対応しました...
--しかしそれでも、まだまだ完全互換やセルフホストには遠い...
-''[1-2]acl01aに対応しました。''
--(註)acl01aについては、こちらで紹介しています。→[[a21_...
-''[1-3]BASIC風の構文も併用できるようになりました。''
--この構文では基本的に全部大文字で記述できます。キーボー...
--HLX-BASICの仕様:
---基本的に小学生が少しでも入力しやすくなる言語を目指す。
---コンマは使うけど、ピリオドはできるだけ使わない(両方あ...
---セミコロンは使うけど、コロンはできるだけ使わない(両方...
---カッコも減らす。中括弧は小学生に評判が良くないので使わ...
-''[1-4]エラー表示を改良しました。''
--エラーになった時に、エラーを起こした行を表示するように...
** (2) ダウンロード & テスト実行
-http://k.osask.jp/files/hlx003a.zip (114KB)
-http://k.osask.jp/files/hlx003b.zip (114KB)
-http://k.osask.jp/files/hlx003c.zip (115KB)[最新版]
--Windows用の実行ファイル(32bitと64bit)と、ソースコード...
-起動するとプロンプトが出ます。
hlx>run maze2.c
-とすれば迷路が出てきます。 ESCキー を押せば終了してプロ...
hlx>run invader.c
-とすればインベーダゲームができます。ゲーム中に ESCキー ...
hlx>run kcube.c
-とすればキューブが回転します。何かキーを押せば終了します。
** (3) プログラム例
-grd2.c (C言語風)
#include <acl.c>
void aMain()
{
AWindow *w = aOpenWinEx(16, 16, "gradation", 1);
int x, y;
for (y = 0; y < 256; y++) {
for (x = 0; x < 256; x++)
aSetPixOpt(w, AOPT_RfCf, x, y, aRgb8(y, x, 0...
}
aWait(-1);
}
-grd2.txt (BASIC風)
CANVAS 16,16,"gradation";
FOR Y=0,256;
FOR X=0,256;
SETPIX@@ RF+CF,X,Y,RGB8(Y,X,0);
NEXT;
NEXT;
WAIT -1;
----
-他にも多数のプログラム例があります。
|[[a21_edu02]]|坂道を走ってきれいな石を拾い集めるゲーム(...
|[[a21_edu03]]|ハンバーガーキャッチ・ゲーム(30行)|
|[[a21_edu04]]|ジャンプ・ゲーム(29行)|
|[[a21_edu05]]|タイピングゲーム(31行)|
|[[a21_edu06]]|ロケット操縦ゲーム|
|[[a21_edu07]]|ブロックくずし|
** (4) hlxをソースコードからビルドする方法
-hlx003c.zip内のhlx.cはaclライブラリを利用する形で書かれ...
** (5) ベンチマーク
-mandel1_opt.c, Kano-PC (Intel Celeron N4000)
--[1~4]hlx003c, hlx_x64_win.exe(96.0KB)
--[6~7]gcc version 8.1.0 (x86_64-posix-seh-rev0, Built b...
--[8]TinyCC 0.9.27 (151KB+23KB)
|[1]hlx codemode=2, optmode=0|RIGHT:''1.999秒''|x64用JIT...
|[2]hlx codemode=2, optmode=1|RIGHT:2.799秒|x64用JITコン...
|[3]hlx codemode=2, optmode=15|RIGHT:5.507秒|x64用JITコン...
|[4]hlx codemode=0, optmode=0|RIGHT:28.669秒|インタプリタ...
|[5]hlx codemode=0, optmode=15|RIGHT:50.223秒|インタプリ...
|[6]gcc -m64 -O0|RIGHT:5.880秒|最適化OFF|
|[7]gcc -m64 -O3|RIGHT:''1.905秒''|速度優先モード|
|[8]tcc -m64|RIGHT:6.453秒|(tccには最適化レベル指定があ...
--上記は実行時間の比較です。コンパイル時間は測定していま...
--[1]と[7]を比べると、hlxは4.9%ほどgccに負けていると言え...
** (6) バージョンアップ履歴
-hlx003a → hlx003b :
--acl01bに対応。
--細かいバグ修正。
--エラー行の特定に失敗するケースを減らした。
-hlx003b → hlx003c :
--C言語風の記法でまともに動かなくなっていたバグを修正。
--for文のエラー検出能力を改善。
* こめんと欄
#comment
終了行:
* HLX-003
-(by [[K]], 2021.11.30)
** (0)
-HLXは、「10日くらいでできる!プログラミング言語自作入門...
//--中・長期の目標は[[a21_hlx000]]に書いてあります。
-HLX-003はその3番目のバージョンです。まあHL-25みたいなも...
--[[a21_hlx001]] : 最初のバージョン
--[[a21_hlx002]] : 2番目のバージョン
** (1) 概要
-HLXは、普通のコンパイラと、JITコンパイラと、普通のインタ...
--普通のコンパイラ部分はクロス開発可能な仕様になっていて...
--普通のインタプリタを持っているため、JITコンパイラ部分を...
-hlx_x86_win.exeは76.0KBです。hlx_x64_win.exeは96.0KBです。
-C言語っぽい書き方とBASICっぽい書き方の両方に対応していま...
-生成コードの質は(処理系が小さいにしては)なかなかよく、...
--JITコンパイラでこんなに速いと、もう普通のコンパイラはい...
----
-''[1-1] C言語との互換性を強化しました。''
--使える演算子が増えました。
--forやifで { } を使わないコードブロックにも対応しました...
--しかしそれでも、まだまだ完全互換やセルフホストには遠い...
-''[1-2]acl01aに対応しました。''
--(註)acl01aについては、こちらで紹介しています。→[[a21_...
-''[1-3]BASIC風の構文も併用できるようになりました。''
--この構文では基本的に全部大文字で記述できます。キーボー...
--HLX-BASICの仕様:
---基本的に小学生が少しでも入力しやすくなる言語を目指す。
---コンマは使うけど、ピリオドはできるだけ使わない(両方あ...
---セミコロンは使うけど、コロンはできるだけ使わない(両方...
---カッコも減らす。中括弧は小学生に評判が良くないので使わ...
-''[1-4]エラー表示を改良しました。''
--エラーになった時に、エラーを起こした行を表示するように...
** (2) ダウンロード & テスト実行
-http://k.osask.jp/files/hlx003a.zip (114KB)
-http://k.osask.jp/files/hlx003b.zip (114KB)
-http://k.osask.jp/files/hlx003c.zip (115KB)[最新版]
--Windows用の実行ファイル(32bitと64bit)と、ソースコード...
-起動するとプロンプトが出ます。
hlx>run maze2.c
-とすれば迷路が出てきます。 ESCキー を押せば終了してプロ...
hlx>run invader.c
-とすればインベーダゲームができます。ゲーム中に ESCキー ...
hlx>run kcube.c
-とすればキューブが回転します。何かキーを押せば終了します。
** (3) プログラム例
-grd2.c (C言語風)
#include <acl.c>
void aMain()
{
AWindow *w = aOpenWinEx(16, 16, "gradation", 1);
int x, y;
for (y = 0; y < 256; y++) {
for (x = 0; x < 256; x++)
aSetPixOpt(w, AOPT_RfCf, x, y, aRgb8(y, x, 0...
}
aWait(-1);
}
-grd2.txt (BASIC風)
CANVAS 16,16,"gradation";
FOR Y=0,256;
FOR X=0,256;
SETPIX@@ RF+CF,X,Y,RGB8(Y,X,0);
NEXT;
NEXT;
WAIT -1;
----
-他にも多数のプログラム例があります。
|[[a21_edu02]]|坂道を走ってきれいな石を拾い集めるゲーム(...
|[[a21_edu03]]|ハンバーガーキャッチ・ゲーム(30行)|
|[[a21_edu04]]|ジャンプ・ゲーム(29行)|
|[[a21_edu05]]|タイピングゲーム(31行)|
|[[a21_edu06]]|ロケット操縦ゲーム|
|[[a21_edu07]]|ブロックくずし|
** (4) hlxをソースコードからビルドする方法
-hlx003c.zip内のhlx.cはaclライブラリを利用する形で書かれ...
** (5) ベンチマーク
-mandel1_opt.c, Kano-PC (Intel Celeron N4000)
--[1~4]hlx003c, hlx_x64_win.exe(96.0KB)
--[6~7]gcc version 8.1.0 (x86_64-posix-seh-rev0, Built b...
--[8]TinyCC 0.9.27 (151KB+23KB)
|[1]hlx codemode=2, optmode=0|RIGHT:''1.999秒''|x64用JIT...
|[2]hlx codemode=2, optmode=1|RIGHT:2.799秒|x64用JITコン...
|[3]hlx codemode=2, optmode=15|RIGHT:5.507秒|x64用JITコン...
|[4]hlx codemode=0, optmode=0|RIGHT:28.669秒|インタプリタ...
|[5]hlx codemode=0, optmode=15|RIGHT:50.223秒|インタプリ...
|[6]gcc -m64 -O0|RIGHT:5.880秒|最適化OFF|
|[7]gcc -m64 -O3|RIGHT:''1.905秒''|速度優先モード|
|[8]tcc -m64|RIGHT:6.453秒|(tccには最適化レベル指定があ...
--上記は実行時間の比較です。コンパイル時間は測定していま...
--[1]と[7]を比べると、hlxは4.9%ほどgccに負けていると言え...
** (6) バージョンアップ履歴
-hlx003a → hlx003b :
--acl01bに対応。
--細かいバグ修正。
--エラー行の特定に失敗するケースを減らした。
-hlx003b → hlx003c :
--C言語風の記法でまともに動かなくなっていたバグを修正。
--for文のエラー検出能力を改善。
* こめんと欄
#comment
ページ名: