| トゥルーベーシック | |
|---|---|
| デザイン : | ジョン・G・ケメニートーマス・E・カーツ |
| 開発者 | True BASIC, Inc. |
| 初 登場 | 1983年 (1983年) |
| Webサイト | www.truebasic.com |
| 影響を受けた | |
| ベーシック | |
True BASICは、オリジナルのBASICであるDartmouth BASICから派生したBASICプログラミング言語の派生版です。どちらも大学教授のJohn G. KemenyとThomas E. Kurtzによって作成されました。[ 1 ]
真のBASICの歴史は、ダートマスBASICの派生言語であるStructured BASIC、略してSBASICに遡ります。これは1975年か1976年にリリースされましたが、キャンパスをサポートしていたダートマス・タイムシェアリング・システム(DTSS)のBASICのメインラインバージョンとしてインストールされることはありませんでした。その後まもなく、ケメニーは、1960年代後半から1970年代前半にかけて発展した言語の多くの小さなバリエーションを統合しようと、ANSI標準BASICを作成する取り組みに関わりました。この取り組みは当初、ダートマスBASICの初期バージョンに似たMinimal BASICと呼ばれるシステムに焦点を当てていましたが、後の作業は、基本的にさまざまな拡張機能を備えたSBASICであるFull BASICを目指しました。
1980年代初頭までに、数千万台の家庭用コンピュータがMicrosoft BASICの何らかの派生版を実行しており、これは事実上の標準となっていた。ANSIの取り組みは、Microsoftが支配する世界ではこれらのバージョンが市場に影響を与えることはないことが明らかになったため、最終的には無意味になった。両バージョンは最終的に承認されたものの、ほとんど普及せず、後に標準は撤回された。しかし、ケメニーとカーツは、SBASICとANSI標準BASICの取り組みから得られた概念を導入する努力を続けることを決めた。これがTrue BASICとなった。
当初はDartmouth BASIC 7をベースに開発されたTrue BASICは、1985年に発表されました。True BASICコンパイラには、 MS-DOS、Microsoft Windows、Classic Mac OS用のバージョンがあります。かつては、TRS-80 Color Computer、Amiga、Atari STコンピュータ用のバージョンや、UNIXコマンドラインコンパイラも提供されていました。
数年間の活動休止を経て、2026年2月をもってTrueBASICのウェブサイトは正式に閉鎖されました。
これは構造化プログラミング言語の実装であるため、行番号やステートメントは不要ですGOTOが、これらを使用することは可能です。
真のBASICは、行列演算のためのステートメントを提供します。これは、ダートマスBASICには初期の頃から存在していた機能ですが、ほとんどすべてのマイクロコンピュータ版BASICインタープリタでは削除されていました。また、グローバル変数とローカル変数を実装しているため、再帰関数やサブルーチンを記述することが可能です。
設計者たちは、True BASICのソースコードがどのバージョンのコンパイラでも同様に動作するように、ハードウェアに依存しない言語を目指しました。そして、彼らは概ねこの目標を達成しました。ユーザーにとっての欠点は、マシンの一部の機能に直接アクセスできないことでしたが、これはアセンブリ言語で特別に記述された呼び出し可能な関数やサブルーチンによって解決できました。
True BASICの新しいバージョンでは、古い関数の一部が使用できなくなります。最近のコードの例は次のようになります。
RANDOMIZE SET WINDOW 0 , 20 , 0 , 20 SET COLOR 5 ! True Basicには0~15色あるため、ペンとテキストの色を5に設定します。PRINT "Welcome To ..." !ユーザーの画面に"Welcome To ..."と表示します。DO !ループを開始します。LET x = rnd * 20 !値'x' を '0' から '20' の間の乱数にします。 LET y = rnd * 20 !値'y' を '0' から '20' の間の乱数にします。Pause .1 ! 1/10秒待ちます。PLOT TEXT , at x , y : " Fabulous Wikipedia!" !座標 'x' と 'y' に 'Fabulous Wikipedia!" と表示します。 LOOP !ループを終了します。 END !プログラムを終了します。このシンプルなプログラムは、画面の左上隅に「Welcome To ...」というテキストを表示し、その後、ランダムな座標に「Fabulous Wikipedia!」を表示し続ける無限ループに入ります。
シンプルなアニメーションの例としては、次のようなものがあります。
!車を描画しますSET WINDOW 0 、20 、0 、20 SET COLOR 5 BOX AREA 2 、6 、2 、3 BOX AREA 9 、13 、2 、3 BOX AREA 16 、20 、2 、3 SET COLOR 249 PLOT LINES : 0 、5 ; 20 、5 FLOOD 10 、1 BOX KEEP 0 、20 、0 、5 IN road$ BOX CIRCLE 2 、3 、5 、6 FLOOD 2.5 、5.5 BOX CIRCLE 5 、6 、5 、6 FLOOD 5.5 、5.5 SET COLOR 35 PLOT LINES : 2.5 、6 ; 5.5、6プロットライン: 5、6 ; 8、6 ; 8、8 ; 6、8 ; 6、10 ; 2、10 ; 2、8 ; 0、8 ; 0、6 ; 3、6フラッド4、8 S ET COLOR 248 BOX AREA 4、5、8、9 BOX KEEP 0、8、5、10 IN car $ !車を' car $ 'に保存FOR x = 1 TO 20 STEP 1 ! ' for 'ループを作成BOX SHOW road $AT 0 , 0 BOX SHOW car$ AT x , 5 PAUSE .1 CLEAR NEXT x ! 'for' ループを終了END !プログラムを終了ジェリー・パーネルは1985年に、「そもそもなぜTrue BASICが必要なのか?通常のBASICでできないことは何もできないし、できるとしても論理的または直感的な方法で対処されているわけではない」と問いかけた。彼はエラーが発生したときに出力がないことを批判し、「診断としてprint文を挿入する」ことで対話型デバッグが妨げられると指摘した。パーネルは、「私は生まれ変わったTrue BASIC信者になる機会を逃すつもりだ。MicrosoftとCBASICの異端者ぶりを楽しみたい」と結論付けた。[ 2 ]
一部のユーザーから、プログラムやエディタがCPU(またはコア)を100%使用してしまうという苦情が寄せられています。[ 3 ] [ 4 ] [ 5 ] [ 6 ]これは、エディタとユーザーのプログラムが、キーボードとマウスのイベントを常にポーリングするループを使用していることが原因のようです。この問題は少なくとも2010年末から知られていましたが、[ 3 ] 2014年初頭の時点でもまだ対応中です。[ 6 ]