C言語のTinyBASICの憂鬱

パロアルト版TinyBASICのアセンブリ言語のソースを忠実にC言語へ翻訳することは明らかに不可能だ。大きなところからいうと、サイズを2Kバイトにおさめるためあちこちにトリッキーな記述があって、C言語だと無理なことがある。どうせ2Kバイトにはおさまりっこないから、サイズは成り行きにまかせ、誰が読んでもわかるような書きかたをしようと思う。細かいことをいうと、文法上の誤りに遭遇したときどこからでも先頭へジャンプするところ、戻り値をレジスタBとDEとHLで3つも返すところなども、C言語では書きようがない。戻り値は構造体を使えばどうにかなるかもしれないが、いずれはSmall Cでコンパイルすることが前提だから、あまり高級なことはやれない。

だから、さしあたり機能を再現することに目標を置いて処理の流れまでは再現しない。せいぜい、C言語の関数の名前をアセンブリ言語のラベルと同じにするくらいにとどめておく。ただし、C言語だと簡単にできてしまうこともあるので、その場合、わざわざ機能を落とすことはしない。

という話になると、ひょっとしたらパロアルト版TinyBASICを参考にして独自のBASICを書くほうが早いかもしれないが、そうしない利点がひとつある。マニュアルを作らなくてすむことだ。出版の世界では「7並べの完璧なマニュアルを作れるやつはいない」といわれている。独自のBASICを作っていい加減なマニュアルを作るより、パロアルト版TinyBASICと同じです、あるいは、ここが違いますというように説明すればラクである。パロアルト版TinyBASICのマニュアルも完璧ではないはずだが、それはパロアルト版TinyBASICの問題であり、知ったこっちゃないのである。

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

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中