タイニーベーシック

タイニーベーシック
デザイン:デニス・アリソン
初登場1975
実装言語IL(解釈言語)
ライセンスパブリックドメイン
方言
デンバー Tiny BASIC、拡張 6800 Tiny BASIC、MINOL、National Industrial Basic Language、パロアルト Tiny BASIC、6800 Tiny BASIC、TBI68K、Tiny BASIC Extended
影響を受けた
ダートマス BASIC、8008 BASIC
影響を受けた
Astro BASICAtari BASICレベル I BASIC

Tiny BASICは、 4KB以下のメモリに収まるBASICプログラミング言語方言群です。Tiny BASICは、ビル・ゲイツが150ドルで販売されていたAltair BASICの海賊版使用者に対する苦情を表明した公開書簡を受けて、デニス・アリソンとPeople's Computer Company(PCC)によって設計されました。Tiny BASICは、初期のマイクロコンピュータで動作するBASICの完全無料版となることを目指していました

Tiny BASICは実装ではなく仕様としてリリースされ、1975年9月号のPCCニュースレターに掲載されました。この記事では、プログラマーにTiny BASICを各自のマシンに実装し、その結果得られたアセンブラ言語実装を送付して、3回に分けて発行予定のニュースレターに掲載するよう呼びかけました。Palo Alto Tiny BASICの作者であるLi-Chen Wang氏は、この概念を表現するために「コピーレフト」という用語を考案しました。コミュニティからの反響は非常に大きく、ニュースレターはDr. Dobb's Journalとしてリニューアルされ、マイクロコンピュータソフトウェアに特化した初の定期刊行物となりました。Dr . Dobb'sは34年間印刷版として発行され、その後2014年にウェブサイトが静的アーカイブになるまでオンラインで発行されました。

1970年代半ばのマイクロコンピュータ黎明期、RAMが高価でメモリサイズが4~8KB程度だった時代には、その小ささとソースコードの無料提供は、これらの実装にとって非常に貴重なものでした。MicrosoftのAltair BASICの最小バージョンも4KBマシンで動作しましたが、BASICプログラムに使える空き領域はわずか790バイトでした。空き領域が多いことは、Tiny BASICの大きな利点でした。こうした厳しいサイズ制限を満たすため、Tiny BASIC方言は、他の方言によくある様々な機能を欠いていました。例えば、ほとんどのバージョンでは文字列変数浮動小数点演算が使えず、1文字の変数名しか使えませんでした。

Tiny BASIC 実装は、 Arduinoなどのマイクロコントローラのプログラミングに現在でも使用されています

歴史

アルタイルベーシック

Microsoft BASICの拡張8Kバージョンが収録された紙テープ

MITS Altair 8800のような初期のマイクロコンピュータは、一般的にフロントパネルのスイッチとLEDランプ以外には入出力(I/O)を内蔵していませんでした。実用的な作業を行うには、I/O拡張カードを追加し、何らかの端末を使用する必要がありました。当時、ビデオベースの端末は非常に高価で、コンピュータ本体よりもはるかに高価だったため、多くのユーザーはテレタイプModel 33のような機械式デバイスに目を向けました。Model 33は、当時のほとんどのテレタイプ機と同様に、テープパンチシステムを搭載していました。これは、オペレーターがメッセージを事前に録音し、ほとんどの人が直接入力するよりも速い「高速」で再生できるようにすることを目的としていました。初期のマイクロコンピュータにとって、これは便利なコンピュータデータ保存形式を提供し、ユーザーはプログラムを紙テープに書き込んで他のユーザーに配布することができました。[1]

ホームブリュー・コンピュータ・クラブは1975年3月に初会合を開き、会員たちはすぐに会合を利用してパンチテープに収録されたソフトウェアを交換し始めた。6月の会合で、Altair BASICのプレリリース版が収録されたテープが紛失した。テープはスティーブ・ドンピアに渡され、ドンピアは高速パンチを所有していたダン・ソコルに渡した。次の会合では、段ボール箱に入ったAltair BASICの紙テープが50本も現れた。[2]このことを知ったMITSの創設者エド・ロバーツは「盗まれたMITS BASICを使用している者は、自分が泥棒であることを明らかにすべきだ」と述べた。[3] ビル・ゲイツはこれをより正式なものにし、「愛好家への公開書簡」の中で、「愛好家の大多数が知っているように、皆さんのほとんどはソフトウェアを盗んでいる」と訴えた。[4]

タイニーベーシック

この苦情は不評だった。多くの反響があった中で、Homebrewのメンバーであり、People's Computer Company(PCC)の創設者でもあるボブ・アルブレヒトは、誰もが自由に使える独自のBASICを開発することが最善の策だと考えた。彼はスタンフォード大学のコンピュータサイエンス学部のデニス・アリソンに、2~3キロバイトのメモリに収まるBASICバージョンの仕様書の作成を依頼した。[a]移植を容易にするため、設計は中間言語(IL)、つまりインタープリタのためのインタープリタに基づいており、コード全体のごく一部しか移植する必要がなかった。

アリソンの初期設計は、1975年9月のPCCニュースレターに、Intel 8080版のILインタプリタとともに掲載されました。記事では、プログラマーに対し、設計を自分のコンピュータに実装し、アセンブリ言語版をPCCに送り返すよう呼びかけました。PCCは、ユーザーから提出されたバージョンに加え、バグ修正、新しいBASICで書かれたプログラム、そして提案や機能強化を掲載した特別ニュースレターを3回発行する計画を発表しました。このコンセプトは、1976年1月のACMプログラミング言語特別興味グループに再掲載されたことで、さらに注目を集めました。[5]提出は殺到しました。注目すべき初期バージョンの一つは、ディック・ウィップルとジョン・アーノルドによるTiny BASIC Extendedで、3KBのRAMで動作し、FOR...NXTループを追加し、単一の数値配列をサポートしていました。彼らはILの使用を避け、 8進数を使って機械語で直接記述しました[6]

3号発行予定の最初のニュースレターは、「Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte」と題され、1976年1月に発行されました。[6]冒頭には、ペンネーム「ドラゴン」のアルブレヒトからのメモがあり、3号では足りないと述べ、読者に継続を希望するかどうかを尋ねています。また、PCCのTiny BASICに関するオリジナル記事を再掲載し、Extended TBの完全なリストを掲載し、アリソンによるヒントやコツを含むいくつかの小さなBASICプログラムを掲載しました。[7]初号への反響は非常に大きく、第2号の序文では、新しいニュースレターを簡略化した「Dr. Dobb's Journal」というタイトルで継続発行することを既に決定したことが述べられました。その後数号にわたり、言語の追加バージョンが発行され、 Interface Ageなどの他の雑誌にも同様の論文が掲載されるようになりました

広める

等幅フォントには、「Tiny basic for Intel 8080、バージョン 2.0、作者: Li-Chen Wang、修正および Intel ニーモニックに翻訳: Roger Rausklob、1976 年 10 月 10 日。@ コピーレフト、無断複写・転載を禁じます。」と書かれています。
1976年に「Copyleft; All Wrongs Reserved」が使用された[8]

