...
Miltei kaikissa vähänkin monimutkaisimmissa laitteissa on toimintaa ohjaava logiikka, joka päättelee miten laitteen tulee toimia eri tilanteissa. Tätä logiikkaa sanotaan ohjelmaksi. Se on perättäisten ja haarautuvien toimintojen sarja, joka määrää laitteen käyttäytymisen. Laitteiden ohjaus voidaan totetuttaa toteuttaa näennäisesti monella eri tavalla, mutta taustalla on aina jonkin asteinen tietokone. Kun tietokone ei näy käyttäjälle puhutaan sulautetusta ohjauksesta.
Ohjelma jakaantuu tyypillisesti pääohjelmaan ja funktioihin (pääohjelmakin on funktio). Ohjelma alkaa aina pääohjelman alusta ja kun pääohjelma päättyy, päättyy myös koko ohjelma. Pääohjelmasta kutsutaan aliohjelmia eli funktioita. Tyypillisesti aliohjelmat tekevät kaiken työn ja pääohjelma pitää ohjelman käynnissä. Yksittäinen aliohjelma ratkaisee jonkin probleeman. Aliohjelman tulisi olla kooltaan kohtuullisen lyhyt, jotta se olisi ymmäretettävissäymmärretettävissä.
Suoritettavaa ohjelmaa kutsutaan prosessiksi. Yksinkertaisimmillaan tietokoneessa on yksi prosessi, joka ohjaa esimerkiksi auton ABS-jarruja. Useimmiten tietokoneessa on kuitenkin useita prosesseja yhtä aikaa käynnissä. Esimerkiksi käyttöjärjestelmä sisältää monta erillistä ohjelmaa eli prosessia. Periaatteellisia lähestymistapoja ohjelmointiin on kaksi, joista ensimmäinen on proseduraalinen ja toinen olioita käyttävä tapa. Proseduraalisessa, eli toiminnollisessa tavassa tieto ja funktiot on eroteltu toisistaan ja ohjelman suunnittelu lähtee tehtävistä, joita ohjelman tulee tehdä. Toinen vaihtoehto on ns. olio-ohjelmointi, johon palataan C++-kurssilla.
Ohjelmoinnin tarve on viime vuosina kasvanut räjähdysmäisesti. Syynä tähän on osaltaan pc:n tuleminen jokaisen työkaluksi sekä toisaalta sulautettujen järjestelmien yleistyminen esimerkiksi kodinkoneissa, autoissa, kännyköissä jne. Koneautomaatiossa vielä kymmenen vuotta siten riitti ohjelmoitavan logiikan ohjelmoinititaitoohjelmointitaito. Tänään logiikkaohjelmat siirtyvät yhä useammin osaksi tietokoneohjausta ja liittyvät hyvinkin monimutkaiseen tietojärjestelmään. Tämänkaltaisten sovellusten käyttöönotto ja ohjelmointi vaativat hyvää käyttöjärjestelmä- ja ohjelmointiosaamista.
...