Systém Southampton BASIC - Southampton BASIC System
Systém Southampton BASIC (POLICE) byl dialektem ZÁKLADNÍ programovací jazyk vyvinutý pro a používaný na Řada ICT 1900 počítače na konci 60. a na začátku 70. let; bylo implementováno jako přírůstkové ZÁKLADNÍ tlumočník pod MINIMOP operační systém na University of Southampton[1] a také narazil MAXIMOP.
Byl provozován z Dálnopis lze použít i terminály CRT.
Jazyková charakteristika
Společně s mnoha časnými implementacemi BASICu potřeboval SOBS řádky čísla řádků, jednak umožnit uživateli přidat do programu nové řádky na požadovaném místě a také jako cíle pro JÍT DO
a GOSUB
prohlášení. A REDUMBER
zařízení bylo k dispozici, aby bylo možné přečíslovat oddíly kódu, ve výchozím nastavení v krocích po 10, aby bylo více místa uprostřed programu.
Kromě čísel řádků byly všechny číselné hodnoty interně reprezentovány jako plovoucí bod.
Prohlášení
Jazyk měl ve srovnání s moderními programovacími jazyky relativně málo prohlášení:
Tvrzení | Účel |
---|---|
DATA | Uložená data pro ČÍST za běhu do proměnných |
ZTLUMIT var(velikost)... | Dimenze pole. Byla podporována jedno-, dvoj- a trojrozměrná pole. |
KONEC | Zastavit provádění programu. |
PRO var=Start NA konec [KROK přírůstek] | Provádějte sadu příkazů opakovaně pro různé hodnoty var |
GOSUB čára | Zavolat podprogram na daném čísle linky; flow by se vrátil k dalšímu příkazu, když a VRÁTIT SE byl popraven. |
JÍT DO čára | Bezpodmínečná větev k danému číslu řádku. |
LI expr PAK čára [JINÝ čára] | Podmíněně větev. The PAK a JINÝ části mohly poskytnout pouze čísla řádků, na která se má přejít. |
VSTUP var | Vyzvat uživatele k zadání dat |
NECHAT var=expr | Přiřaďte hodnotu proměnné. Na rozdíl od mnoha moderních dialektů jazyka BASIC, NECHAT nebylo nepovinné slovo. |
DALŠÍ var | Proveďte další iteraci a PRO smyčka. |
TISK | Výstup do dálnopisu |
ČÍST var... | Číst data z DATA výkazy do proměnných |
REM | Zkratka pro REM arku, to umožnilo umístit komentář na řádek |
OBNOVIT [čára] | Resetujte ČÍST ukazatel znovu načíst DATA |
VRÁTIT SE | Vraťte se na řádek následující po GOSUB . |
Všimněte si zejména nedostatku a ZATÍMCO
-jako prohlášení; PRO
byl jediný konstrukt opakování dostupný programátorům.
Proměnné
Variabilní názvy číselných hodnot byly buď jedno písmeno, nebo jedno písmeno následované jednou číselnou číslicí, což umožnilo celkem 286 diskrétních proměnných. Struny byly podporovány; názvy proměnných pro ně měly stejné omezení, ale za nimi následovala libra (£
).
Funkce
Byl poskytnut omezený počet numerických funkcí, přičemž všechny měly jeden numerický parametr:
Funkce | Funkce() vrátil |
---|---|
HŘÍCH | |
COS | |
ATN | |
SQR | |
LOG | |
EXP | |
INT | Největší celé číslo ne větší než |
SGN | 鈭 0 nebo 1, podle toho, zda byla menší než, rovna nebo větší než nula |
břišní svaly | -li byl negativní, jinak |
Podpora řetězců byla omezenější, pouze s jednou funkcí, LEN
, který vrátil délku parametru řetězce. Podřetězce byly podepřeny hranatými závorkami, takže A 拢 [2,3]
odkazoval se na podřetězec řetězce A 拢
od 2. znaku po 3. znak včetně, takže
10NECHATA£=„FOO“20TISKA£[2,3]
vytiskne OO
Tato syntaxe byla také podporována na levé straně úkolu, takže
10NECHATA£=„FOO“20NECHATA£[2,2]="BAR"30TISKA£
vytiskne FBARO
Pole
Podpora zpracování datových polí byla relativně silná, s ROHOŽ
příkazy schopné číst celé pole z DATA
prohlášení a provádět užitečné matice operace jako přidání matice, odčítání matice, násobení matic a hledání inverzní matice pro čtvercová matice.
Příklad:
10ZTLUMITA(3,3)20ROHOŽČÍSTA30DATA1,1,2,1,0,2,0,2,140ZTLUMITB(3,3)50ROHOŽČÍSTB60DATA0,0,1,0,1,0,1,0,070ZTLUMITC(3,3),D(3,3)80ROHOŽC=A*B90ROHOŽD=INV(C)100ROHOŽTISKD,
A se čte od prvního DATA tvrzení |