esb02b_hrb
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* esb02b.hrb について
-(by [[K]], 2020.05.30)
** (1) esb02b.hrb とは?
-esb02b.hrbは、自作言語である ES-BASIC ver.0.2b を「30日...
--ES-BASIC ver.0.2b については、ここに詳しく書いてありま...
--つまり「自作OS上で自作言語を動かしてみよう」という、夢...
** (2) 「はりぼてOS」について
-ただし、純粋な「はりぼてOS」では ES-BASIC ver.0.2b 相当...
--[定番の改造] FPU命令を利用可能にする拡張
--[定番の改造] IPLの改良(これでサイズの大きいアプリが扱...
--[定番の改造] OSの無駄を少し減らす改造
--データ領域に書いたコードを実行可能にするAPIの追加
--Shift,Ctrl,Altの入力も取得できる拡張
--これらの改造についての詳細は http://hrb.osask.jp/wiki/?...
-これらの改造の結果、OS本体+デバイスドライバ+シェルであ...
--つまりは、なんだかんだ言ってもその程度のシンプルなOSだ...
-「はりぼてOS」は以下の写真のような感じのOSです( http://...
--http://hrb.osask.jp/fig0227.png
** (3) esb02b.hrb について
-「はりぼてOS」は残念ながら、ファイルへの書き込み機能を持...
--でも移植を楽にしたかったので、コンパイラ処理部分もすべ...
-しかしそれ以外の機能はほとんど問題なく使えます。もちろん...
----
-率直な感想として、自作OSの上で自作言語がサクサクと動いて...
-なんというか、まずOSが一人前になった感じがします。「この...
-同時に「この言語はこんな貧弱な環境でも問題なく動いてしま...
--私は以前、gccを(別の自作OSである)OSASK上で動くように...
--それと比べたら、今回の移植は非常に楽でした。「はりぼてO...
--理由としては、 ES-BAISC ver.0.2b が標準ライブラリすらわ...
--もし、Pythonを移植するとしたらどのくらいの手間がかかる...
-esb02b.hrb を起動すると、当然ですがメモリを消費します。...
--ちなみにOS込みで、32MBくらいあればメモリ不足を感じるこ...
--普段は「Windows はメモリ2GB(=2048MB)ではしんどいなあ...
-以下はesb02b.hrbを実際に起動してプログラムを実行させたと...
--(mandel.txtは[[esbasic02a]]の(4-2)に書いてある36行のプ...
--http://k.osask.jp/files/pic20200602a.png
-こちらも実行画面です。キューブ回転も問題なく動きます。
--http://k.osask.jp/files/pic20200605a.png
-[Q]なんでロードしているの?もしかしてesb02b.hrbではプロ...
--[A]いえいえ、もちろんそんなことはありません。普通に入力...
--しかし、「はりぼてOS」ではアプリの垣根を超えたコピー&...
--ということでテキストファイルにしておいて、ロードするこ...
--Windows版ではloadコマンドをほとんど使っていなかったので...
** (4) 移植の手間
-今回の移植はどのくらいの手間だったのかをここで報告します。
||改変行数||備考|
|esbasic.c|RIGHT:12行|メインモジュール|全部で3160行のうち...
|kcl03.c|RIGHT:5行|自作の汎用C言語ライブラリ||
|kcll00.c|RIGHT:0行|自作の言語開発支援ライブラリ||
|bla.h|RIGHT:4行|自作のグラフィックライブラリ||
|bla.c|RIGHT:44行|自作のグラフィックライブラリ|「はりぼて...
|bla2.h|RIGHT:0行|自作のグラフィックライブラリ||
|bla2.c|RIGHT:0行|自作のグラフィックライブラリ||
|chr.c|RIGHT:0行|ES-BASIC用のキャラクタデータ||
|hrbcons.c|RIGHT:101行|(新規作成)簡易コンソール|OSが標準...
|std.c|RIGHT:530行|(新規作成)標準関数(下記参照)|標準関数...
|合計|RIGHT:696行|||
-今回即席で作った標準関数:
--qsort, exit, strtoull, malloc
--time, clock
--vsnprintf, snprintf, fprintf, vfprintf, printf, putchar...
--fopen, fread, fwrite, fseek, feof, fgets, fclose
--strchr
-こうしてみると、移植の手間のほとんどは標準関数不足を補う...
-それは相当に移植性が高いような気がします。
-166行書くだけで、自作のOSでES-BASICが動くようになって、...
** (5) サイズ比較と考察
|ファイル名|サイズ|説明|
|esbasic64.exe|RIGHT:67,072バイト(65.5KB)|ES-BASIC ver.0....
|esbasic32.exe|RIGHT:62,976バイト(61.5KB)|ES-BASIC ver.0....
|esbasic32s.exe|RIGHT:45,056バイト(44.0KB)|ES-BASIC ver.0...
|esb02b.hrb|RIGHT:38,584バイト(37.6KB)|ES-BASIC ver.0.2b ...
-ES-BASICの「はりぼてOS」版である esb02b.hrb は、なんとた...
-なぜ小さくなったのか。それは結局のところ、「はりぼてOS」...
-「はりぼてOS」が、ES-BASICに都合の良いAPIを提供している...
-そしてここに自作OSの面白さがあるかもしれないと思いました...
-そして別の視点で見ると、言語処理系を実現するために必要な...
-OSはどんなに優秀でも、アプリケーションが少ないと結局はあ...
** (6) ダウンロード
-(6-1)以下のディスクイメージをQEMUで起動すると、esb02b.hr...
qemu.exe -L . -m 32 -localtime -std-vga -fda esb02b_hrb.fd
--http://k.osask.jp/files/esb02b_hrb_fd.zip (144.5KB)
----
-(6-2)esb02b.hrbのソースコードは以下にあります。tolset_h...
--http://k.osask.jp/files/esb02b_hrb.zip (92.7KB)
//** (4) 自作だからできること
//-自作OSや自作言語だからこそ、できることって何でしょうか。
//-・・・どうせ何をどう作っても既存のOSや既存の言語にはか...
//-私はそんなことはまずできません。さらに私は巨大なプログ...
//-必要なものだけを最小の構成で作る、そんな当たり前ことを...
* こめんと欄
#comment
終了行:
* esb02b.hrb について
-(by [[K]], 2020.05.30)
** (1) esb02b.hrb とは?
-esb02b.hrbは、自作言語である ES-BASIC ver.0.2b を「30日...
--ES-BASIC ver.0.2b については、ここに詳しく書いてありま...
--つまり「自作OS上で自作言語を動かしてみよう」という、夢...
** (2) 「はりぼてOS」について
-ただし、純粋な「はりぼてOS」では ES-BASIC ver.0.2b 相当...
--[定番の改造] FPU命令を利用可能にする拡張
--[定番の改造] IPLの改良(これでサイズの大きいアプリが扱...
--[定番の改造] OSの無駄を少し減らす改造
--データ領域に書いたコードを実行可能にするAPIの追加
--Shift,Ctrl,Altの入力も取得できる拡張
--これらの改造についての詳細は http://hrb.osask.jp/wiki/?...
-これらの改造の結果、OS本体+デバイスドライバ+シェルであ...
--つまりは、なんだかんだ言ってもその程度のシンプルなOSだ...
-「はりぼてOS」は以下の写真のような感じのOSです( http://...
--http://hrb.osask.jp/fig0227.png
** (3) esb02b.hrb について
-「はりぼてOS」は残念ながら、ファイルへの書き込み機能を持...
--でも移植を楽にしたかったので、コンパイラ処理部分もすべ...
-しかしそれ以外の機能はほとんど問題なく使えます。もちろん...
----
-率直な感想として、自作OSの上で自作言語がサクサクと動いて...
-なんというか、まずOSが一人前になった感じがします。「この...
-同時に「この言語はこんな貧弱な環境でも問題なく動いてしま...
--私は以前、gccを(別の自作OSである)OSASK上で動くように...
--それと比べたら、今回の移植は非常に楽でした。「はりぼてO...
--理由としては、 ES-BAISC ver.0.2b が標準ライブラリすらわ...
--もし、Pythonを移植するとしたらどのくらいの手間がかかる...
-esb02b.hrb を起動すると、当然ですがメモリを消費します。...
--ちなみにOS込みで、32MBくらいあればメモリ不足を感じるこ...
--普段は「Windows はメモリ2GB(=2048MB)ではしんどいなあ...
-以下はesb02b.hrbを実際に起動してプログラムを実行させたと...
--(mandel.txtは[[esbasic02a]]の(4-2)に書いてある36行のプ...
--http://k.osask.jp/files/pic20200602a.png
-こちらも実行画面です。キューブ回転も問題なく動きます。
--http://k.osask.jp/files/pic20200605a.png
-[Q]なんでロードしているの?もしかしてesb02b.hrbではプロ...
--[A]いえいえ、もちろんそんなことはありません。普通に入力...
--しかし、「はりぼてOS」ではアプリの垣根を超えたコピー&...
--ということでテキストファイルにしておいて、ロードするこ...
--Windows版ではloadコマンドをほとんど使っていなかったので...
** (4) 移植の手間
-今回の移植はどのくらいの手間だったのかをここで報告します。
||改変行数||備考|
|esbasic.c|RIGHT:12行|メインモジュール|全部で3160行のうち...
|kcl03.c|RIGHT:5行|自作の汎用C言語ライブラリ||
|kcll00.c|RIGHT:0行|自作の言語開発支援ライブラリ||
|bla.h|RIGHT:4行|自作のグラフィックライブラリ||
|bla.c|RIGHT:44行|自作のグラフィックライブラリ|「はりぼて...
|bla2.h|RIGHT:0行|自作のグラフィックライブラリ||
|bla2.c|RIGHT:0行|自作のグラフィックライブラリ||
|chr.c|RIGHT:0行|ES-BASIC用のキャラクタデータ||
|hrbcons.c|RIGHT:101行|(新規作成)簡易コンソール|OSが標準...
|std.c|RIGHT:530行|(新規作成)標準関数(下記参照)|標準関数...
|合計|RIGHT:696行|||
-今回即席で作った標準関数:
--qsort, exit, strtoull, malloc
--time, clock
--vsnprintf, snprintf, fprintf, vfprintf, printf, putchar...
--fopen, fread, fwrite, fseek, feof, fgets, fclose
--strchr
-こうしてみると、移植の手間のほとんどは標準関数不足を補う...
-それは相当に移植性が高いような気がします。
-166行書くだけで、自作のOSでES-BASICが動くようになって、...
** (5) サイズ比較と考察
|ファイル名|サイズ|説明|
|esbasic64.exe|RIGHT:67,072バイト(65.5KB)|ES-BASIC ver.0....
|esbasic32.exe|RIGHT:62,976バイト(61.5KB)|ES-BASIC ver.0....
|esbasic32s.exe|RIGHT:45,056バイト(44.0KB)|ES-BASIC ver.0...
|esb02b.hrb|RIGHT:38,584バイト(37.6KB)|ES-BASIC ver.0.2b ...
-ES-BASICの「はりぼてOS」版である esb02b.hrb は、なんとた...
-なぜ小さくなったのか。それは結局のところ、「はりぼてOS」...
-「はりぼてOS」が、ES-BASICに都合の良いAPIを提供している...
-そしてここに自作OSの面白さがあるかもしれないと思いました...
-そして別の視点で見ると、言語処理系を実現するために必要な...
-OSはどんなに優秀でも、アプリケーションが少ないと結局はあ...
** (6) ダウンロード
-(6-1)以下のディスクイメージをQEMUで起動すると、esb02b.hr...
qemu.exe -L . -m 32 -localtime -std-vga -fda esb02b_hrb.fd
--http://k.osask.jp/files/esb02b_hrb_fd.zip (144.5KB)
----
-(6-2)esb02b.hrbのソースコードは以下にあります。tolset_h...
--http://k.osask.jp/files/esb02b_hrb.zip (92.7KB)
//** (4) 自作だからできること
//-自作OSや自作言語だからこそ、できることって何でしょうか。
//-・・・どうせ何をどう作っても既存のOSや既存の言語にはか...
//-私はそんなことはまずできません。さらに私は巨大なプログ...
//-必要なものだけを最小の構成で作る、そんな当たり前ことを...
* こめんと欄
#comment
ページ名: