サウサンプトンBASICシステム(SOBS )は、1960年代後半から1970年代前半にかけてICT 1900シリーズコンピュータ用に開発され使用されたBASIC プログラミング言語の方言であり、サウサンプトン大学のMINIMOPオペレーティングシステム[1]の下で増分BASICインタープリタとして実装され、 MAXIMOPの下でも実行されました。
テレタイプ端末から操作されましたが、CRT 端末も使用できました。
言語特性
BASIC の初期の実装の多くと同様に、SOBS では、ユーザーがプログラムの任意の場所に新しい行を追加できるようにするために、また および ステートメントのターゲットとして使用できるようにするために、行に行番号を付ける必要GOTOがGOSUBありました。RENUMBERプログラムの途中にスペースを確保するために、コードのセクションにデフォルトで 10 ずつ番号を付け直す機能も用意されていました。
行番号以外のすべての数値は、内部的に浮動小数点として表現されていました。
声明
この言語には、現代のプログラミング言語と比較すると、比較的少ないステートメントしかありませんでした。
特に、WHILE-like ステートメントがないことに注意してください。FORこれは、プログラマーが利用できる唯一のループ構造でした。
変数
数値の変数名は、1 つの文字、または 1 つの文字の後に 1 つの数字が続くものであったため、合計 286 個の個別の変数が許可されました。文字列もサポートされていました。文字列の変数名には同じ制限がありましたが、その後にポンド記号£( ) が続きました。
機能
限られた数の数値関数が提供されており、それらはすべて 1 つの数値パラメータを受け取ります。
文字列のサポートはより限定的で、LEN文字列パラメータの長さを返す関数が1つだけありました。部分文字列は角括弧でサポートされていたため、 2文字目から3文字目までのA£[2,3]文字列の部分文字列を参照しましたA£。
10 A £ = "FOO"とします20 A £ [ 2 , 3 ]を印刷します
印刷するOO
この構文は代入の左側でもサポートされているので、
10 A £ = "FOO"とします20 A £ [ 2 , 2 ] = "BAR"とします30 A £を印刷します
印刷するFBARO
配列
データの配列を処理するためのサポートは比較的強力で、MATステートメントから配列全体を読み取りDATA、行列の加算、行列の減算、行列の乗算、正方行列の逆行列の検索などの便利な行列演算を実行できました。
例:
10 DIM A ( 3 , 3 ) 20 MAT READ A 30 DATA 1 , 1 , 2 , 1 , 0 , 2 , 0 , 2 , 1 40 DIM B ( 3 , 3 ) 50 MAT READ B 60 DATA 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 70 DIM C ( 3 , 3 ), D ( 3 , 3 ) 80 MAT C = A * B 90 MAT D = INV ( C ) 100 MAT PRINT D ,
出力は2 2 1 1 -1 0 4 -3 -2となる。
デバッグ
SOBS には基本的なデバッグ機能があり、主にTRACEステートメントに限定されていました。TRACE ONこれにより、インタープリタは実行時に各行番号を出力します。
