Базовая система Саутгемптона - Southampton BASIC System

Базовая система Саутгемптона (Суки) был диалектом БАЗОВЫЙ язык программирования, разработанный и используемый на ИКТ 1900 серии компьютеры конца 1960-х - начала 1970-х годов; он был реализован как дополнительный БЕЙСИК-интерпретатор под МИНИМОП операционная система на Саутгемптонский университет[1] а также бежал под МАКСИМОП.

Он работал с Телетайп терминал, хотя терминалы CRT также могут быть использованы.

Языковые характеристики

Как и во многих ранних реализациях BASIC, SOBS требовал, чтобы строки имели номера строк, чтобы позволить пользователю добавлять новые строки в программу в желаемом месте, а также в качестве целей для ИДТИ К и GOSUB заявления. А НОМЕР Было доступно средство, позволяющее перенумеровать разделы кода, по умолчанию с шагом 10, чтобы освободить больше места в середине программы.

За исключением номеров строк, все числовые значения были представлены внутри как плавающая точка.

Заявления

По сравнению с современными языками программирования в языке было относительно мало операторов:

ЗаявлениеЦель
ДАННЫЕСохраненные данные для ЧИТАТЬвход в переменные во время выполнения
Тусклый вар(размер)...Измерьте размер массива. Поддерживались одно-, двух- и трехмерные массивы.
КОНЕЦОстановить выполнение программы.
ЗА вар=Начните К конец [ШАГ incr]Повторяйте набор инструкций для различных значений вар
GOSUB линияВызов подпрограммы по заданному номеру строки; поток вернется к следующему оператору, когда ВОЗВРАЩАТЬСЯ был казнен.
ИДТИ К линияБезусловный переход к заданному номеру строки.
ЕСЛИ expr ТОГДА линия [ЕЩЕ линия]Условно ветка. В ТОГДА и ЕЩЕ части могут давать только номера строк, к которым нужно перейти.
ВХОД варЗапрашивать у пользователя входные данные
ПОЗВОЛЯТЬ вар=exprПрисвойте значение переменной. В отличие от многих современных диалектов BASIC, ПОЗВОЛЯТЬ не было необязательным словом.
СЛЕДУЮЩИЙ варВыполните следующую итерацию ЗА петля.
РАСПЕЧАТАТЬВывод в телетайп
ЧИТАТЬ вар...Читать данные из ДАННЫЕ операторы в переменные
REMКороче для REMark, это позволило разместить комментарий в строке
ВОССТАНОВИТЬ [линия]Сбросить ЧИТАТЬ указатель, чтобы перечитать ДАННЫЕ
ВОЗВРАЩАТЬСЯВернитесь к строке, следующей за 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,
А читается с первого ДАННЫЕ утверждение
B читается со второго ДАННЫЕ утверждение
C рассчитывается путем умножения А и B
D рассчитывается как величина, обратная C

Результатом будет 2 2 11-1 04-3-2

Отладка

У SOBS были примитивные возможности отладки, ограниченные в основном СЛЕД утверждение. ПОСЛЕДОВАТЬ заставит интерпретатор печатать номер каждой строки по мере ее выполнения.

Рекомендации

  1. ^ Rees, M.J .; Оппенгеймер, А. (21 января 1977 г.). «СОБС - инкрементальная Бейсик-система». Программного обеспечения. Wiley InterScience. 7 (5): 631–643. Дои:10.1002 / spe.4380070508. Архивировано из оригинал 5 января 2013 г.. Получено 18 мая 2009.