1976年半ばには、Intel 8080Motorola 6800MOS Technology 6502プロセッサ向けのTiny BASICインタプリタが利用可能になりました。これは、インターネットがファイルの容易な転送を可能にする以前の、フリーソフトウェアコミュニティによる共同開発の先駆けであり、フリーソフトウェア運動以前のフリーソフトウェアプロジェクトの一例でした。[9]コンピュータ愛好家たちは、紙テープやカセットを交換したり、印刷されたリストからファイルを再入力したりすることもありました。[10]

Dr. Dobb'sの編集者ジム・ウォーレンは、 1976年7月のACM プログラミング言語ニュースレターで、この成功したプロジェクトの動機と方法について書いています。彼は次のように書き始めました。「ビル・ゲイツがコンピュータ愛好家への怒りの手紙で提起したソフトウェアの『盗用』に関する問題には、実行可能な代替案があります。ソフトウェアが無料、あるいは複製するよりも購入する方が簡単なほど安価であれば、『盗用』されることはありません。」ビル・ゲイツへの手紙は、ソフトウェアを製品化するために書かれました。代替案は、経験豊富な専門家に全体の設計を依頼し、その後実装戦略の概要を策定するというものでした。知識豊富なアマチュアが、様々なコンピュータシステムにその設計を実装するのです。ウォーレンは、この戦略が継続され、拡大していくと予測しました。[10]

1976年5月号のDr. Dobbsには、Li-Chen Wangによる8080用Palo Alto Tiny BASICが掲載されています。掲載内容はタイトル、著者名、日付で始まりますが、「@ COPYLEFT ALL WRONGS RESERVED」という文言も付いています。[11] Homebrew Computer Clubの仲間であるRoger RauskolbがWangのプログラムを改変・改良し、1976年12月号のInterface Age誌に掲載されました[8] Rogerは自身の名前を付け加え、COPYLEFT表示を残しました。

説明

基本概念

Tiny BASICはメモリ使用量を可能な限り少なくするように設計されており、これは機能の少なさやインタープリタシステムの詳細さにも反映されています。初期のマイクロコンピュータには、タイムシェアリングシステムによく見られるBASICコンパイラ用のRAMと二次記憶装置がありませんでした。

当時のほとんどのBASICと同様に、Tiny Basicはユーザーがコマンドラインにステートメントを入力する対話型言語でした。当時のマイクロコンピュータはテレタイプ機や「ダム」端末と併用されることが多かったため、既存のテキストを直接編集することは不可能でした。そのため、エディタは代わりに、ユーザーが既存のテキストを編集するために戻る位置を示すために、バックスラッシュなどのテキスト取り出し文字を使用していました。

ユーザーがコマンドラインに文を入力すると、システムはその文が数字で始まっているかどうかを調べます。数字で始まっていない場合は、その行は直ちに解析され、処理されます。その結果、PRINTによる出力が生成される場合もあります。これは「ダイレクトモード」と呼ばれていました。

行の先頭に数字が入力された場合、その数字は「50」のような10進形式から8ビット値(この場合は16進数の$32)に変換されます。この数字は配列のような記憶領域へのインデックスとして使用され、行の残りの部分は入力された形式のまま保存されます。ユーザーがコマンドラインにLISTと入力すると、システムは配列をループ処理し、行番号を10進形式に戻し、行の残りのテキストを出力します。

プログラムがメモリ内に存在し、ユーザーがRUNコマンドを入力すると、システムは「間接モード」に移行します。このモードでは、ポインタがプログラムの最初の行(例えば10(16進数で$0A))を指すように設定されます。その後、その行の元のテキストがメモリから取得され、ユーザーが直接モードで入力したかのように実行されます。その後、ポインタは次の行に進み、処理が続行されます。

正式な文法

文法は、設計ノートで指定されたとおり、バッカスナウア記法で以下にリストされています。 [12]リスト内のアスタリスク (" *") は、その左側のオブジェクトの 0 個以上の繰り返しを表します (ただし、" " の定義における最初のアスタリスクは除きます。termアスタリスクは乗算演算子です)。括弧はオブジェクトをグループ化します。イプシロン (" ε") は空文字列を表します。コンピュータ言語の文法表記法では一般的ですが、縦棒 (" |") は選択肢を区別し、それらが別の行にリストされている場合も同様です。記号 " CR" はキャリッジリターン(通常はキーボードの Enter キーで生成) を表します。コンソールから BREAK を入力すると、プログラムの実行が中断されます。

  :: =数値ステートメントCR |ステートメントCRステートメント:: = PRINT式リストIFrelopTHENステートメントGOTOINPUT変数リストLET var =GOSUBRETURN CLEAR LIST RUN END式リスト:: = (文字列|) ( , (文字列|) ) *変数リスト:: = var ( , var ) *:: = ( +|-|ε )(( +|- )) *:: =因子(( * | / )因子) *因子:: = var |数値| () var :: = A | B | C ... | Y | Z数値:: =数字数字*数字:: = 0 | 1 | 2 | 3 | ... | 8 | 9 relop :: = < ( >| =) | > ( <| =) |                                                                                                                文字列 :: = " ( |!|#|$ ... -|.|/|数字|: ... @|A|B|C ... |X|Y|Z)* " 

文字列はデザインノートでは定義されていないことに注意してください。

この構文はシンプルであったが、一つの革新を加えた。GOTOGOSUBは行番号だけでなく式も使用できるようになり、ON ... GOTOよりも古い、当時HP Time-Shared BASICでサポートされていたGOTO/GOSUB ... OF ...のスイッチ文ではなく、割り当てGOTO [13] を使用できるようになっ。IF - THEN分岐番号だけでなく)を使用できる構文は、当時のDartmouth BASICではまだサポートされていなかったが、Digital [14]によって導入され、Microsoftによってコピーされていた。

仮想マシンでの実装

設計ノートでは仮想マシンが規定されており、Tiny BASICインタープリタ自体が仮想マシンインタープリタ上で実行される。アプリケーション仮想マシンを使用するという設計者の発想は、Val Schorre(META II、1964年)とGlennie(Syntax Machine)に遡る。仮想マシン方式の選択はメモリ空間と実装の労力を節約するものの、その上で実行されるBASICプログラムの実行速度はやや遅かった。[15]

仮想マシンを用いた方言には、Tiny BASIC Extended、トム・ピットマンのTiny BASIC [16]、NIBLなどがありました。Denver Tiny BASIC (DTB)やPalo Alto Tiny BASICといった他の方言は直接インタプリタでした。DTBのフレッド・グリーブのような一部のプログラマは、IL(インタープリタ言語)プログラムを、アセンブリ言語で実装するアルゴリズム擬似コードとして扱いました。Denver Tiny BASICは仮想マシンを使用しませんでしたが、ILプログラムに忠実に従っていました。

これは 120 行の IL プログラムからの代表的な抜粋です。

S1: TST S3 'GO' ;GOTO または GOSUB? TST S2 'TO' ;はい...TO、または...SUB CALL EXPR ;ラベルを取得DONE ;CR が次のXFERでない場合はエラー;セットアップしてジャンプS3: TST S8 'PRINT' ;印刷します。                

