Ohjelmoinnin perusteet, olio-ohjelmointi 1, olio-ohjelmointi 2, olio-ohjelmointi N, valaistuminen. Tällä tavoin kuvittelin ohjelmointiosaamisen kasvavan ajan myötä, kun vielä olin kirjoittamassa ensimmäisiä ohjelmiani koulussa. Alussa toki on hyvä opetella kävelemään yhdessä ympäristössä, mutta jossakin vaiheessa kannattaa myös pistäytyä ulkona. Olen jo jonkin verran törmännyt muihin ohjelmointiparadigmoihin, eli – lyhyesti – yleisiin tapoihin muotoilla koodin rakenne, mutta päätin vihdoinkin selvittää kunnolla, mitä kaikkia niitä onkaan. (Niitä olikin yllättävän paljon).
Tässä postauksessani sukellan imperatiivisen ohjelmoinnin (imperative programming) maailmaan, koska juurista on hyvä lähteä liikkeelle. Kokeilen teemaan liittyen hieman Fortrania, joka on melkoinen reliikki kaikkiin muihin käyttämiini ohjelmointikieliin, mutta silti ilmeisesti suosittu tietyissä piireissä.
Mitä on imperatiivinen ohjelmointi?
Lyhyesti imperatiivinen ohjelmointi on tarkkojen ohjeiden antamista siitä, miten ohjelma kuuluu suorittaa. Jos on ollut hereillä äidinkielen tunnilla, saattaa muistaa, että imperatiivi tarkoittaa käskymuotoa. Tyypillinen arkipäivän esimerkki on ruuanlaittoreseptit: Sekoita kananmunat ja vehnäjauhot, lisää joukkoon sokeri, ja niin edelleen.
! Määritellään muuttujat
! "Kakku on 40 merkkiä pitkä jono merkkejä"
character (len = 40) :: kakku
character (len = 10) :: ainesosa1
character (len = 10) :: ainesosa2
! Ohjelmalogiikka
ainesosa1 = "mansikka"
ainesosa2 = "jäätelö"
kakku = ainesosa1//"-"//ainesosa2//"-kakku"
! Huomaa kuinka aiemmin varattiin paikka muistissa, ja nyt siihen kyseiseen paikkaan asetetaan arvo.
! Imperatiiviselle ohjelmoinnille on tyypillistä näyttää: Tähän asetetaan tämä.
! Tulostetaan lopputulos
print *, kakku
Tämä on tietysti ohjelmointiin luonnollinen tapa, kun tietokoneen prosessorin komennot toimivat imperatiivisesti. Imperatiivisessa ohjelmoinnissa siis annetaan järjestyksessä suoritettavia komentoja, jotka sitten muuttavat ohjelman tilaa. Sille tyypillisiä ominaisuuksia ovat toistorakenteet (erilaiset loopit), ehtolauseet(if-lauseet) ja poikkeukset.
! Do looppi!
! Kierretään viisi kierrosta ja kirjataan kierrosten lukumäärä
do n = 1, 5
kierroksia = kierroksia + 1
print *, kierroksia
end do
Imperatiivinen ohjelma voidaan jakaa aliohjelmiin, mutta toiminta periaate ei muutu. Tästä hyvin tyypillinen esimerkki on proseduraalinen ohjelmointi (procedural programming). Vastakohtana imperatiiviselle ohjelmoinnille puolestaan on deklaratiivinen ohjelmointi (declarative programming), jossa keskitytään enemmän kysymykseen ”mitä” kuin ”miten”.
Siinä imperatiivinen ohjelmointi lyhyesti tältä tasolta katsottuna. Mikäli asia kiinnostaa enemmän, kurkkaa pari lähdettä, joita käytin tätä kirjoittaessa.