BASIC
BASIC (lyhenne sanoista Beginner's All-purpose Symbolic Instruction Code[2]) 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 | |
---|---|
Paradigma | epärakenteellinen, proseduraalinen |
Tyypitys | staattinen |
Muistinhallinta | automaattinen |
Julkaistu | 1964 |
Kehittäjä | John George Kemeny, Thomas Eugene Kurtz |
Merkittävimmät toteutukset | Visual Basic, REALbasic, QuickBASIC, Gambas |
Vaikutteet | FORTRAN II |
Vaikuttanut | Visual Basic.NET |
Murteet | Useita |
Käyttöjärjestelmä | Useita |
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ä.[3]
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.[4] 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 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 tilalle. MSX-kotitietokoneisiin tuli luonnollisesti Microsoftin BASIC-versio 4.5, joka sisälsi käskyt grafiikan ja musiikin tuottamiseen sekä alkeellisen poikkeusten hallinnan (ON ERROR GOTO
).
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 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.
Katso myös
- FreeBASIC
- PBASIC
- Gambas – avoimen koodin kilpailija Visual Basicille
Lähteet
- Harsu, Maarit: Ohjelmointikielet – Periaatteet, käsitteet, valintaperusteet, s. 20. Helsinki: Talentum, 2005. ISBN 952-14-0981-9.
- Raymond, Eric: The Jargon File (WWW) catb.org. Viitattu 27.2.2013. englanniksi
- Vaughan-Nichols, Steven: Mono brings Visual Basic programs to Linux (WWW) linuxfordevices.com. 20.2.2007. Viitattu 27.2.2013. englanniksi
- Randy Alfred: April 4, 1975: Bill Gates, Paul Allen Form a Little Partnership 4.4.2008. Wired. Viitattu 235.2019. (englanniksi)
Aiheesta muualla
Kääntäjiä
- CoolBasic
- REALbasic (Arkistoitu – Internet Archive)
- Blitz Basic (Arkistoitu – Internet Archive)
- DarkBASIC (Arkistoitu – Internet Archive)
- Microsoft Visual Basic (Arkistoitu – Internet Archive)
- Gambas