演題 あるN88ーBASICプログラムのVB4への変換
発表者
(所属)
石川俊英 (光輪学院)
連絡先 〒542 大阪市中央区上汐2ー3ー14
TEL 06ー(764)ー0088
キーワード プログラム言語変換 
開発意図
適用分野
期待効果
特徴など
このファイル変換用プログラムは、N88ーBASICで書かれたプログ ラムをマイクロソフト社のVISUAL BASIC(v4)に変換する際 できるだけ少ない労力で変換できるように作成した。しかし、両方のプログ ラムの機能がかなり異なることから満足すべき結果になっていない。
環境 適応機種名 NEC PCー9801シリーズ と DOS/V   
OS 名 Windows95、MS−DOS(N88−Basic版)   
ソース言語 Visual Basic V4 and N88ーBasic   
周辺機器   
流通形態
右のいずれ
かに○をつけ
てください)
  • 化学ソフトウェア学会の
    無償利用ソフトとする
  • 独自に配布する
  • ソフトハウス、出版社等から市販
  • ソフトの頒布は行わない
  • その他
  • ○未定
具体的方法

1. はじめに

 古いN88ーBasic(N88_B)プログラムでも優れたものは残して置きたいとプログラマーなら感じているだろうと思う。先に、N88ーBをQuick Basicに変換するプログラムを未熟ながら発表してきたが「1」、Visual Basic(VB)上でこれを走らせるには、プログラムの基本的概念がかなり変わったため大幅なプログラムの変更を必要とした。しかし、例えばグラフィックスを利用しようとするとき、従来のN88_Bのプログラムに慣れている者には、戸惑いを感じさえした。短いプログラムなら最初から書き直したほうが速くできると思います。しかし、ここで取り上げた糸岐「2」の長いプログラムは、それ程楽にできるとは思われない。そこで完全な変換は無理としても少しでも作業が楽で早く完成するような変換プログラムを作れないものか検討してみた。このプログラム「2」はN88_Bの種々のコマンドが使用されているのでテストするのに丁度よいモデルではないかと思われた。今回は、新しい分野の通信、音楽関係のコマンド変換は省略した。

2.プログラムの概要

 大抵のN88_Bのプログラムは構造化されてないためGOTO文が多く、あちこちに飛ぶためかなり読みにくくなっている。糸岐のプログラム「2」でも同じであった。行き先にラベルを付けたら150以上になってしまった。また、長いプログラムのためCHAIN命令を使用しているところは、変換前に接続してこれを解消して別々のフォームにした。次に、グラフィック関係のSCREEN、VIEW命令等とDEF SEG、KEY等のVB4「3」にないものは、変換のときにコメント行化して変換に影響しないようにした。これらを変換プログラムで根本的に直すことはできない。初めに実施した点は、N88_Bでは、関数は全部大文字表記であるがVBでは、頭ないし途中で大文字の部分と小文字の部分があるように変換時に変えた。FOR文の後の変数も小文字表記にした。糸岐は,LOCATE X,Y:PRINT ”メッセージ ”を多用しているが、VB4では使えないので対応方法を表の中に纏めた。また、機能の異なる点も示した。若干の例を表1に示したが簡単化している。

      表 1: N88_BとVB4の比較表           
N88_B VB4
WINDOW ScaleHeigth=h : ScaleWidth=w
VIEW ScaleTop=t : ScaleLeft=l
PRINT USING "##.##";A Print Format$(a,"##.##")
LINE(X1,Y1)-(X2,Y2),C,B x=ScaleWidth/5:y=ScaleHeight/5
c=RGB(r,g,b) or c=VBColor(cc)
Line(x,y)-Step(x,y),c,B
LINE-STEP(X,Y),C Line-Step(x,y),c
CIRCLE(X,Y),R,C Circle(w/2,h/2),r,c
MKI$/MKS$/MKD$ 対応してない
DATA 対応してない(OLEクライアント)

テキスト画面にメッセージを表示するためのLOCATE X,Y:PRINT”文字”は、VB4では、フォームの中に座標位置を指定して、Msg=”文字”で表示するようになっている。これもトィップ単位で変換するようにした。エラー処理で、ON ERROR GOTO文およびERLの行き先はラベル番号にしている。幸い、ERR=ナンバーがここではVB4と同じだったので特に変更していない。DEF FN文は、VB4ではFUNCTIONオブジェクトとして分けるようにした。変数のデータ型は、特に定義しなかったのでバリアント型になっている。

3.おわりに

 ここで作成した変換プログラムは、まだ初歩的なものである。これもN88_Bのプログラムの自由度が高くサブルーチンを取り上げてもプログラマーが自由気ままに書くためコンピュターに判断させるプログラムを書くのが難しい。VB4の中の便利なイベントとかプロパティを使うにもかなりの部分は、後でマニュアルにより入力することになり、これにかなり時間を費やすことからあまり自慢できる変換結果ではなかった。今後も、他のプログラムでテストして手直しを続けて改訂していく必要がある。

4.文 献

1)石川俊英、達 吉郎 : 化学とソフトウェア 16,139(1994).
2)糸岐宣昭 : 関数グラフィックス、森北出版(1988).
3)P.Norton et al(大江周二 訳): Visual Basic 4
  Programming、カットシステム(1996).