Upload failed. Maybe wrong permissions?

User Tools

Site Tools



A BASIC nyelv történelme

Bevezető

Amikor a sorozat készült, a BASIC nyelv éppen húszéves volt; mire adásba ment, már huszonegy. Idén ötvenegy.
  1964-ben alkotta meg a Dartmouth egyetemen két matematikaprofesszor, John G. Kemény és Thomas Kurtz, azzal a céllal, hogy a számítógépet a matematikusok szűk körénél nagyobb felhasználótábor számára is használhatóvá tegyék. Az akkoriban létező programnyelveket nem tartották alkalmasnak erre. 1964. május elsején hajnali négy órakor futott le az első BASIC program az egyetem időosztásos rendszerű nagyszámítógépén.
  Huszonegy évvel később, a sorozat vetítése idején a BASIC az egyik legnépszerűbb programnyelv volt, a házi számítógépek világában pedig gyakorlatilag egyeduralkodó. A nyolcvanas évek végén, a házi számítógépek letűnésével népszerűsége csökkent, a vezetést fejlettebb nyelvek vették át, elsősorban a C és ennek származékai. A BASIC azonban mindmáig megvan és használják, új változatokat dolgoznak ki, nemcsak PC-re, hanem olyan fiatalabb platformokra is, mint a kétezres években népszerű Palm és a tízes évek új operációs rendszere, az Android.
  A BASIC rendkívüli jelentősége abban is áll, hogy szorosan kötődik a házi számítógépekhez, ezért része annak a retró-számítástechnika néven is ismert jelenségnek, amely napjainkban igen erős, a nyolcvanas évekbeli – vagyis a mai számítástechnikusok többségének gyerekkorát idéző – számítógépek felidézéséről, újbóli használatba vételéről szól.

Történeti áttekintés

A BASIC egész történelmére hatott az a körülmény, hogy a hatvanas évek közepén egy nagyszámítógépes rendszeren jött létre. Ennek következménye, hogy a képernyő nélküli, csak nyomtatóra dolgozó terminálok nyomán a képernyőre író utasításnak is PRINT, azaz „nyomtass” lett a neve, de ennek eredményeképpen lett a BASIC sorszámozott nyelv is: a dartmouthi rendszerben a sorszám segített elkülöníteni a BASIC rendszernek szóló utasítást az időosztásos rendszernek szóló parancstól. Ezek a parancsok kezdetben egyáltalán nem számítottak a nyelv részének, de a későbbi BASIC-ek örökölték őket. Ilyen parancs a NEW, a SAVE, a LOAD (ez eredetileg OLD volt) és a LIST.
  A sorozat vetítésének idején jelentek meg PC-re az első olyan BASIC-ek, amelyeknek modern szövegszerkesztőjük volt, és a sorszámok helyett egyszerűen a szövegben elfoglalt helyük határozta meg az utasítások végrehajtását. A házi számítógépek azonban kitartottak a sorszámoknál, még azok a típusok is, amelyeknek olyan fejlett BASIC-jük volt, ahol GOTO és GOSUB utasítások helyett sorszámokat nem használó, strukturált utasítások voltak.
  1991-ben jelent meg Windowsra, majd a következő évben DOS-ra is a Visual BASIC, az első objektumorientált BASIC. Az objektumorientált nyelvekben a végrehajtás sorrendje nem egyszerűen a programsorok sorrendjétől és a vezérlésátadó utasításoktól – ciklusoktól, elágazásoktól – függ. A program egy objektumokból álló világban dolgozik; ilyen objektumok lehetnek elsősorban a grafikus felhasználói felület rajzelemei, de egyéb dolgok is. Minden objektumhoz események tartoznak (például ha az egérrel rákattintanak, ha arrébb viszik, ha megváltoztatják a tartalmát stb.), és az eseményekhez saját, önálló programrészek tartozhatnak, amelyek az adott esemény bekövetkezésekor indulnak el, egymástól függetlenül. Így a program végrehajtása egyszerre több szálon is futhat. A profi programozók a kilencvenes évek eleje óta már jóformán csak objektumorientált nyelveket használnak; elsősorban nem BASIC-et, a nyelv háttérbe szorult.
  A BASIC-nek utódnyelvei is vannak, olyan modern nyelvek, amelyek kilógnak a BASIC fogalmának keretei közül (s a nevet sem használják), de vannak olyan tulajdonságaik, amelyeket a BASIC-től vettek át. Ilyen például a windowsos AutoIt nyelv, amely elüt a BASIC-től például olyan dolgokban, hogy minden változót dollárjellel jelöl, s azt nem a név mögé, hanem elé teszi – ugyanakkor számos utasítás, például a FOR és a DIM a BASIC-ből vett módon írandó.

Nyelvjárások

A BASIC-nek az idők folyamán nagyszámú nyelvjárása alakult ki (a Wikipédia listája háromszáznál is többet sorol fel), amelyeket többféleképpen csoportosíthatunk.
  A fentiek alapján megkülönböztethetünk sorszámozott, sorszámozatlan és objektumorientált BASIC-eket.
  Beszélhetünk értelmezős BASIC-ekről, ahol a nyelvet működtető program minden egyes utasítást annak minden egyes végrehajtásakor végigolvasott és elvégezte az utasításban foglalt műveleteket, illetve fordítós BASIC-ekről, amelyeknél a gép a programot gépi kódra fordította, s ezt a gépi kódú programot futtatta le; ez utóbbiaknál a gépi kódú program további felhasználásához már nem kell a BASIC nyelvi környezet. A sorozatban látott gépeken értelmezős BASIC-ek futottak.
  Valamint megkülönböztethetünk beépített BASIC-eket (ilyenek voltak a sorozatban látott gépeken, a nyelv értelmezőjét ROM chip tartalmazta), BASIC-bővítőket (ezek egy-egy beépített BASIC-et láttak el további képességekkel), illetve külön betölthető nyelveket, amelyek betöltése nélkül a gép egyáltalán nem érti a BASIC nyelvet.
  Továbbá csoportosíthatjuk a nyelveket strukturáltsági szintjük, a grafikai, a zenei vagy a matematikai képességek szerint stb.
  A következőkben néhány szót szólok egyes emlékezetesebb nyelvjárásokról, a teljesség igénye nélkül. Magukkal a gépekkel e helyütt nem foglalkozom.

