BASIC – krátce z historie jazyka

Neznám natolik rozporuplný jazyk, jakým je v očima programátorů nahlíženo právě na BASIC. Mnozí programátoři ho předem zatracují a zjednodušují. Jiní ho považují za výtečný jazyk, v němž v mžiku udělají mnoho. Další pak většinou z neznalosti nechává chladnými.

Ať tak, či onak, pravdou zůstává, že historie jazyka BASIC je velmi bohatá a jeho kořeny sahají hluboko do minulosti. Konkrétně do roku 1963, v kterém dvojice John Kemeny a Thomas Kurtz navrhli původní verzi jazyka BASIC, kterou vzápětí pod jejich vedením implementoval tým studentů z Dartmouthu na sálovém počítači GE-256.

Cíle návrhu jazyka, které si autoři v počátku stanovili a jimiž se nejrůznější modifikace jazyka vyznačují dodnes, byly především jednoduchost s ohledem na začínající uživatele, obecnost a mnohoúčelovost, interaktivita, rozšiřitelnost vzhledem k potřebám pokročilých uživatelů, naprosté odstínění uživatelů od operačního systému a hardwaru, rychlá odezva pro malé programy a srozumitelné reportování chyb. Jazyk byl částečně založen na jazyku FORTRAN II a ALGOL 6O.

Původní BASIC získal označení podle místa vzniku jako Darmouth BASIC. BASIC nejen že v překladu znamená „základní“, ale jedná se o akronym Beginner’s All-purpose Symbolic Instruction Code, což by se dalo volně přeložit jako „univerzální jazyk symbolických instrukcí pro začátečníky“.

Kompilátor Dartmouth BASICu byl odpočátku poskytován zdarma, a tak se jazyku brzy dostalo širokého rozšíření. S nástupem minipočítačů nasadila BASIC společnost Digital Equipment Corporation do série minipočítačů PDP (Programmed Data Processor) a společnost Data General do minipočítače Data General Nova. V těchto minipočítačích byl jazyk implementován jako interpretr, namísto kompilátoru.

S nástupem mikropočítače Altair 8800 společnosti Micro Instrumentation and Telemetry Systems (MITS) v roce 1975 se BASIC ukázal velmi vhodným jazykem pro méně výkonné počítače. Jeden z prvních BASICů, který se na mikropočítači Altair 8800 objevil, byl Tiny BASIC, původně navržený Li-Chen Wangem. V témže roce pak zakladatelé nově vznikající společnosti Microsoft, Bill Gates a Paul Allen, vytvořili Altair Basic. O něco později pak z Altair BASICu vzešel Microsoft BASIC, který se v miliónech kopií stal velmi úspěšným. Microsoft BASIC se dokonce stal standardním jazykem počítače Apple II.

U mnoha počítačů tehdejší doby se BASIC umísťoval přímo do paměti ROM, a tak počítače startovaly přímo do BASICu. „Pamětníci“ dob ne až tak vzdálených si jistě s určitou nostalgií vzpomenou na mikropočítače ZX Spectrum, Atari, Comodore, Sharp, PMD 85, IQ 151 a další, které taktéž měly BASIC umístěný přímo v paměti ROM.

V osmdesátých letech vytvořil Microsoft pro operační systémy MS-DOS, PC-DOS několik verzí BASICU, které zahrnují GW-BASIC, BASICA a Quick BASIC. Společnost BORLAND pak v roce 1985 vytvořila Turbo BASIC, z které se časem vyvinul známější PowerBASIC.

Za další mezník v historii jazyka BASIC lze považovat léta 1987-1988, na jejichž pomezí vznikal velmi populární Visual Basic. Za současného trvání Visual Basicu vznikl Visual Basic for Application, který své použití nalezl v kancelářském balíku Microsoft Office. V roce 2001 byl světu představen Visual Basic .NET, který je považován za další významnou verzi tohoto úspěšného jazyka.

V souvislosti s Linuxem se dnes můžeme s jazykem BASIC aktivně setkat v kancelářském balíku OpenOffice.org nebo multiplatformním open-source kompilátoru FreeBASIC. A dále pak ve velmi úspěšném a pokročilém jazyku GAMBAS, kterému jsme se již podrobněji věnovali v únorovém čísle LinuxEXPRESu z roku 2005.

GAMBAS (Gambas Also Mean BASic) neboli do češtiny volně přeloženo „GAMBAS také znamená BASIC“, je jazykem a vývojovým prostředím, které z velké části vytváří Francouz Benoît Minisini.

