Ohjelma ja ohjelmointikieli

Tietokone leipomaan kakkua?

Kuten olet jo aiemmin huomannut, ohjelma on tekstiä, joka koostuu monista peräkkäisistä yksinkertaisista käskyistä. Yksinkertaisia käskyjä suorittamalla voidaan tehdä monimutkaisiakin asioita. Tähän asti olet nähnyt pieniä arkielämän ohjelmia (esim. kahvinkeitto, kakun leipominen), joissa käskyt on kirjoitettu suomeksi. Entä jos haluaisit saada tietokoneen leipomaan kakun oman ohjeesi mukaan?

Tietokone ei arvatenkaan ymmärrä suomea. Se kieli, jota tietokone ymmärtää, on todella vaikeaa ja siksi sitä kieltä ei juuri kukaan ihminen lue eikä kirjoita. Jos normaalielämässä haluat lähettää kakkureseptin kiinalaiselle ystävällesi, varmaankin viet reseptisi ensin ihmiselle, joka osaa kiinaa ja voi kääntää reseptisi suomesta kiinaksi. Sama ajatus toimii myös tietokoneen tapauksessa.

Kirjoittaessasi ohjelmaa tietokoneelle, voit ajatella kirjoittavasi henkilölle, joka osaa kääntää ohjelmasi tekstin tietokoneen ymmärtämälle kielelle. Tämä henkilö ei kuitenkaan osaa hyvin suomenkieltä ja koko sen laajaa kielioppia, joten voit käyttää vain niitä muutamia harvoja sanoja ja sijamuotoja, joita hän osaa. Joitakin sanoja joudut kirjoittamaan jopa englanniksi. Tämä käskymuotoinen ja varsin rajoittunut kieli on ohjelmointikieli.

Kakkureseptti kiinalaiselle

Ohjelmointikielellä on kielioppi, kuten muillakin kielillä. Se määrää hyvin tiukasti, mitä sanoja ja merkkejä on käytettävissä ja miten niitä voidaan käyttää. Ohjelmointikielen tapauksessa kutsumme kielioppisääntöjä kielen syntaksiksi. Kun ohjelma on täsmälleen kieliopin mukainen, sanotaan että ohjelma on syntaktisesti oikein. Vain syntaktisesti oikea ohjelma voidaan kääntää ja suorittaa tietokoneella.

Kuten useita maailman kieliä, ohjelmointikieliäkin voi kirjoittaa millä tahansa tekstinkäsittelyohjelmalla. Tosin on selvää, että tietyt tekstinkäsittelyohjelmat sopivat tarkoitukseen paremmin kuin toiset. Usein miten ohjelmointiin hyvin soveltuvat tekstinkäsittelyohjelmat ovat yksinkertaisia, eivätkä ne sisällä mitään tekstin tarkempia muotoilumahdollisuuksia (lihavointeja, eri fontteja, tekstin värejä jne.).