2020年2月16日日曜日

道草は犬も食わぬ の?

pythonはその使用の仕方を考えると往年のBASICに似ていると思った

で、類似性として対話処理と簡易な文法と気軽に使えるグラフィクスについて調べようとしていた
特にpythonと引き合いに出すのはどのBASICが良いかを考えてみた
調べているうちに訳が分からくなってちょっとプログラムを動かしてみようと思ってmandelbrot集合を描画させてみた

まずはtiny basic for windowsで下図
描画は23秒台でこの手のソフトとしてはまあまあ早い方なのかな
このBASICや十進BASICは教育関係の方が開発されたものでHELPや関連資料が多くてプログラムを組むには良いけどN-BASICなど往年のBASICとの文法の共通性は薄い、とはいえ行番号を普通に受け付け動いてくれる 描写される画面が1つではなくてテキストが出力される画面とグラフィックが描画される画面が別なのは往年のBASICしか知らない人(そんな人がどれぐらいいるのかは不明だけど)が使うとちょっと面食らうかもね 時間計測はその日の0時を出発点とする経過時間を返すtimer関数があって、いい感じです

次は十進BASIC
描画は今回調べた中では最速
本来はJISのFULL BASICを教えるための環境
したがって旧来のN-BASICなどを動かすにはメニューで
オプション→文法→MicrosoftBASIC互換 とする必要がある
TIME関数というtbwのtimer関数があって計測は楽だった
ただJIS FullBASICは自分の中ではいつ使うのかわからない
多分上記のモード以外では絶対に触らないと思う
(きょう日、代入文にLETなんてつけるやついますか?)

次はMBASIC86
速度は決して速くない(描画時間28分58秒[=1738秒])
N86-BASICとの互換性は高そう(そのせいで時間計測はTIME$を表示して手計算)
多分N86BASICの資産のあるひとはありがたいはず
(そんなに突っ込んで調べてません)
編集が専用画面でできるのはちょっとありがたい 使い分けで混乱

99BASICってのもあります
グラフィック周りでちょっと独自の命令を使うと画面のように11秒で描画は完了する これはかなり早い
width文で128,40とか指定できて文字の情報の多い画面を作れるのは場合によっては嬉しいはず
たしかファイル周りのn88basicとの互換性が低い傾向

最後は日本語nbasic for windows95
もしかすると互換性は高いのかもしれない
(もちろん試してません)
しかしこの程度の画面描画で63分16秒(=3796秒)はあまりにも時間が掛かりすぎ
これではちょっと時間のかかる処理のデバッグをやる気がなくなってしまう
それとエラーメッセージの信用性がちょっと低くて「えーそんなエラーじゃないよね」って言いたくなる時も・・
このBASICもwidth 128,45とかできるのはいい感じ

処理系名所要時間(Sec)RATIO
十進BASIC4.301.0
99BASIC11.002.6
TinyBASIC for Win23.485.5
MBASIC861738.00404.2
N88互換BASIC3796.00882.8

まあ今時、行番号付きのBASICしかわからない人が(多分自分と同様に相当高齢だと推察もできるので今更)新しい言語を学ぶかどうか、またBASIC以来、ほかの言語に触れる機会が当然あったにもかかわらずそれをしてこなかったわけなのでこんな考察が必要かどうかも怪しく思える
でもせっかく時間を使いまた開発の環境を改めて触ってみた結果を一応記すと現状で1つを選ぶならN88互換BASICなのかなと思う。
(時間が掛かる考察は今後レガシなBASICではやりません!!!!)
(200301)
直前の部分でN88互換BASICが使えるようなことを書いたがちょっとしたコンソール風の画面を作ろうとしてlocate ,,1でカーソルがオンに出来ないことを知りました。せめて互換を謳うのなら・・
止めましょう そんな期待はしてはいけなかったのですね。

速度につき同じようなことを(191229)のエントリーでも書いてます。
やはり最近使っている言語たちに比べたら遅いですね。
上記のエントリーの結果表と比べてもMBASIC86でエミュレータanex86上のn88basicよりも3.5倍くらい時間がかかってます。
N88互換BASICに至っては・・・
多分早く動かすことが目的じゃないんでしょうね。はい
あーあ、本筋じゃないことに1日を費やしてしまいました
本当に寄り道好きで困ったものです

(200218)
N88互換BASICと99BASICのヘルプが .HLP形式で参照できなかったのだがこちらのWin8.1用のWinHLP32.EXE(64bit用)のインストールバッチを利用させてもらったら見えるようになった。
公平に機能を検証するにはやはり特定の命令の利用が可能かどうかわかるって大事だよね。



0 件のコメント:

dosvaxj3が更新されていた。

 最近、エミュレータ系をあまり触っていなかったのだけど久しぶりに見てみたらタイトルのようにdosvaxj3が更新されていた。 on emulatorでセルフにcなどのソースを書いて実行するのに母艦側の特定のフォルダをドライブとしてマウント出来たり普通に母艦のimeで漢字が入力でき...