Tapahtumat

Kun kirjaudut sisään näet tässä ilmoitukset sinua kiinnostavista asioista.

Kirjaudu sisään

Miten tietokonetta ohjelmoidaan?

Vierailija
22.01.2006 |

Mitä se tarkoittaa?

Kommentit (1)

Vierailija
1/1 |
22.01.2006 |
Näytä aiemmat lainaukset

Mitä on ohjelmointi

Tämän tekstin tarkoitus on selittää millaista on tietokoneen ohjelmointi. Teksti on suunnattu ihmisille, joilla ei ole tietoa tietokoneiden toimintaperiaatteista.

Monet naiset osaavat sellaista mitä tämän kirjoittaja ei, kuten esimerkiksi leipoa kakkuja. Karkeasti yksinkertaistettuna leipomistapahtumassa on neljä osaa:

jauhot, maito yms.

nainen

lopputuloksena oleva kakku

kakkuresepti

Olennainen on viimeinen kohta: kakkuresepti ohjaa kaikkea toimintaa. Reseptiä vaihtamalla samoistakin lähtöaineista saadaan erilainen kakku. Tietokoneen toiminta voidaan kuvata samaan tapaan:

lähtötiedot, esimerkiksi suorakulmion sivujen pituudet

tietokone

lopputulos, vaikkapa suorakulmion ala

tietokoneohjelma.

Tässä toimintaa ohjaa tietokoneohjelma. Ohjelmaa vaihtamalla voitaisiin samoista tiedoista laskea esimerkiksi suorakulmion piirin pituus.

Tietokoneohjelmalla ja kakkureseptillä on kuitenkin eräs tärkeä ero: leipuri ymmärtää mitä on tekemässä, tietokone ei. Jos kakkureseptissä lukee " sekoita teelusikallinen vehnäjauhoja ja kolme desilitraa leivinjauhetta" , leipoja varmaankin huomaa jotain olevan vialla. Paremmin tietokoneohjelman toimintaa kuvaa tilanne jossa leipoja ei lainkaan tiedä mitä lähtöaineet ovat ja mikä on haluttu lopputulos. Näin ohje voisi olla " sekoita 2 dl jauhetta A ja 3 dl jauhetta B" . Tietokone toimii juuri näin - se ei koskaan kysy miksi haluat jotain tehdä, se vain suorittaa antamasi käskyt järjestyksessä.

Tietokone on periaatteessa vain joukko peräkkäisiä muistipaikkoja, joihin voidaan tallentaa jokin luku, ja suoritin, joka muuttaa näiden muistipaikkojen sisältöä tietokoneohjelman mukaan. Erilaiset suorittimet - ja näin siis erilaiset tietokoneet - ymmärtämät erilaisia käskyjä. Kuitenkin käskyt ovat aina hyvin yksinkertaisia, esimerkiksi

nollaa muistipaikka 100

nollaa muistipaikka 1

lisää muistipaikkaan 100 luku, jonka saat muistipaikasta 200+muistipaikan 1 sisältö

lisää muistipaikan 1 sisältöä yhdellä

jos muistipaikan 1 sisältö ei ole viisi, palaa kohtaan 3

Tällainen ohjelma laskisi muistipaikkaan 100 muistipaikkojen 200..204 sisältöjen summan. Tätä kutsutaan konekieleksi.

Tietokoneen ohjelmointi tällä tasolla on aivan mahdollista. Nopeaa se ei kuitenkaan ole, ja ohjelman toiminnan ymmärtäminen on hankalaa. Siksi on kehitetty erilaisia korkeamman tason ohjelmointikieliä, joissa ohjeet voidaan antaa joidenkin englanninkielisten sanojen ja itse nimettyjen tunnusten avulla, esimerkiksi tähän tapaan:

VAR luvut: ARRAY[1..5] OF INTEGER;

VAR i: INTEGER;

VAR summa: INTEGER;

BEGIN

summa := 0;

FOR i := 1 TO 5 DO

BEGIN

summa := summa+luvut

;

END;

END;

Tällainen ohjelma täytyy ennen käyttöä kääntää ylempänä kuvattuun muotoon, jotta se voidaan suorittaa tietokoneessa. Käännös voidaan joko tehdä kerralla koko ohjelmalle tai kääntää ja suorittaa rivi kerrallaan. Ensinmainitussa tapauksessa puhutaan kääntämisestä, viimeksimainittua kutsutaan tulkkaukseksi - yhteys vieraan kielen kääntämiseen ja tulkkaamiseen on ilmeinen. Kääntämistä voidaan verrata siihen, että kakkureseptin " Tee kermavaahtoa" muutetaan muotoon " Ota kermapurkki jääkaapista - Avaa kermapurkki - Ota kulho kaapista - Kaada kerma kulhoon..."

Jokaisella tietokonetyypillä on oma konekielensä, joten konekieliohjelmat joudutaan kirjoittamaan kaikille koneille erikseen. Samasta korkean tason kielellä kirjoitetusta ohjelmasta voidaan tarvittaessa kääntää eri versioita eri koneita varten. Tarvitaan ainoastaan kyseisen kielen kääntäjä (tai tulkki) juuri tälle tietokoneelle, ja kaikki kyseisellä kielellä kirjoitetut ohjelmat ovat saatavissa. Näin ainakin periaatteessa, käytännössä esimerkiksi PC:lle tehtyä Windows95-ohjelmaa ei kuitenkaan aivan kivuttomasti voi siirtää Macintosh-koneisiin.

Ohjelmointikieliä on erityyppisiä, mutta perusidea on aina sama: jaa ongelma pienempiin osiin. Esimerkiksi synttärikutsujen " ohjelmassa" voisi olla

1. Keitä kahvia

2. Tee täytekakku

josta kohta 2 jaettaisiin tarkemmin

2.1 tee kakkupohja

2.2 täytä kakkupohja

ja josta voitaisiin edelleen jatkaa

2.2.1 halkaise kakkupohja

2.2.2 laita väliin mansikkahilloa

2.2.3 laita päälle kermavaahtoa

:)

Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla

Kirjoita seuraavat numerot peräkkäin: viisi kolme kahdeksan