BASIC či basic [bejzik][1] je rodina programovacích jazyků vysoké úrovně sloužících jako jednoduchý nástroj pro výuku programování. Jazyk byl navržen v roce 1964 na americké Dartmouthské univerzitě a pro snazší srozumitelnost byla použita klíčová slova jazyka vycházející z běžné angličtiny. Název BASIC je zkratkou anglických slov Beginner's All-purpose Symbolic Instruction Code, česky „univerzální kód symbolických instrukcí pro začátečníky“.

V 80. letech našel BASIC široké uplatnění na domácích mikropočítačích. Ve svých prvních verzích nepodporoval volání funkcí (ke skokům v programu sloužil příkaz goto, tato koncepce se později ukázala jako nevyhovující) a jednotlivé řádky kódu musely být číslovány. Pozdější verze už poskytovaly plnohodnotný strukturovaný návrh a některé současné verze dokonce umožňují objektově orientované programování (Visual Basic, Gambas).

Historie

Před polovinou 60. let 20. století byly počítače velmi drahé sálové stroje, které obvykle vyžadovaly vlastní dedikované místnosti a klimatizaci. Byly využívány velkými společnostmi k plnění vědeckých a komerčních úloh. Uživatelé odevzdávali své úlohy na děrných štítcích nebo podobných mediích počítačovým operátorům a výsledky vypočtené počítačem sbírali později. Jednoduché dávkové zpracování však umožňovalo vykonávat pouze jednu úlohu v daný čas. Další úlohy pak následovaly. Během 90. let 20. století se staly dostupnějšími rychlejší a levnější počítače, stále se však jednalo o sálové počítače. Tyto počítače přišly s novou technikou umožňující sdílení času, takže procesor a operační paměť mohlo využívat více uživatelů nebo procesů. V takovém systému operační systém přiděluje jednotlivým procesům procesorový čas a přepíná mezi nimi. Každý proces se chová tak, aby využil počítač na plno, ačkoliv čas pro vykonání jeho operace stoupá. Časové sdílení bylo použito se záměrem spuštění několika dávkových procesů současně.

Časové sdílení umožňovalo používat počítače několika nezávislým uživatelům, kteří pracovali s terminálem, který byl vybaven klávesnicí a teletype tiskárnou, později i monitorem. Počítače byly dostatečně rychlé, aby dokázaly rychle reagovat na požadavky všech uživatelů. Oblastí intenzivního výzkumu v 60. a 70. letech 20. století se stala potřeba pro optimalizaci interaktivního časového sdílení pomocí interpretů příkazové řádky a programovacích jazyků.

Vznik

Původní jazyk BASIC byl navržen v roce 1964 pány John Kemeny a Thomas KurtzDartmouthské univerzityHanoveru v americkém státě New Hampshire a implementován týmem Dartmouthských studentů pod jejich vedením. Zkratka "BASIC" pochází z nepublikované práce Thomase Kurtze. BASIC byl navržen tak, aby bylo umožněno studentům psát programy pro sálové počítače pro systém Dartmouth Time-Sharing. Byl určen speciálně pro méně technické uživatele, kteří neměli nebo nechtěli mít nějaké související matematické znalosti. Schopnost používat počítač pro podporu výuky a výzkumu byla v té době docela nová.

Jazyk byl založen na FORTRAN II s některými vlivy ALGOL 60 a dodatky, aby byl vhodný pro systémy se sdílením času. Zpočátku se BASIC soustředil na podporu jednoduché matematické práce s podporou aritmetiky matic. Původně byl jazyk implementován jako dávkový. Funkce reprezentované textovými řetězci byly doimplementovány v roce 1965.

Návrháři jazyka se rozhodli uvolnit kompilátor k dispozici zdarma, takže jazyk se mohl hodně rozšířit. (V roce 1960 se software stal zpoplatněnou komoditou, do té doby byl poskytován zdarma jako služba s velmi drahými počítači, obvykle k dispozici pouze k pronájmu.) BASIC byl také k dispozici vysokým školám v oblasti Hannoveru. Bylo vyvinuto značné množství úsilí pro podporu tohoto jazyka. V následujících letech se objevily další dialekty BASICu; Keménův a Kurtzův původní BASIC dialekt se stal známý jako Dartmouth BASIC. Je prodáván pod komerčním názvem TrueBASIC.

Rozšíření na minipočítače