Představit objektivně na několika málo řádcích syntaxi a základy jazyka BASIC v tak širokém spektru jeho verzí a modifikací je bohužel téměř nemožné, a tak si pouze řekněme, že zápis kódu je velmi jednoduchý a srozumitelný, jak ostatně bude vidět z uváděných příkladů. Z počátku se jednotlivé řádky jazyka číslovaly. Později se číslování vytratilo. Z řádkového a procedurálního jazyka pak BASIC došel i k objektovému přístupu.

Dle slov autora je GAMBAS svobodný vývojový nástroj založený na interpretru jazyka Basic s objektovým rozšířením tak, jak je tomu u Visual Basicu. S Gambasem můžete rychle navrhnout GUI své aplikace, využívat MySQL, nebo PostgreSQL databáze, řídit KDE aplikace s DCOP (Desktop COmmunication Protokol) a mnoho dalšího.

Zápis kódu v jazyce Basic si dnes demonstrujeme na dvou příkladech. První příklad reprezentuje zápis v klasickém řádkovém BASICu a na obrazovku vypíše již tradiční pozdrav Hello World! Druhý příklad ukazuje na výpočtu faktoriálu program zapsaný ve Visual Basicu.

Hello World!:
10 PRINT "Hello World!"

Faktoriál:

Factorial function
Public Function Factorial(ByVal Factor As Byte) As Variant
If Factor = 0 Then
Factorial = 1
Else
Factorial = Factor * Factorial(Factor - 1)
End If
Exit Function
End Function

Private Sub Form_Load()
MsgBox Factorial(3)
End Sub

Odkazy k BASICu:

FreeBASIC
Gambas
Příklady kódu Visual Basicu a Visual Basicu .NET

Článek vyšel původně v časopisu LinuxEXPRES. Autor článku Lukáš Faltýnek.

Článek je uveřejněn s GNU FDL licencí (anglicky).

You can skip to the end and leave a response. Pinging is currently not allowed.

12 komentářů k “BASIC – krátce z historie jazyka”

  1. mv napsal:

    Compile Error:

    Expected End Function

    Zase chyba :-)))

  2. mv napsal:

    …těším se na další pěkný článek od Kláry. Tentokrát tam může zahrnout i Borise a Hurriho, kteří se na odhalení chyby podíleli…

  3. boris napsal:

    mv: lufa ti určitě vysvětlí, že to chyba vlastně není, ale super optimalizace

  4. LuFa napsal:

    mv: Díky, chyba v kódu upravena.

    boris: ee, mv skládám díky ;-).

  5. hurri napsal:

    Hmmmmm, much better!

  6. Pepa napsal:

    Fakt dobré kometáře… nespletli jste si stráku? chytráci

  7. ty,ty,ty napsal:

    mám na tebe prosbu, jelikož jsem antitalent ne PC a podob., potřeboval bych od tebe pomoc s jazykem Basic.
    V jedny hře je úkol:
    en v tomto jazyce tak muze vzniknout podobne neprehledny „spagetti“ kod, jako je ten nasledujici – presto jsou v nem ukryty jednoznacne souradnice cache:

    01 GOTO 50
    02 B$=“program “
    03 C$=A$+B$
    04 PRINT C$
    05 RANDOMIZE TIMER
    06 R%=1
    08 R%=R%+INT(RND*10)
    10 REM
    12 GOTO 860
    14 A$=“random “
    16 B$=“number “
    18 C$=A$+B$
    20 PRINT C$
    22 GOTO 27
    24 REM
    26 REM
    27 PRINT R%
    28 GOTO 212
    30 REM
    50 A$=“This “
    60 GOTO 02
    210 REM
    212 A$=“and terminates “
    214 B$=“:-) !“
    216 C$=A$+B$
    218 PRINT C$
    220 END
    850 REM
    860 A$=“only “
    870 B$=“prints “
    880 C$=A$+B$
    890 PRINT C$
    900 GOTO 14

    a ja to nezvladnu. Tímto tě prosím o pomoc a neboj se, že z mé strany jde o nepoctivou hru.
    předem díky

    ty,ty,ty

  8. LuFa napsal:

    Ty, ty, ty: Týýý jo super. Můžeš prosím hodit odkaz i na stránku na geocaching.com. Díky. Večer si ten Basic kód přečtu a dám vědět.

  9. hurri napsal:

    ty,ty,ty:
    Mám to!
    49°10’38.894″N, 14°22’51.996″E

  10. hurri napsal:

    Jé, já se spletl. Je to tady:
    50°4’27.115″N, 17°9’30.561″E

  11. LuFa napsal:

    hurri: Díky, teď už mohu jen ověřovat :-).

  12. LuFa napsal:

    Tak a mám to:

    N 50° 02.860 E 14° 27.212

Napište prosím komentář

You must be logged in to post a comment.