プログラムの一般的なパターンは、キーワードまたはキーワードの一部をテストし、その情報に基づいて動作することです。各テストは、行バッファ内の次の内容に関するアサーションです。アサーションが失敗すると、制御は次のラベルにジャンプします (通常は新しいキーワードまたはトークンを検索します)。ここで、システムはバッファ カーソルをスペースの上に進めてGOをテストし、見つからない場合は行S3にジャンプします。見つかった場合は、次の IL コマンドで実行が続行されます。この場合、システムは次にTOをテストし、失敗すると行S2にスキップします( SUBのテストで、これがGOSUBコマンドかどうかを確認します)。成功すると、制御が続行されます。この場合は、ラベルEXPRで始まる IL サブルーチンを呼び出し、式を解析します。Tiny BASIC では、 (計算された GO TO) は、大規模な BASIC 実装の ON-GOTO と同様に有効であり、代替手段となります。サブルーチンEXPR は、式の結果を演算スタック(この場合は行番号)にプッシュします。DONEは、式の後に他のテキストが続かないことを確認し、続く場合はエラーを返します。XFERスタックから数値をポップし、対応する行番号が存在する場合は、その行に実行を移します(GO します)。GOTO X*10+100GOTO 100

次の表は、最初のTiny BASICインタープリタが書かれた仮想マシンの32個のコマンドの部分的なリストを示しています。[17]

TST lbl文字列
文字列がBASIC行と一致する場合、カーソルを文字列の上に進めて次のIL命令を実行します。テストが失敗した場合は、ラベルlblのIL命令を実行します。
コールlbl
lblから始まるILサブルーチンを実行し、CALLに続くILアドレスを制御スタックに保存します。
終わり
先頭の空白を削除した後、カーソルが復帰位置に到達しない場合は構文エラーを報告します。
転送
AEスタックの先頭の値が範囲内にあるかどうかをテストします。範囲内にない場合はエラーを報告します。範囲内にある場合は、その行にカーソルを移動します。存在する場合はそこから解釈を開始します。存在しない場合はエラーを報告します。
ジャンプlbl
指定されたラベルでILの実行を継続する
RTN
制御スタックの先頭で指定されたIL位置に戻る
PRS
BASICテキストから閉じ引用符までの文字を出力します。
PRN
式スタックの先頭をポップして得られた数値を出力します
SPC
スペースを挿入してプリントヘッドを次のゾーンに移動します
NLINE
CRLF [18]をプリンタに出力する

トム・ピットマンはILについて次のように述べている。「TINY BASICインタープリタは、デニス・アリソンによって再帰下降パーサとして設計されました。この設計の簡潔さは、言語に糖衣構文が追加されたことでいくらか失われましたが、基本的な形式は残っています。ILは、その手続きの一般的な再帰的性質とTINY BASICトークンの簡潔さにより、TINY BASICの再帰下降パーサに特に適しています。IL言語はTINYの解釈に効果的に最適化されています。経験上、言語に新機能を追加することの難しさは、その機能の性質とは全く釣り合いが取れていません。通常、新機能をサポートするには、追加の機械語サブルーチンを追加する必要があります。多くの場合、難しさは利点を上回ります。」[19]

設計からの逸脱

ピットマンは、Homebrew Computer Club向けにTiny BASICを定義し、次のように記している。「Tiny BASICはダートマスBASICの適切なサブセットであり、LET、PRINT、INPUT、IF、GOTO、GOSUB、RETURN、END、CLEAR、LIST、RUNというステートメントのみで構成されています。演算は16ビット整数で、演算子 + - * / とネストされた括弧のみを使用します。変数名はA、B、…Zの26個の単一文字のみで、関数はありません。文字列や配列はありません…Tiny BASICは256未満の行番号を指定します。」[20]そして、彼は自身の実装について次のように説明している。「この言語はRND、USR、PEEK、POKEといった関数を含むように拡張され、ユーザーはBASICプログラムから6800のすべてのシステムコンポーネントにアクセスできるようになりました。」

多くの実装者は、 HP Time-Shared BASICDEC BASIC-PLUSでの経験を設計に活かし、Tiny BASIC の正式な言語仕様を緩和しました。1977年までに公​​開された7つの主要な実装は次のとおりです。

  • いずれも、通常は何らかの乱数関数を追加しましたRND()。仕様には含まれていませんでしたが、Tiny BASICの設計ノートに先立つニュースレター記事では、この機能のみを要求していました。
  • 有効なLET はすべてオプションであり、代入ステートメント内のほとんどの let 式には関係演算子が含まれています。
  • 6800TB を除くすべての TB では、行内のステートメント区切り文字がサポートされていましたが、通常は:TBX が使用され$、PATB が使用されていました;
  • IF文では、MINOLを除くすべての実装で、式に関係演算子(例:有効)を含める必要がなくなりました。実装によっては、 THEN句を完全に削除するか、オプションにするか、暗黙のGOTO句のみをサポートするかのいずれかでした。ELSE句をサポートする実装はありませんでしIF X THEN LET Y=X
  • 多くの人がPRINTを変更して印刷ゾーンをサポートし、次のゾーンに移動してカーソルを進ませないようにしています。,;
  • 6800TB と DTB を除くすべてにNEWが追加されました。
  • 6800TB と MINOL を除くすべてに、メモリ サイズを返す関数が追加されました。TBX にはSZE、DTB と PATB にはSIZE、L1B にはMEM、NIBL にはTOPがありました。
  • 4 つの実装では、PATB および L1B の単一の次元化されていない配列、またはTBX および DTB のDIM拡張可能配列のいずれであっても、配列が追加されました。
  • 4 つの実装でREM ark ステートメントが追加されました。
  • 4 つの実装でFORループが追加されました。PATB、NIBL、L1B ではFOR-TO-STEP/NEXTが提供されましたが、TBX ではSTEPがサポートされず、ループを終了するためにキーワードNXTが使用されました。
  • Allison が第 2 号で BASIC の問題について嘆いているにもかかわらず、DO/UNTILを使用した構造化プログラミングに賛成したのは NIBL だけでした。

トークン化の代替として、RAMを節約するために、TBX [21]、DTB [22] 、 MINOL [23]キーワードを切り捨てました。PRINTPRINPUTINRETURNRETです。従来の完全なキーワードは受け入れられませんでした。対照的に、PATBでは従来のキーワードが受け入れられましたが、任意のキーワードを末尾にピリオドを付けて最小限の一意の文字列に短縮することもできました。たとえば、PRINTはと入力できますが、PR.やその他のバリエーションも機能しました。このシステムは、PATBを使用したTRS-80レベルI BASICで保持され、後にAtari BASICやさまざまなSharp Pocket ComputersのBASICにも見られました[24]P.

方言

Tiny BASICの最も有名な方言は、オリジナルのDesign Note、Tiny BASIC Extended、Palo Alto Tiny BASIC、そして6800 Tiny BASICです。しかし、Tiny BASICには他にも多くのバージョンが存在しました。

主要な方言の一覧

Tiny BASICは、People's Computer Companyのニュースレター(後にDr. Dobb's Journalとなり、長寿コンピュータ雑誌と なった)で初めて出版されました。この雑誌には約10バージョンが掲載されました。