Altair BASIC

Az Altair 8880-as gépre írt, 1975-ben kiadott nyelvet még külön kellett betölteni mágnesszalagról vagy lyukszalagról. Ahhoz, hogy ez lehetséges legyen, előzőleg egy betöltőprogramot kellett a gépbe juttatni kétállású kapcsolók segítségével. A nyelv a gép 4 vagy 8 kilobyte memóriájából olyan sokat felhasznált, hogy betöltés után felkínálta egyes ritkábban használt függvények (SIN, SQR) törlését a nyelvből.

BBC Microcomputer

1984-es megjelenése ellenére igen fejlett, strukturált, grafikai képességekkel is ellátott nyelv. Egyik különlegessége, hogy a BASIC program részeként assembly programot is írhatunk. (Az assembly a gépi kód emberközelivé tételére használt alacsony szintű nyelv, ahol egy utasítás egy gépi kódú utasításnak felel meg.) Ez jelentősen eltér a korabeli gyakorlattól, ahol a gépi kódú betéteket DATA utasításokban kellett elhelyezni számokként, s onnan kiolvasva POKE-olni a memóriába.

Commodore BASIC 2.0

A VIC–20 és a Commodore 64 nyelve. Az a tény, hogy a 64-es elődjének nyelvét változatlan állapotban kapta, miközben grafikai, hangbeli és perifériakezelési képességei sokszorosan meghaladták a VIC-ét, számtalan programozót ösztönzött bővítők írására. Az ezekben írt programok természetesen nem működtek az adott bővítő előzetes betöltése nélkül. Némelyik bővítő azonban cartridge-ben (műanyag tokba zárt áramköri lapon, amit a gépbe kellett dugni) volt kapható, így a programozó akkor sem mellékelhette programjához a szükséges bővítést, ha a szerzői jogi korlátok nem zavarták (s akkoriban keveseket zavartak), a program minden egyes felhasználója kénytelen volt megvenni a cartridge-et.

Commodore BASIC 3.5

A Commodore 16-os, Plus/4-es és 116-os gépcsalád nyelve. A cég itt már beépítette azokat a grafikai és hangkezelő utasításokat, amik a 64-esből kimaradtak (pontosabban egy részüket, mert a hardver képességei nem azonosak), és egy-két struktúrakezelő utasítást is kapott.

Commodore BASIC 7.0

A Commodore 128-as nyelve már tartalmazta a 64-es hardverképességeinek támogatását, még beépített sprite-tervezőt is kapott.

IS-BASIC

Az Enterprise számítógép nyelve, magasan strukturált, fejlett BASIC, talán a legfejlettebb a nyolcbites házi számítógépek világában. Különlegessége, hogy a gép nagyszámú tulajdonságának beállításához mind külön utasítás szolgál.

Quick BASIC

A legelterjedtebb PC-s BASIC a kilencvenes évek első felében, a DOS egyes verzióihoz is mellékelték. Sorszámozatlan, szövegszerkesztős nyelvjárás. Érdekessége, hogy a rendszer egyszerre mindig csak egy-egy szubrutin (SUB és END SUB utasítások közötti rész), függvény (FUNCTION és END FUNCTION között) vagy a főprogram szövegét mutatta, egy listából lehetett kiválasztani, hogy melyikre vagyunk kíváncsiak.

Simons’ BASIC

(A szakirodalomban sokszor helytelenül Simon’s BASIC.) A Commodore 64-eshez megjelent BASIC-bővítések közül a legnépszerűbb, száznál több új kulcsszóval tette hozzáférhetővé a gép képességeit, lehetőséget nyújtott strukturált programozásra, különleges képernyőkezelő utasításai is voltak. A tizenhat éves David Simons alkotása, 1983-ban adta ki a Commodore cég.

ZX81

Talán az egyetlen BASIC nyelvjárás, ahol az írható program maximális hosszát teljes pontossággal meg lehet határozni, a rendelkezésre álló memória méretétől függetlenül. A nyelv ugyanis csak 1-től 9999-ig fogadott el sorszámokat, és az utasításelválasztó kettőspontot nem ismerte, egy programsorba csak egy utasítást lehetett írni. Így tehát egyetlen program sem lehetett hosszabb 9999 utasításnál.
  A ZX81 (és a Spectrum) különlegessége, hogy a függvények argumentumát nem kell zárójelbe tenni, ha az csak egyetlen szám vagy változó. Például PRINT SQR 16-1 eredménye 3, vagyis PRINT SQR (16)-1 lesz.

ZX Spectrum

A gép nyelve a korabeli BASIC-ekhez képest rendkívül hajlékony, tele apró, praktikus dolgokkal. Például a kiírások, rajzolások színét meghatározó INK, a háttér színét megadó PAPER, az inverz kiírást jelentő INVERSE, a fényességet jelző BRIGHT és a ráírást irányító OVER mind használható önálló utasításként, a továbbiakra vonatkozóan, de kiíró vagy rajzoló utasítások paramétereként is, s ekkor csak az adott utasítás végrehajtására vonatkoznak.