Jump to content

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

Southampton BASIC System ( SOBS ) — диалект BASIC, языка программирования разработанный и использовавшийся на компьютерах серии ICT 1900 в конце 1960-х — начале 1970-х годов; он был реализован как инкрементный интерпретатор BASIC под операционной системой MINIMOP в Саутгемптонском университете. [1] а также работал под управлением MAXIMOP .

Управление им осуществлялось с помощью телетайпа , хотя можно было использовать и ЭЛТ-терминалы.

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

[ редактировать ]

Как и во многих ранних реализациях BASIC, SOBS требовалось, чтобы строки имели номера строк , чтобы позволить пользователю добавлять новые строки в программу в нужном месте, а также в качестве целей для GOTO и GOSUB заявления. А RENUMBER была доступна возможность перенумерации разделов кода по умолчанию с шагом 10, чтобы освободить больше места в середине программы.

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

Заявления

[ редактировать ]

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

Заявление Цель
DATA Сохраненные данные для READвход в переменные во время выполнения
DIM var(size)... Измерьте массив. Поддерживались одно-, двух- и трехмерные массивы.
END Остановить выполнение программы.
FOR var=start TO end [STEP incr] Выполните набор операторов несколько раз для разных значений var.
GOSUB line Вызов подпрограммы по заданному номеру строки; поток вернется к следующему оператору, когда RETURN был казнен.
GOTO line Безусловный переход к заданному номеру строки.
IF expr THEN line [ELSE line] Условно ветка. THEN и ELSE части могли указывать только номера строк, к которым нужно перейти.
INPUT var Запрашивать у пользователя входные данные
LET var=expr Присвойте значение переменной. В отличие от многих современных диалектов БЕЙСИКА, LET не было необязательным словом.
NEXT var Выполните следующую итерацию FOR петля.
PRINT Вывод на телетайп
READ var... Считать данные из DATA операторы в переменные
REM Сокращение от REMark, это позволило разместить комментарий в строке
RESTORE [line] Сбросить READ указатель, чтобы перечитать DATA
RETURN Вернитесь на строку, следующую за GOSUB.

Особо отметим отсутствие WHILE-подобное заявление; FOR была единственной циклической конструкцией, доступной программистам.

Переменные

[ редактировать ]

Имена переменных для числовых значений представляли собой либо одну букву, либо одну букву, за которой следовала одна цифра, что позволяло в общей сложности использовать 286 дискретных переменных. Строки поддерживались; имена переменных для них имели то же ограничение, но за ними следовал решётка ( £) символ.

Было предоставлено ограниченное количество числовых функций, каждая из которых принимала один числовой параметр:

Функция Функция( ) вернулся
SIN
COS
ATN
SQR
LOG
EXP
INT Наибольшее целое число, не превышающее
SGN −1, 0 или 1, в зависимости от того, было меньше, равно или больше нуля
ABS если было отрицательным, в противном случае

Поддержка строк была более ограниченной и включала только одну функцию: LEN, который вернул длину строкового параметра. Подстроки поддерживались квадратными скобками, поэтому A£[2,3] относится к подстроке строки со 2-го символа по 3-й включительно, поэтому

10 LET A£ = "FOO"
20 PRINT A£[2,3]

напечатал бы OO

Этот синтаксис также поддерживался в левой части присваивания, поэтому

10 LET A£ = "FOO"
20 LET A£[2,2] = "BAR"
30 PRINT 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,
A читается с первого раза DATA заявление
B читается со второго DATA заявление
C рассчитывается путем умножения A и B
D рассчитывается как обратная величина C

Результат будет 2 2 1 1 -1 0 4 -3 -2

У SOBS были примитивные возможности отладки, ограниченные в основном TRACE заявление. TRACE ON заставит интерпретатор печатать каждый номер строки по мере ее выполнения.

  1. ^ Рис, MJ; Оппенгеймер, AW (21 января 1977 г.). «SOBS – инкрементальная БЕЙСИК-система» . Программное обеспечение: практика и опыт . 7 (5). Wiley InterScience: 631–643. дои : 10.1002/спе.4380070508 . S2CID   33989728 . Архивировано из оригинала 5 января 2013 года . Проверено 18 мая 2009 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 04a40e878b64e1b9c678a679f904a7ac__1702303980
URL1:https://arc.ask3.ru/arc/aa/04/ac/04a40e878b64e1b9c678a679f904a7ac.html
Заголовок, (Title) документа по адресу, URL1:
Southampton BASIC System - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)