Tiny BASIC の代表的な方言 (Dr. Dobb's Journal より)
公開日問題方言著者プロセッササイズ
1975年12月1 [25]デザインノートデニス・アリソン該当なし該当なし
1976年2月2 [21]タイニーベーシック拡張版(TBX)ディック・ウィップルとジョン・アーノルド80802.9K
1976年3月3 [22]デンバータイニーベーシック(DTB)フレッド・グリーブ80802.75K
1976年3月3 [26]6800 タイニーベーシック (6800TB)トム・ピットマン68002K [27]
1976年4月4 [23]ミノルエリック・T・ミューラー80801.75K
1976年5月5 [28]パロアルト タイニーベーシック (PATB)ワン・リーチェン80801.77K
1976年11月10 [29]国立産業基本言語(NIBL)マーク・アレクサンダー&スティーブ・レイニンガーSC/MP4K
1980年10月49 [30]強化された6800 Tiny BASICロバート・ハドソン6800該当なし
1985年2月100 [31]TBI68Kゴードン・ブランドリー68000該当なし
2006年1月351 [32]Tiny BASICの復活トム・ピットマン該当なし(C該当なし

TBXはTexas Tiny BASICとも呼ばれていました。[33]

SCELBAL [34]と6800 Tiny BASICはどちらも雑誌で発表されましたが、ソースコードは公開されませんでした。

パロアルト タイニーベーシック

パロアルト タイニーベーシック
開発者ワン・リー・チェン
初登場1976
ライセンスパブリックドメイン
方言
3Kコントロールベーシック
影響を受けた
Tiny BASIC 設計ノート、Tiny BASIC 拡張版
影響を受けた
アストロBASICレベルIBASICシャープPC-1211BASIC

Tiny BASICの多くのバージョンの中で最も人気のあるものの1つは、Li-Chen WangによるPalo Alto Tiny BASIC、または略してPATBでした。PATBは1976年5月号のDr. Dobbsに初めて登場し、非標準のニーモニックを使用したカスタムアセンブリ言語で書かれていました。これにより、8080の従来のアセンブラで動作する移植がさらに進みました。[24]インタプリタの最初のバージョンは1.77キロバイトのメモリを使用し、ユーザーの入出力にはテレタイプマシン(TTY)の使用を想定していました。元の記事の正誤表がDr. Dobb'sの6/7月号(第1巻、第6号)に掲載されました。この記事には、 Processor TechnologyのVDMビデオディスプレイのコードを例として使用して、追加のI/Oデバイスを追加する方法も含まれていました。

ワン氏はコピーレフトという言葉を最初に使用した人物の一人です。パロアルト版Tiny BASICの配布通知には、「@COPYLEFT ALL WRONGS RESERVED」と記されていました。[35] Tiny BASICは正式なコピーレフト配布条件の下で配布されたわけではなく、ソースコードが共有され、改変されるという文脈で提供されました。実際、ワン氏は独自のインタープリターを開発する前に、Tiny BASIC Extendedの編集に貢献していました。[21]彼は、Roger Rauskolb氏がInterface Age誌に掲載したPATB版のように、他の人々に自身のソースコードを改変し、その改変版を公開することを奨励しました[8]また、 PCCのReference Book of Personal and Home Computing誌にも第3版を掲載しました[36]

PATBにおける最も注目すべき変更点の一つは、FOR...NEXTループの追加である。オリジナルのTBでは、ループはとを用いてのみ実装可能だったIF。Microsoft GOTOBASICと同様にループの上限と下限はループ開始時に設定され、ループ実行中は変更されなかった。そのため、上限と下限のいずれかが変数式に基づいている場合、変数を変更しても上限と下限は変更されなかった。MSSTEPと同様に、修飾子はオプションであった。[24]

もう一つの重要な変更点は、1行に複数の文を記述できるようになったことです。理由は説明されていませんが、PATBでは;文の区切りとして、既に一般的だったコロンではなく、セミコロンを使用しました:

その他の変更点としては、に加えて@変数名 を持つ単一の数値配列の追加、および比較における不等号判定に ではなくを使用することが挙げられます[24] [b]STOPEND#<>

PATBはエラーメッセージに数字ではなく単語を使用しました。必要なメモリ量を削減するため、メッセージは3つだけであり、それぞれ単一の単語で構成されていました。システムはWHAT?、構文エラー、HOW?存在しない行へのGOTOや数値オーバーフローなどの実行時エラー、そしてSORRYメモリ不足の問題に対して、 で応答しました。[24]

王氏はまた、Tiny BASICでSTARTREKプログラムを書き、それが1976年7月のPeople's Computer Company Newsletterに掲載された[37] [38]

彼は後にこの言語をCromemcoの3K Control Basicに採用し、文字と数字の形式の変数名(例:A0からZ9)、論理関数(AND()、、)、機械語ルーチンを実行するコマンド、より多くの-formatting オプションなど(および代わりにI/Oポート関数)を追加しました。OR()[ 39]XOR()CALLPRINTGET()PUT()PEEKPOKE

Palo Alto Tiny BASICは、 Level I BASIC (1977年)、 Sharp PC-1211 ポケットコンピュータ用BASIC (1980年)、Astro BASIC (1982年、 Jamie Fenton作)など、多くの他の実装にも採用されました[40]

ミノル

高校3年生が書いたMINOLは、デザインノートを完全にサポートしていない唯一の実装でした。演算子の優先順位がなく、関係演算子は3つ(<、=、#)しかなく、GOSUBとが省略されていましたRETURN。MINOLは符号なし8ビット精度(他のすべての実装が符​​号付き16ビット精度をサポートしているのに対し)と0から254までの行番号のみをサポートしていました。

文字列以外ではスペースは許可されませんでした。式がそのアドレスに文字列をロードする前に!乱数を返します。その後、オペレーティングシステムに戻ります。メモリは、上位バイトと下位バイトの2次元配列(例:"(0,0)"から"(255,255)")のようにアドレス指定可能でした。機械語サブルーチンを実行します。[23]$OSCALL

その他の方言

他のさまざまな出版物にも多くの方言が登場しました。

1977 年 5 月号には、MICRO-BASIC を収録したフロッピー ROM が掲載されました。

PCCのTiny BASICへの呼びかけに触発され、ロバート・ウイタウィックはSWTPC 6800システム向けにMICRO BASIC 1.3を開発し、1976年6月号のSWTPCニュースレターに掲載した。ウイタウィックはリーガルタブレットに手書きでこの言語を書き記していた。後に彼は言語を4Kに拡張し、浮動小数点数のサポートを追加した。この実装は、 9桁​​の精度で2進化10進数(BCD)を使用し、最大10の99乗までの範囲を扱えるという点で、BASICインタープリタとしては他に類を見ないものであり、「フロッピーROM」誌の付録として無料で配布された。8K版では文字列変数と三角関数が追加され、4K版と8K版の両方がSWTPCから販売された。1978年1月、ウイタウィックはソースコードの権利をモトローラに売却した。[41] [42]

1976 年に Thomas F. Waitman が Hewlett-Packard HP-2640 および HP-2645 端末 (Intel 8008 および 8080 プロセッサを使用) 用の Tiny BASIC を書き、それがHewlett-Packard Journalに掲載されました。

1976年12月号の『インターフェース・エイジ』誌に掲載されたのは、ローレンス・リバモア研究所(LLL )のBASICである。その最初の草案は、スティーブ・レイニンガーがナショナル・セミコンダクター社を離れ、タンディ社に移る前に、アリソンの仕様に基づいて開発された。最終的なインタプリタは、アイダホ大学のジョン・ディケンソン、ジェリー・バーバー、ジョン・ティーターによって、LLLとの契約に基づき開発された。5Kを採用したこのインタプリタには、デビッド・ミード、ハル・ブランド、フランク・オルケンが開発した浮動小数点パッケージが含まれていた。このプログラムは、米国エネルギー研究開発局(ERDA)の後援を受けてシステムを開発したLLLによってパブリックドメインとなった。[43]

4Kの基本

Altair BASIC、4K BASICは4KBのRAMを搭載したマシンで実行でき、プログラムコード用に約790バイトしか空きがありませんでした。[44] [45] Tiny BASICイニシアチブは、Altair 4K BASICの150ドルの料金に反応して始まりました。

1975年、スティーブ・ウォズニアックは新しく結成されたホームブリュー・コンピュータ・クラブに参加しました。このクラブには、リー・チェン・ワン(Palo Alto Tiny BASIC)とトム・ピットマン(6800 Tiny BASIC)がメンバーとして参加していました。ウォズニアックは、自分のマシンには専用のBASIC言語が必要であり、できればMOS Technology 6502プロセッサに対応した最初のBASIC言語となるだろうと結論づけました。この言語は4KBのRAMを必要とするため、設計の最小メモリ容量をそれとしました。[46] Integer BASICは1976年にコンパクト・カセットで初公開されました。

1977年、ラジオシャック(当時)は最初のコンピュータであるTRS-80をリリースした。これは4KBのROMにレベルI BASICを搭載したZ80システムだった。タンディの従業員であるスティーブ・レイニンガーは、ナショナルセミコンダクターに勤務していた時に、SC/MP用のNIBL(National Industrial Basic Language)インタープリタの初版を書いた[29]そのソースコードを持ち出すことができなかった彼は、リー・チェン・ワンのパロアルト・タイニーBASICをTRS-80モデルIの最初のプロトタイプに採用した。彼はインタープリタを大幅に改訂し、浮動小数点サポート、シンプルな白黒グラフィック、READ/DATA/RESTOREステートメントを追加した。[47]

1979年にジョン・グラントによって開発されたシンクレア4K BASICは、言語定義として1978年のアメリカ規格協会(ANSI)の最小BASIC標準を使用していましたが、それ自体は整数演算のみの不完全な4KB実装でした。[48]

マイクロコントローラ方言

Tiny BASIC 実装は、プロセッサ制御やArduinoなどのマイクロコントローラ向けに適応されています。

  • スティーブン・A・ネスは1977年、マーク・ウィリアムズ社向けに4K整数実装のXYBASICを開発しました。この言語はプロセス制御アプリケーションでよく使用されました。[49]
  • Arduino BASIC – Gordon Brandly の 68000 Tiny BASIC を改変し、Mike Field によって C に移植されました。
  • TinyBasic Plus – Scott LawrenceによるArduino BASICからの改変。[50]
  • ハーフバイトタイニーベーシック – Arduino BASICを改造したもの。[51]
  • micro:bit上のTiny Basic – Palo Alto Tiny BASICを改造したもの。[52]

その後の実装

2002年に、エマニュエル・シャイユ、パスカル・マヌリー、ブルーノ・パガーノは、Objective Camlを使ったアプリケーション開発において、 Objective Camlアプリケーションの例として、小さなBASIC( GOSUB / RETURNがない)を公開した[53]

2013年にアレックス・ヤンはPythonでの実装を公開した[54]

2019年にセルゲイ・クズネツォフがRuby版を出版した。[55]

また2019年には、オスカー・トレド・グティエレスがbootBASICを公開しました。これは8086/8088マシンのブートセクタの512バイトを占有し、これまでで最も小さなBASIC実装となっている。これを実現するために、この言語は関係演算子を削除し( IF文は非ゼロ値で動作する)、コード行を19文字以下に制限し、バックスペースが押されても表示を更新しない。[56]さらに、GOSUBとRETURNは存在しないが、RND関数(引数なしで0から255までの値を返す)が含まれている。[57]この言語はプログラム行を格納するために配列を使用するため、これには20,000バイトかかります。[58]

2023年、ゴードン・ヘンダーソンは6502アセンブラによるTiny Basic実装を公開しました。これはNIBLの影響を受けており、最短で3.5 KBのROMが必要で、少なくともデータとプログラムを格納するための1KBのRAM。DO/UNTIL、FOR/NEXT 単純な文字列、メモリPEEK/POKE(バイトまたは16ビットワード)、GOSUB/RETURN、CALL、RNDをサポートし、16進数の入出力機能も備えています。[59]

方言の比較

次の表は、Tiny BASIC 実装の言語機能を、それ以前の他の著名な BASIC と比較したものです。

BASIC実装の比較 - Tiny BASICとその他のBASIC

公開
方言プログラマープロセッサタイプ入力させて印刷後藤もし…ならばゴスブ戻る終わり走るリストクリア新しいレム睡眠次へ読み取り / データ / 復元BASICコマンドを追加カスタマイズ表現再配置する機能RNDメモリ機能行番号ステートメント区切り文字エラー精度算術変数配列文字列
1964年10月
DTSSダートマスBASIC
(バージョン2)[60]
(ダートマス大学の学生)GE-225コンパイルして実行該当なし [!]LET var = 式PRINT 式リスト { , / ; / }番号へ移動IF式 relop式 THEN 行番号GOSUB番号戻る終わり走るリスト—開始NEW [プログラム名の入力を求める]レム睡眠〜のために / 〜へ / ステップ / 次へ読み取り、データ停止優先順位、^< <= = >= > <>INT、SIN、COS、TAN、ATN、EXP、LOG、ABS、SQR、DEF FNラウンド数(0) 0..11から99999なし22の定義9桁±999,999,999; E 表記の 2 進数は -256 ~ +255 (E±76)。A~Z、A0~Z9DIM(1文字の名前、2次元); 省略された場合は0から10までとみなされます。配列全体で最大1500要素です。なし(バージョン4で追加)
1970年2月
DEC BASIC-8 [61]
(DECスタッフ)PDP-8コンパイルして実行入力変数リストLET var = 式PRINT 式リスト { , / ; / }番号へ移動IF式 relop式 [THEN/GO TO] 行番号GOSUB番号戻る終わり走るリスト (最初 (, 最後))NEW [プログラム名の入力を求める]レム睡眠〜のために / 〜へ / ステップ / 次へ読み取り、データ、復元停止、古い、保存、保存解除DELETE (first (, last))、BYE優先順位、^< <= = >= > <>INT、SGN、SIN、COS、TAN、ATN、EXP、LOG、ABS、SQR、DEF FNラウンド数(0) 0..11から2045なし23の定義?±134,217,727; 14E-38<N<1.7E38A~Z、AA~Z9DIM(1文字の名前、2次元)なし
1974年6月
UIUCベーシック[62]
アルフレッド・ウィーバー、マイケル・ティンダル、ロナルド・ダニエルソン8008通訳者INPUT <変数> {, <変数>}*LET var = 式PRINT <文字列> / <式> {, <文字列> / <式>}*番号へ移動IF式 THEN 行番号GOSUB番号戻る終わり走る文書化されていない文書化されていない文書化されていないレム睡眠〜のために / 〜へ / ステップ / 次へ防御FN、停止優先順位、^< <= = >= > # AND または NOTFNA..Z、SIN、COS、LOG、SQR、EXP、ATN0から999なし文書化されていない4バイトの仮数部と1バイトの指数部 [Datapoint 2200 浮動小数点演算パッケージ]文書化されていないA~Z、A0~Z9DIM(1文字の名前、3次元)なし
1975
アルタイル4Kベーシック[63]
ビル・ゲイツ、ポール・アレン、モンテ・ダビドフ8080通訳者INPUT ("文字列",) 変数リスト(LET) var = 式PRINT 式リスト { , / ; }GOTO番号IF式 THEN 行番号/文GOSUB番号戻る終わり走るリスト(開始)新しいレム睡眠〜のために / 〜へ / ステップ / 次へ読み取り、データ、復元停止優先順位< <= = >= > <>ABS、INT、SGN、SQR、TAB、USRRND(X) <0、Xをシードとして新規作成; =0、繰り返し; >0、次1から65535:12の定義40ビットオペランド浮動小数点??DIM(1次元)なし
1975年12月
デザインノート[64]
デニス・アリソン通訳者入力変数リストLET var = 式PRINT 式リストGOTO式IF式 relop式 THEN文GOSUB式戻る終わり走るリスト[NEWと同等]優先順位< <= = >= > <> ><なしなし1から255なし8つの定義16ビット± 32767A~Zなしなし
1976年2月
タイニーBASIC拡張版[65]
ディック・ウィップルとジョン・アーノルド8080通訳者(LET) var = 式;}移動IF式[THENなし]文GO SUBRET終わり走るLST (名 (, 姓))新しいFOR-NXT(ステップなし)DTA (配列LET)優先順位< <= = >= > <> ><印刷時のTB()スペースRN(ランダム0~10000)SZE1から65535$14の定義16ビット± 32767A~ZDIM、1次元または2次元、最大255x255なし
1976年3月
デンバータイニーベーシック[66]
フレッド・グリーブ8080通訳者(LET) var = 式;}後藤IF式[THENなし]文ゴスブRET終わり走るリスト(名 姓)[NEWと同等]テープ [保存]、ロードCLRS [CLS]優先順位< <= = >= > <> ><RND(0)、RND(1)サイズ2から255:20の定義16ビット± 32767A~Z、A1~A6~Z6DIM、1次元なし
1976年3月
6800 タイニーベーシック[66]
トム・ピットマン6800通訳者INPUT (式) 変数リストLET var = 式PRINT 式リスト { , / ; }GOTO式IF式 relop式 THEN文GOSUB式戻る終わり走るリスト(名 姓)[NEWと同等]レム睡眠優先順位< <= = >= > <> ><USR()RND()1から65535なし53の定義16ビット± 32767A~Zなしなし
1976年4月
ミノル[67]
エリック・T・ミューラー8080通訳者(LET) var = 式PR 式リスト {; }[ GOTO 0は直接ステートメントの先頭に戻ります]IF式 relop式;ステートメント終わり走るリストCLEAR [変数のみ]新しい文字列以外ではスペースは使用できません演算子の優先順位なし< = #$ [CHR$]! [RND]1から254:6 定義8ビット0から255A~Z(H,L) メモリ位置単一文字
1976年5月
パロアルトタイニーBASIC [68]
ワン・リーチェン8080通訳者INPUT [(式) 変数]*(LET) var = 式PRINT 式リストGOTO式IF式[THENなし]文GOSUB式戻る停止走るリスト(開始)新しいレム睡眠〜のために / 〜へ / ステップ / 次へ停止優先順位< <= = >= > #腹筋()RND()サイズ1から32767;3 定義16ビット± 32767A~Z@(1次元の配列1つ)なし
1976年11月
ニブル[69]
マーク・アレクサンダー&スティーブ・レイニンガーSC/MP通訳者入力 ($)var(LET) var = 式PR/PRINT 式リストGOTO式IF式(THEN)ステートメントGOSUB式戻る終わり走るリスト(開始)CLEAR [変数とスタック]新しいレム睡眠〜のために / 〜へ / ステップ / 次へ実行/終了メモリアドレス指定 (@ [PEEK/POKE], STAT, PAGE)優先順位< <= = >= > <>MOD()、AND、OR、NOT、RND(A,Z)トップ0から32767:13 4文字の定義16ビット± 32767A~Zメモリアドレス指定INPUT$, PRINT$, $exp=exp
1977年8月
レベルIベーシック[70]
スティーブ・レイニンガーZ80通訳者INPUT (#digit) [(expression) var]*(LET) var = 式PRINT (#桁) 式リストGOTO番号IF式THEN文GOSUB番号戻る終わり実行(スタート)リスト(開始)新しいレム睡眠〜のために / 〜へ / ステップ / 次へ読み取り、データ、復元STOP、CONT、ON-GOTO/GOSUBロード、保存、CLS、セット、リセット優先順位< <= = >= > <> ><ABS(), INT(), MEM, POINT(X,Y)RND()メム1から32767:3 定義16ビット± 32767A~ZA(1次元の1つの配列)A$, B$
1976年6月
マイクロベーシック1.3 [71]
ロバート・ウイターウィック6800通訳者入力変数リスト(LET) var = 式PRINT 式リスト { , / ; }GOTO式IF式 relop式 THEN文GOSUB式戻る終わり走るリスト (最初 (, 最後))新しいFOR/TO/NEXT(STEPなし)タブ()優先順位< <= = >= > <> ><RND、サイズRND [1~32762を返す]SIZE (使用バイト数と空きバイト数を出力するステートメント)1から65535なし17の定義16ビット[後でBCD!]± 32767A~ZDIM(2次元、最大サイズ255)なし
1976年6月
科学的初等
基本言語
(SCELBAL)[72] [34]
マーク・アーノルド&ナット・ワズワース8008通訳者入力変数リスト(LET) var = 式PRINT 式リスト {, / ; / }GOTO番号THEN文GOSUB番号戻る終わり走るリスト傷]レム睡眠〜のために / 〜へ / ステップ / 次へ保存、ロードUDF [USR]優先順位、^< <= = >= > <>INT、SGN、ABS、SQR、CHR [PRINT でのみ使用可能]、TABラウンド数(0) 0..11から999999なし18の定義32ビットオペランド浮動小数点または固定小数点±134,217,727; 14E-38<N<1.7E38?DIM (1 文字の名前、1 次元、最大 4 つの配列、合計最大 64 エントリ)なし
1976年10月
アップル I ベーシック[73]
スティーブ・ウォズニアック6502通訳者INPUT ("文字列",) 変数リスト(LET) var = 式PRINT 式リスト { , / ; }GOTO式IF式 relop式 THEN 行番号/文GOSUB式戻る終わり実行(スタート)リスト (最初 (, 最後))SCRレム睡眠〜のために / 〜へ / ステップ / 次へオート、デリート、ポケTAB(コマンド)、CALL優先順位< <= = >= > <> # AND OR NOT MODSGN、ABS、PEEK()、LEN()RND(X) 0..X (または X..0!)ヒメム、ロメム1から32767なし [初期バージョン、当時:]16の定義16ビット± 32767A~Zの後に任意の数の英数字DIM(1次元)寸法付き
1976年12月
LLLベーシック[74]
(アイダホ大学職員)8080通訳者入力変数リスト(LET) var = 式PRINT 式リスト { , / ;}番号へ移動IF式再配置式(THEN)ステートメントGO SUB番号戻る終わり走るリストSCRレム睡眠FOR/TO/NEXT(STEPなし)停止呼び出し、GET()、PUT()優先順位< <= = >= > <> ><RNDはありませんか?0から32767:14の定義32ビットオペランド浮動小数点?A~Z、A0~Z9DIM (整数のみ、1 文字の名前、1 次元、最大サイズ 255)なし
1980年1月
シンクレア4Kベーシック[75]
ジョン・グラントZ-80通訳者入力変数LET var = 式PRINT 式リスト { , / ;}番号へ移動IF式THEN文GO SUB番号戻るRUN(数字)リストクリア新しいレム睡眠FOR/TO/NEXT(STEPなし)停止突く優先順位< = >ABS、CHR$、CODE、PEEK、RND、STR$、TL$、USRRND、ランダム化1から999910の定義16ビット整数16ビット整数A~Zの後に任意の数の英数字DIM AZ (整数のみ、1 文字の名前、1 次元、最大サイズ 255)A$-Z$

参照

注記

  1. ^ 当時、8080 の最も一般的なメモリ サイズは 4 KB で、その価格は数百ドルでした。
  2. ^ ハッシュは、 HP Time-Shared BASICの不等号にも使用されました

参考文献

引用

  1. ^ ランカスター、ドン (1976). 「TVタイプライタークックブック」(PDF) . pp.  210– 211. 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  2. ^ マネス&アンドリュース 1994年、81ページ。
  3. ^ Roberts, H. Edward (1975年10月). 「社長からの手紙」. Computer Notes . 1 (5). Albuquerque, NM.: MITS: 3– 4. 2012年3月23日時点のオリジナルよりアーカイブ。
  4. ^ マネス&アンドリュース1994、91ページ。
  5. ^ Allison, Dennis (1976年7月). 「TINY BASICの設計ノート」. SIGPLAN Notices . 11 (7). ACM: 25–33 . doi : 10.1145/987491.987494 . S2CID  18819472.
  6. ^ ab 「TBコードシート」。Dr . Dobb's Journal of Computer Calisthenics & Orthodontia、Running Light Without Overbyte1 (1)、1975年12月。
  7. ^ ドブス 1976、5ページ。
  8. ^ abc ラウスコルブ, ロジャー (1976年12月). 「Dr. WangのPalo Alto Tiny BASIC」.インターフェースエイジ. 2 (1): 92–108 .ソースコードは次の 9 行で始まります。
    ;************************************;; INTEL 8080用TINY BASIC; バージョン 2.0; LI-CHEN WANG著; 改変および翻訳; インテルニーモニックへ; ロジャー・ラウスコルブ著; 1976年10月10日; @コピーレフト; すべての権利は留保されています;;************************************
  9. ^ 「オープンハードウェア:その仕組みと理由」IBMオープンソフトウェア運動は、1975年にデニス・アリソンがTiny BASICをリリースしたことで始まった。
  10. ^ ab ウォーレン、ジム・C. (1976年7月). 「通信」. SIGPLAN通知. 11 (7). ACM: 1– 2. ISSN  0362-1340.
  11. ^ Wang, Li-Chen (1976年5月). 「Palo Alto Tiny BASIC」. Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte . 1 (5): 12– 25.ソースコードは次の6行で始まります。
    INTEL 8080用TINY BASICバージョン 1.0リーチェン・ワン1976年6月10日@コピーレフトすべての権利は留保されています
    5月号の6月の日付は正しいです。雑誌の発行が遅れていたため、6月号と7月号を統合して発行しました。
  12. ^ アリソン、デニス (1976). 「自分だけのBASICを作る」.ドクター・ドブズ・ジャーナル第1巻 第1号 9ページ.
  13. ^ アリソン、デニス (1976). 「Tiny BASIC クイックリファレンスガイド」. Dr. Dobb's Journal第1巻第1号. 6ページ.
  14. ^ BASIC-PLUS 言語マニュアル (PDF). マサチューセッツ州メイナード: Digital Equipment Corporation. 1972年. pp.  3– 13.
  15. ^ アレン、デニス. 「TINY BASIC」.ピープルズ・コンピュータ・カンパニー. 4 (3).
  16. ^ Veit, Holger. 「Tom Pittman's 6800 tiny BASIC」 . 2017年5月2日閲覧
  17. ^ ドブ博士のジャーナル、第 1 巻、第 1 号、1976 年、p. 12.
  18. ^ there はCRLFキャリッジリターンとそれに続くラインフィードを表します。
  19. ^ ピットマン、トム. 「Tiny BASIC Experimenter's Kit」 . 2020年8月9日閲覧
  20. ^ “TINY BASIC 6800” (PDF) . 2022年10月9日時点のオリジナルよりアーカイブ(PDF) . 2020年8月13日閲覧
  21. ^ abc 「Tiny BASIC Extended」。Dr . Dobb's Journal of Computer Calisthenics & Orthodontia、Overbyteなしで軽量化を実現。1 (2)。1976年2月
  22. ^ ab "Denver Tiny BASIC". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte . 1 (3). 1976年3月.
  23. ^ abc "MINOL". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte . 1 (4). 1976年4月.
  24. ^ abcde Rauskolb, Roger (1976年12月). 「Dr. WangのPalo Alto Tiny BASIC」(PDF) . Interface Age . pp.  92– 108. 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  25. ^ 「デザインノート」。ドクター・ドブのコンピュータ体操&矯正ジャーナル、オーバーバイトなしで軽量化を実現。1 ( 1)。1975年12月。
  26. ^ "6800 Tiny BASIC". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte . 1 (3). 1976年3月.
  27. ^ 「TINY BASIC ユーザーマニュアル+」。
  28. ^ Wang, Li-Chen (1976年5月). 「Palo Alto Tiny BASIC」. Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte . 1 (5): 12– 25.
  29. ^ ab "NIBL". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte . 1 (10). 1976年11月.
  30. ^ 「強化・改良版6800 Tiny BASIC」『Dr. Dobb's Journal of Computer Calisthenics & Orthodontia』、オーバーバイトなしで軽量化を実現。1980年10月。
  31. ^ "TBI68K". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte . 1985年2月.
  32. ^ 「Tiny BASICの復活」。Dr . Dobb's Journal of Computer Calisthenics & Orthodontia、Overbyteなしで軽量化を実現。2006年1月。
  33. ^ 「Texas Tiny BASIC (TBX) と TV-Cassette Operating System (TVCOS) の融合」『Dr. Dobb's Journal of Computer Calisthenics & Orthodontia』、オーバーバイトなしで軽量化を実現。1 ( 5): 28– 31、1976年5月。
  34. ^ ab Arnold, Mark; Wadsworth, Nat (1976年2月). 「SCELBAL – 8008/8080システム向け高水準言語」. Dr. Dobb's Journal . pp.  30– 53.
  35. ^ Wang, Li-Chen (1976年5月). 「Palo Alto Tiny BASIC」. Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte . 1 (5): 12– 25.(注: ソース コードは次の 6 行で始まります。「TINY BASIC FOR INTEL 8080; VERSION 1.0; BY LI-CHEN WANG; 10 JUNE, 1976; @COPYLEFT; ALL WRONGS RESERVED」。5 月号の 6 月の日付は正しいです。雑誌の発行が遅れていたため、6 月号と 7 月号を統合して発行しました。)
  36. ^ マッケイブ、ドワイト [編者] (1977年7月1日). PCC's Reference Book of Personal and Home Computing (第1版). メンロパーク, カリフォルニア州: ピープルズ・コンピュータ・カンパニー. p. 248. ISBN 0-918790-02-6 {{cite book}}:|first1=一般的な名前があります(ヘルプ
  37. ^ 「People's Computer Company」(PDF) 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。 2019年12月25日閲覧
  38. ^ Turnbull, Pete. “Startrek.asc”. 2021年2月24日時点のオリジナルよりアーカイブ。 2019年12月25日閲覧
  39. ^ 「3Kコントロール 基本取扱説明書」(PDF) . Cromemco. 2013年12月22日時点のオリジナル(PDF)からアーカイブ。 2013年2月18日閲覧
  40. ^ Ainsworth, Dick (1982). Astro BASIC . Astrocade, Inc. p. 3.
  41. ^ 「Robert Uiterwyk の BASIC」.
  42. ^ “ロバート・ウイターウィクのマイクロベーシック”.
  43. ^ 「LLL 8080 BASICインタープリターのパート1」(PDF) 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  44. ^ 「4つのAltair言語システム」Altair BASIC
  45. ^ Altair BASIC (PDF) . MITS. 1975年8月25日. 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  46. ^ Wozniak, Steven (2014年5月1日). 「スティーブ・ウォズニアックが初代AppleのBASICをゼロから書いた方法」Gizmodo .
  47. ^ ウェルシュ、デイビッド、ウェルシュ、テレサ (2007). 『プライミング・ザ・ポンプ:TRS-80愛好家がいかにしてPC革命の火付け役となったか』p. 7.
  48. ^ 「ZX80 – 8K BASIC ROMアップグレード」。
  49. ^ Ness, Stephen. 「XYBASIC」. Ness Software . 2020年8月4日閲覧
  50. ^ "TinyBasicPlus". GitHub .
  51. ^ 「Arduinoおよび互換機用Half-Byte Tiny Basic 2が登場!」2014年11月27日。
  52. ^ 「Micro:BitでTiny Basicを実行する」。2020年3月28日。
  53. ^ Chailloux, Emmanuel; Manoury, Pascal; Pagano, Bruno (2002). 『Objective Caml によるアプリケーション開発』フランス: O'Reilly. ISBN 2841771210
  54. ^ "aleozlx/tinybasic". GitHub . 2020年9月20日閲覧
  55. ^ “PaloAltoTinyBasic” . 2020年9月20日閲覧。
  56. ^ Williams, Al (2019年7月31日). 「bootBASICはブートセクターにあなたのお気に入りの言語をフィットさせます」. Hack A Day . 2022年3月26日閲覧
  57. ^ Gutierrez, Oscar Toledo. 「bootBASICは512バイトのx86マシンコードで記述されたBASIC言語です」. Github . 2022年3月26日閲覧
  58. ^ Gutierrez, Oscar Toledo (2019年7月27日). 『ブートセクターゲームプログラミング』 . Lulu. p. 155. ISBN 978-0-359-76262-0
  59. ^ ヘンダーソン、ゴードン (2023). 「6502用の小さなBasic」. Drogon Projects .
  60. ^ "BASIC" (PDF) . 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  61. ^ 「TSS/8 タイムシェアリングシステム ユーザーズガイド」 1970年2月。
  62. ^ 「Intel 8008マイクロプロセッサ用基本言語インタープリタ」1974年。
  63. ^ 「MITS ALTAIR BASIC REFERENCE MANUAL」(PDF) 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  64. ^ 「Dr. Dobb's Journal of Computer Calisthenics and Orthodontia: Running Light Without Overbyte」(PDF) 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  65. ^ 「Dr. Dobb's Journal of Computer Calisthenics and Orthodontia: Running Light Without Overbyte」(PDF) 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  66. ^ ab 「Dr. Dobb's Journal of Computer Calisthenics and Orthodontia: Running Light Without Overbyte」(PDF) 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  67. ^ 「Dr. Dobb のコンピュータ体操と歯列矯正ジャーナル: オーバーバイトなしで軽量化を実現」。
  68. ^ 「インターフェースエイジ」。
  69. ^ 「Dr. Dobb's Journal of Computer Calisthenics and Orthodontia: Running Light Without Overbyte」(PDF) 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  70. ^ 「TRS-80 レベル I BASIC のヘルプ」。
  71. ^ “Robert Uiterwyk's MICRO BASIC”. 2012年2月5日時点のオリジナルよりアーカイブ2012年1月15日閲覧。
  72. ^ 「SCELBAL – 8008/8080システム向け高水準言語」(PDF) 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  73. ^ 「予備版 Apple Basic ユーザーズマニュアル」 1976年10月。
  74. ^ 「Interface Age」(PDF) 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。
  75. ^ https://cdn.hackaday.io/files/1707077303528288/ZX80_OperatingManual.pdf. {{cite web}}:欠落または空|title=(ヘルプ)

参考文献

  • Tiny Basic ユーザーマニュアルと実験キット – トム・ピットマン著
  • Robert UiterwykのBASIC Archived 2011-01-07 at the Wayback MachineとRobert UiterwykのMicro Basic Archived 2012-02-05 at the Wayback Machine – MC6800の小型BASICは後にSWTPC 6800コンピュータとともに販売された。
  • MINOL – Erik Mueller の MINOL – Intel 8080 用文字列付き Tiny BASIC
  • Tiny BASIC – curses 文字スクリーン処理ライブラリのバージョン
  • tinyBasic – iziBasicで書かれた実装
  • Tiny BASIC – iziBasic から Run BASIC に移植されたライブ Web バージョン
  • 500 行未満の Palo Alto BASIC – Ruby で書かれた BASIC インタープリターの例。
  • TinyBasic – Tom Pittman 氏による TinyBasic C インタープリターのJavaC#Adobe Flexへの移植版。ライブ Web バージョンも含まれています。
  • TinyBASIC Windows – TinyBASICのWindows版
  • カテゴリ:Tiny BASIC Rosettacode.org の Tiny BASIC で実装されたタスク
  • カテゴリ:Palo Alto Tiny BASIC rosettacode.org の Palo Alto Tiny BASIC で実装されたタスク
「https://en.wikipedia.org/w/index.php?title=Tiny_BASIC&oldid=1320512033」から取得