SuperBASIC — это усовершенствованный вариант языка программирования BASIC со множеством дополнений структурного программирования . Он был разработан в Sinclair Research Яном Джонсом в начале 1980-х годов.
Первоначально SuperBASIC был задуман как интерпретатор BASIC для домашнего компьютера под кодовым названием SuperSpectrum , тогда находившегося в разработке. Этот проект был позже отменен; однако, SuperBASIC впоследствии был включен в прошивку ПЗУ микрокомпьютера Sinclair QL (анонсирован в январе 1984 года), также выступая в качестве интерпретатора командной строки для операционной системы QDOS QL . [1] [2]
Это был один из первых BASIC второго поколения , интегрированный в операционную систему микрокомпьютера (в отличие от BBC BASIC , который появился до него в 1981 году), что сделало ОС расширяемой пользователем — как это сделал Линус Торвальдс в годы своего становления.
IF
- THEN
- ELSE
-END IF
FOR
- NEXT
- EXIT
-END FOR
REPeat
- NEXT
- EXIT
-END REPeat
SELect ON
- ON
- REMAINDER
-END SELect
RETurn
из процедур и функцийLOCal
массивы и (строковые) переменныеAUTOmatic
нумерация строкRESTORE
&DATA
Функция ниже иллюстрирует последние восемь из этих функций. После того, как вы RUN
ее получили, ввод
ПЕЧАТЬ будни$(Iso("19631122",1))
напечатаетПТна экран. Пока не будет очищено (например, путем ввода NEW
), функция Iso [3] будет действовать как расширение операционной системы. Аналогично, согласно Руководству пользователя QL, «многие команды операционной системы сами по себе определены как процедуры». [4]
АВТО 11,2 Определить FN Iso(S,O) МЕСТНЫЙ г%, м%, д%, и$, н%, в% REM Шаг 0 - выделить компоненты метки даты S="YEARMoDa" ПУСТЬ y%=S(1TO 4) : m%=S(5TO 6) : d%=S(7TO 8) Шаг 1 быстрого сна — инициировать конгруэнтность Лахмана [5] ПУСТЬ i$=m%*2.56+ 193 : S=S(1TO 6)- 3 REM Шаг 2 — вычислить номер дня в неделе ПУСТЬ w%=(S(1TO 2)&"32"DIV 16+ S(1TO 4)DIV 4+ y%+ i$(2TO 3)+ d%)MOD 7 REM Шаг 3 — возврат результата ВЫБЕРИТЕ НА O НА O= 5 : n%=i$(2TO 3) НА О= 4: n%=y% НА О= 3 : н%=м% НА O= 2 : n%=d% ВКЛ О= 1 : н%=в% НА O= ОСТАТОК: n%=-1 КОНЕЦ ВЫБОРА Возврат n% Отчеты о данных REM DIM будни$(6,3) ВОССТАНОВЛЕНИЕ 190 ДЛЯ количества=0 ДО 6 : ЧТЕНИЕ будних дней$(количество)
ctrl+space
100 DIM месяц$ ( 12 , 9 ) 110 ВОССТАНОВЛЕНИЕ 120 REM Пример ii "Восстановление чтения данных" Руководства пользователя QL 130 REM соответствующим образом измененный относительно примера i 140 FOR количество = 1 TO 12 : READ месяц $ ( количество ) 150 DATA " Январь " , " Февраль " , " Март " 160 DATA " Апрель " , " Май " , " Июнь " 170 DATA " Июль " , " Август " , " Сентябрь " 180 DATA "Октябрь" , "Ноябрь" , "Декабрь" 190 DATA "ВС" , "ПН" , "ВТ" , "СР" , " ЧТ" , "ПТ" , "СБ" 199 END DEFine Iso