Базовая система Саутгемптона - Southampton BASIC System
Базовая система Саутгемптона (Суки) был диалектом БАЗОВЫЙ язык программирования, разработанный и используемый на ИКТ 1900 серии компьютеры конца 1960-х - начала 1970-х годов; он был реализован как дополнительный БЕЙСИК-интерпретатор под МИНИМОП операционная система на Саутгемптонский университет[1] а также бежал под МАКСИМОП.
Он работал с Телетайп терминал, хотя терминалы CRT также могут быть использованы.
Языковые характеристики
Как и во многих ранних реализациях BASIC, SOBS требовал, чтобы строки имели номера строк, чтобы позволить пользователю добавлять новые строки в программу в желаемом месте, а также в качестве целей для ИДТИ К
и GOSUB
заявления. А НОМЕР
Было доступно средство, позволяющее перенумеровать разделы кода, по умолчанию с шагом 10, чтобы освободить больше места в середине программы.
За исключением номеров строк, все числовые значения были представлены внутри как плавающая точка.
Заявления
По сравнению с современными языками программирования в языке было относительно мало операторов:
Заявление | Цель |
---|---|
ДАННЫЕ | Сохраненные данные для ЧИТАТЬ вход в переменные во время выполнения |
Тусклый вар(размер)... | Измерьте размер массива. Поддерживались одно-, двух- и трехмерные массивы. |
КОНЕЦ | Остановить выполнение программы. |
ЗА вар=Начните К конец [ШАГ incr] | Повторяйте набор инструкций для различных значений вар |
GOSUB линия | Вызов подпрограммы по заданному номеру строки; поток вернется к следующему оператору, когда ВОЗВРАЩАТЬСЯ был казнен. |
ИДТИ К линия | Безусловный переход к заданному номеру строки. |
ЕСЛИ expr ТОГДА линия [ЕЩЕ линия] | Условно ветка. В ТОГДА и ЕЩЕ части могут давать только номера строк, к которым нужно перейти. |
ВХОД вар | Запрашивать у пользователя входные данные |
ПОЗВОЛЯТЬ вар=expr | Присвойте значение переменной. В отличие от многих современных диалектов BASIC, ПОЗВОЛЯТЬ не было необязательным словом. |
СЛЕДУЮЩИЙ вар | Выполните следующую итерацию ЗА петля. |
РАСПЕЧАТАТЬ | Вывод в телетайп |
ЧИТАТЬ вар... | Читать данные из ДАННЫЕ операторы в переменные |
REM | Короче для REM ark, это позволило разместить комментарий в строке |
ВОССТАНОВИТЬ [линия] | Сбросить ЧИТАТЬ указатель, чтобы перечитать ДАННЫЕ |
ВОЗВРАЩАТЬСЯ | Вернитесь к строке, следующей за GOSUB . |
Отметим, в частности, отсутствие ПОКА
-подобное заявление; ЗА
была единственной конструкцией цикла, доступной программистам.
Переменные
Переменная имена для числовых значений состояли либо из одной буквы, либо из одной буквы, за которой следовала одна числовая цифра, что позволило использовать в общей сложности 286 дискретных переменных. Струны были поддержаны; имена переменных для них имели такое же ограничение, но после них ставился фунт (£
) символ.
Функции
Было предоставлено ограниченное количество числовых функций, каждая из которых принимала один числовой параметр:
Функция | Функция () вернулся |
---|---|
ГРЕХ | |
COS | |
ATN | |
SQR | |
БРЕВНО | |
EXP | |
INT | Наибольшее целое число не более |
SGN | 鈭 0 или 1, в зависимости от того, было меньше, равно или больше нуля |
АБС | если был отрицательным, иначе |
Поддержка строк была более ограниченной, с одной функцией, LEN
, который вернул длину строкового параметра. Подстроки поддерживались квадратными скобками, поэтому A 拢 [2,3]
ссылается на подстроку строки А 拢
от 2-го символа до 3-го включительно, поэтому
10ПОЗВОЛЯТЬА£="ФУ"20РАСПЕЧАТАТЬА£[2,3]
напечатал бы OO
Этот синтаксис также поддерживался в левой части присваивания, поэтому
10ПОЗВОЛЯТЬА£="ФУ"20ПОЗВОЛЯТЬА£[2,2]="БАР"30РАСПЕЧАТАТЬА£
напечатал бы FBARO
Массивы
Поддержка обработки массивов данных была относительно сильной, с МАТ
операторы, способные читать весь массив из ДАННЫЕ
заявления и выполнять полезные матрица такие операции, как матрица сложения, матричное вычитание, матричное умножение, и найти обратная матрица для квадратная матрица.
Пример:
10ТусклыйА(3,3)20МАТЧИТАТЬА30ДАННЫЕ1,1,2,1,0,2,0,2,140ТусклыйB(3,3)50МАТЧИТАТЬB60ДАННЫЕ0,0,1,0,1,0,1,0,070ТусклыйC(3,3),D(3,3)80МАТC=А*B90МАТD=INV(C)100МАТРАСПЕЧАТАТЬD,
А читается с первого ДАННЫЕ утверждение |