RAMの使いかたを整理

INPUTで不具合が発生。終了後の中間コードポインタが妙なところを指している。プログラムの流れを追ってみるとINPUTで入力した値を調べる構文解析が中間コードポインタをあらぬところへ持っていく。対策としてINPUTの入力に専用の数値入力関数を作り、構文解析をやめた。その結果、式を入力できるという便利な機能がなくなった。一方、構文解析が使っていた中間コードバッファが空き、INPUTをコマンドとして動かせることになった。また、数値入力関数で数字と符号だけを受け付けて誤操作を防ぐことにした。これだけのメリットがあれば、式を入力できないデメリットを補って余りある。

このバグ取りの過程でメモリの使いかたを時間軸で検証した。その結果、コマンドラインのバッファがほとんどの時間、使われていないことがわかった。だから前述の数値入力関数やこれとは逆に数値を数字へ変換する関数で共用することにした。時間軸の検証を徹底すれば、もう少し詰められるメモリがあるかもしれない。何もかもうまくいったとしてわずか数10バイトの話だが、そういうところことをおろそかにしたらTinyBASICの存在意義がない。それに、時間軸の検証は中間コードポインタをグローバルにしてポータビリティを高めるためにも避けて通れない作業である。

広告
カテゴリー: TinyBASIC パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中