Imperatiivinen ohjelmointi

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.


Lähteet

  1. https://www.computerhope.com/jargon/i/imp-programming.htm
  2. https://www.geeksforgeeks.org/introduction-of-programming-paradigms/
  3. https://www.tutorialspoint.com/fortran/index.htm

Jätä kommentti

Design a site like this with WordPress.com
Aloitus