Znalost relativně jednoduchého jazyka BASIC se rychle rozšířila po celém počítačovém světě. BASIC byl implementován mnoha výrobci. BASIC se stal poměrně populární v nových minipočítačích, jako jsou DEC, PDP série a DGN. BASIC byl také hlavním jazykem pro HP čas-sdílející systémy v pozdních 60. a raných 70. letech 20. století, kde byl jazyk implementován jako interpret. Také byl v této době portován do operačního systému Pick, kde kompilátor renderuje do pseudoinstrukčního kódu, který je možné dále interpretovat virtuálním strojem.

Během tohoto období bylo napsáno několik jednoduchých počítačových her v BASICu, nejvíce pozoruhodná byla Mike Mayfieldův Star Trek. Řada z nich byla shromážděna zaměstnanci David H. Ahl a publikovány v novinkách, které shromažďoval. David H. Ahl později shromáždil řadu z nich do knižní formy „101 BASIC Computer Games“, která byla poprvé publikována v roce 1973. Během stejného období se Ahl podílel na vytvoření malého počítače pro použití ve vzdělávání, rané formy osobního počítače.

Ukázka kódu

Typický program Hello world vypadá v BASICu takto:

10 PRINT "Hello, world!"
20 END

Následují dva příklady, které demonstrují na stejné úloze rozdílnost nestrukturovaného a strukturovaného programování.

Původní, nestrukturovaný BASIC (konkrétně Applesoft BASIC):

 10 INPUT "Zadejte svoje jmeno: "; U$
 20 PRINT "Ahoj "; U$
 25 REM
 30 INPUT "Kolik hvezdicek chcete: "; N
 35 S$ = ""
 40 FOR I = 1 TO N
 50 S$ = S$ + "*"
 55 NEXT I
 60 PRINT S$
 65 REM
 70 INPUT "Chcete vic hvezdicek? "; A$
 80 IF LEN(A$) = 0 THEN GOTO 70
 90 A$ = LEFT$(A$, 1)
100 IF (A$ = "A") OR (A$ = "a") THEN GOTO 30
110 PRINT "Nashledanou ";
120 FOR I = 1 TO 200
130 PRINT U$; " ";
140 NEXT I
150 PRINT

„Moderní“ strukturovaný BASIC (konkrétně QBasic):

INPUT "Zadejte svoje jmeno"; UserName$
PRINT "Ahoj "; UserName$
DO
   INPUT "Kolik hvezdicek chcete"; NumStars
   Stars$ = ""
   Stars$ = REPEAT$("*", NumStars)   ' <- ANSI BASIC
   --nebo--
   Stars$ = STRING$(NumStars, "*")   ' <- MS   BASIC
   PRINT Stars$
   DO
      INPUT "Chcete vic hvezdicek";  Answer$
   LOOP UNTIL Answer$ <> ""
   Answer$ = LEFT$(Answer$, 1)
LOOP WHILE UCASE$(Answer$) = "A"
PRINT "Nashledanou ";
FOR I = 1 TO 200
   PRINT UserName$; " ";
NEXT I
PRINT

Dialekty jazyka BASIC

Interpretované

Kompilované

Další verze

Verzí BASICu za léta jeho existence vznikla celá řada. Některé z nich jsou:

AmigaBASIC, Applesoft BASIC, Atari BASIC, Blitz BASIC, Business Basic, Sinclair BASIC, Commodore BASIC, DarkBASIC, Dartmouth BASIC, GW-BASIC, KBasic, Microsoft BASIC, PowerBASIC, PureBasic, RapidQ, REALbasic, SmallBASIC, Tiny BASIC, True BASIC, Turbo BASIC, wxBasic, Yabasic, Omikron BASIC.

Jazyky z BASICu odvozené:

VBScript

Některé rozdíly mezi dialekty BASICu

Odkazy

Poznámky

  1. Aby příkaz INPUT fungoval jako ekvivalent funkce INKEY$, musí být nejprve velikost použité proměnné nadimenzovaná příkazem DIM na velikost jedna.

Reference

  1. Internetová jazyková příručka [online]. Praha: Ústav pro jazyk český AV ČR, v. v. i, 2008–2024 [cit. 2020-01-11]. Heslo basic. 
  2. HARTNELL, Tim. Giant Book of Computer Games. New York: Ballantine Books, 1983, 1984. 389 s. Dostupné online. ISBN 0-345-31609-6. Kapitola Introduction, s. 1–4. (anglicky) [nedostupný zdroj]
  3. a b c d HARTNELL, Tim. Giant Book of Computer Games. New York: Ballantine Books, 1983, 1984. 389 s. Dostupné online. ISBN 0-345-31609-6. Kapitola BASIC Conversion Chart, s. 387–388. (anglicky) [nedostupný zdroj]

Související články

Externí odkazy