BASIC

BASIC (lyhenne sanoista Beginner's All-purpose Symbolic Instruction Code) on ohjelmointikieli, joka kehitettiin alkujaan Dartmouth Collegessa vuonna 1964 ohjelmoinnin alkeiden opetukseen. Siihen aikaan ohjelmat täytyi usein ohjelmoida itse, ja BASIC suunniteltiin sellaiseksi, että sen voisi oppia ilman matemaattis-luonnontieteellistä taustaa. Kieli oli epärakenteellinen, mutta myöhemmät yleisesti käytetyt murteet ovat tehneet kielestä rakenteellisen ja proseduraalisen sekä lisänneet olio-ohjelmoinnin ominaisuuksia.
BASIC on säilyttänyt suosionsa useiden eri murteiden muodossa ja vaikuttanut uudempiin ohjelmointikieliin kuten Microsoftin Visual Basiciin ja sen .NET-versioon. Vuonna 2006 59 % .NET:in käyttäjistä ohjelmoi vain Visual Basic.NETillä.
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ä (myöhemmin Dr. Dobb’s Journal). 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äänselvyys: se osasi käsitellä liukulukuja, vaikka tuon ajan suorittimet eivät niitä suoraan tukeneet. Rakenteiseen ohjelmointiin on codice_1-käsky, joka hyppää aliohjelmaan ja palaa sieltä codice_2-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 tilalle. MSX-kotitietokoneisiin tuli luonnollisesti Microsoftin BASIC-versio 4.5, joka sisälsi käskyt grafiikan ja musiikin tuottamiseen sekä alkeellisen poikkeusten hallinnan (codice_3).
Microsoft jatkoi BASIC:in kehittämistä. 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-versioiden 1.1–1.3 mukana toimitettiin myös Microsoftin kehittämä AmigaBASIC. QuickBASICin riisuttu versio ilman kääntäjää tuli 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 lukua
10 PRINT "Arvaa luku";
20 INPUT A
30 IF A=42 THEN GOTO 50
40 PRINT "Väärin" : GOTO 10
50 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
Jälkimmäisen esimerkin kaltainen kompakti ohjelmointityyli, jossa välilyöntejä ei käytetä, oli jopa suositeltavaa 80-luvulla niissä BASIC-tulkeissa, joissa se oli mahdollista, sillä siten ohjelmat veivät vähemmän muistia. Myös kommentit (jotka alkoivat joko codice_4 tai codice_5) 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 codice_6-käskyillä. Vaikka nykyiset BASICit ovatkin rakenteellisilta ominaisuuksiltaan monipuolisempia, ei kielen huono maine ole vieläkään täysin hävinnyt.