Ohjelma on tietyn toiminnan (yksiselitteinen) kuvaus. Perinteinen esimerkki tästä on resepti: reseptit ovat ohjelmia siinä mielessä, että ne ovat tietyn toiminnan, so. jonkin ruoan tai juoman valmistuksen, kuvauksia:
Jäniksen keittäminen:
Ohjelma on passiivinen, jossain mielessä teoreettinen entiteetti, kunnes se suoritetaan (suorittaminen eli ajaminen). Jotta ohjelman voisi suorittaa, pitää olla joku tai jokin, joka sen suorittaa. Reseptiä suorittaa tyypillisesti ihminen; tietokoneohjelmaan suorittaa tyypillisesti tietokone tai tarkemmin sanoen jokin ohjelmointikielen toteutus.
Mitä muuta eroa sitten on reseptillä ja tietokoneohjelmalla? Melkein kaikki erot johtuvat juuri siitä, että niillä on eri suorittaja. Tietokoneet ja tietokoneohjelmat ovat täydellisiä pällejä idiootteja. Niinpä ohjelmointikielet ovat formaaleja kieliä (formaalinen kieli), joiden primitiivit ovat perin yksinkertaisia. Yllä oleva resepti sisältää monen monta asiaa, joita yksikään tuntemani ohjelmointikieli ei salli:
Jos alamme muuntaa yllä olevaa reseptiä joksikin, joka muistuttaa todellista python-ohjelmaa, saamme jotain tällaista:
def jäniksen_keittäminen(): j = uusi_jänis() nylje(j) keitä(j) return j # tällä ei ole mitään tekemistä keitinveden kanssa
Tämä kuitenkin olettaa, että me olemme (tai joku muu on) jo toteuttanut aliohjelmat "uusi_jänis", "nylje" ja "keitä".
(takaisin ohjelmoinnin käsitteet-sivulle)