BASIC

Historia

BASIC oli suosittu kieli etenkin 1980-luvulla, kun lähes jokaisessa kotimikrossa oli BASIC-tulkki joko sisäänrakennettuna tai oheisohjelmana.
BASICin suosio kotitietokoneissa on jäljitettävissä Stanfordin yliopiston lehtori Dennis Allisonin julkaisemaan Tiny BASIC -ohjelmointikielen määritelmään ja haasteeseen joka julkaistiin 1975 People's Computer Company -uutiskirjeessä. Harrastajat toteuttivat Tiny BASICin useille eri suorittimille ja tietokoneille ja julkaisivat ne lähdekoodeineen.
Useimmat suositut BASIC-versiot niin 8-bittisissä kuin kehittyneemmissäkin koneissa ovat Microsoftin kehittämiä ja polveutuvat Paul Allenin ja Bill Gatesin Altair 8800:lle vuonna 1975 kirjoittamasta Altair BASIC -tulkista, joka oli ensimmäinen Microsoftin julkaisema tietokoneohjelma. Esimerkiksi Commodoren PET ja Commodore 64 -koneissa käyttämä BASIC perustui Jack Tramielin 1970-luvulla Bill Gatesilta kertamaksulla ostamaan Microsoftin 6502-BASICiin.
Microsoftin BASIC oli kehittynyt ja sisälsi ominaisuuksia jotka eivät olleet itsestään selvyys: se osasi käsitellä liukulukuja, vaikka tuon ajan suorittimet eivät niitä suoraan tukeneet. Rakenteiseen ohjelmointiin on GOSUB-käsky joka hyppää aliohjelmaan ja palaa sieltä RETURN-käskyllä. Merkkijonot ovat objekteja joiden muisti vapautetaan automaattisesti. Tämän vuoksi Apple lisensoi Microsoftin BASICin Apple II+ -koneeseensa aiemman vain kokonaislukujen käsittelyyn pystyneen tulkkinsa sijaan.
MSX-kotitietokoneisiin tuli luonnollisesti Microsoft version 4.5 BASIC, joka sisälsi käskyt grafiikan ja musiikin tuottamiseen sekä alkeellisen poikkeusten hallinnan (ON ERROR GOTO).
Microsoft jatkoi BASIC:in kehittämistä eteenpäin. IBM PC -koneen mukana tuli Microsoftilta lisensoitu BASICA-tulkki, ja MS-DOSin mukana sen kanssa yhteensopiva GW-BASIC-versio.
Vuonna 1985 Microsoft julkaisi QuickBASIC-kääntäjän. Tässä vaiheessa rivinumeroiden pakollisesta käytöstä luovuttiin. Commodoren Amiga-koneiden AmigaOS 1.1–1.3:n mukana toimitettiin myös Microsoftin kehittämä AmigaBASIC. QuickBASICin riisuttu versio ilman kääntäjää toimitettiin viimein MS-DOS 5.0:n mukana nimellä QBasic.
Nykyään muita suosittuja BASIC-ohjelmointikieliä Microsoftin Visual Basicin lisäksi ovat alustariippumattomissa ympäristöissä tunnettu REALbasic sekä pelikehitykseen suunnatut CoolBasic, DarkBASIC ja BlitzBasic, joista jälkimmäisin julkaistiin jo Amigalle ja jota käytettiin mm. ensimmäisen Worms-pelin kehittämiseen.

Esimerkki

Esimerkki perinteisestä rivinumero-BASICista (toimii esimerkiksi useimpien 8-bittisten koneiden tulkeissa):
5 REM Tämä ohjelma arvuuttaa lukua10 PRINT "Arvaa luku";20 INPUT A30 IF A=42 THEN GOTO 5040 PRINT "Väärin" : GOTO 1050 PRINT "Oikein!"60 END
Vastaavan toiminnallisuuden saa useimmissa BASIC-tulkeissa myös yhdellä rivillä:
1INPUT"Arvaa luku";A:IFA=42THEN?"Oikein!"ELSE?"Väärin":GOTO1
Edellisen kaltainen kompakti ohjelmointityyli, jossa välilyöntejä ei käytetä, oli jopa suositeltavaa 80-luvulla niissä BASIC-tulkeissa joissa se oli mahdollista, sillä siten saatiin aikaan vähemmän muistitilaa vieviä ohjelmia. Myös kommentit (jotka alkoivat joko REM tai ' ) jätettiin yleensä pois samasta syystä. Perinteistä siistiä tyyliä välilyönteineen ja kommentteineen näki lähinnä aloittelijoiden ohjelmointioppaissa.

Kritiikki

Etenkin perinteisiä rivinumero-BASICeja on kritisoitu siitä, että niiden puutteelliset rakenteelliset ominaisuudet totuttavat aloittelevan ohjelmoijan kirjoittamaan niin sanottua spagettikoodia, jossa mielivaltaisiin paikkoihin sijoitettujen ohjelmanpalasten välillä hypitään GOTO-käskyillä. Vaikka nykyiset BASICit ovatkin rakenteellisilta ominaisuuksiltaan monipuolisempia, ei kielen huono maine ole vieläkään täysin hävinnyt.