Oppimateriaalin copyright © 2007 Arto Wikla.
Tämän oppimateriaalin käyttö on sallittu vain yksityishenkilöille
opiskelutarkoituksissa. Materiaalin käyttö muihin tarkoituksiin,
kuten kaupallisilla tai muilla kursseilla, on kielletty.
(Muutettu viimeksi 24.1.2007)
Arvojen käyttötapojen luokittelua
Yksi alue, jossa ohjelmointikielet eroavat toisistaan, on erilaisten arvojen
käyttötilanteiden mahdollisuudet. Useimmissa kielissä yksinkertaisen perustyypin
arvoja - esimerkiksi kokonaislukuja - voidaan (1) sijoittaa muuttujiin,
(2) antaa parametreina ja (3) saada aliohjelman paluuarvona. Läheskään kaikissa
kielissä aliohjelmaa ei voida antaa parametrina. Hyvin harvoissa jonkin
ohjelmakohdan osoite voidaan antaa parametrina, jne., jne.
Esimerkkejä:
- Algolissa osoitteita voi antaa parametreinä. Jos aliohjelma hyppää (goto)
muodolliseen osoiteparametriin, palataan todellisen osoitteen viittausympäristöön.
Aiheuttaa melkoista aktovaatiotietuepinon päivittämistä, ..., "bad goto".
- Aliohjelmia voidaan antaa parametrina monissa algoritmisissakin
("proseduraalisissa") kielissä, mutta ei esimerkiksi Javassa (aidosti).
Aliohjelmat parametreina ovat tietenkin "jokapäiväistä leipää"
funktionaalisissa kielissä.
- Aliohjelma paluuarvona kuuluu funktionaalisten kielten
peruskalustoon sekin, mutta on mahdollista myös esim. kielissä
C#, Perl, Python, ..., ja jossakin mielessä (?) Fortran, Modula-2,
Modula-3, C ja C++ (funktiopointterit?)
Itse asiassa Javassakin saa temppuiltua tällaisen käyttämällä
"yksiaksessorisia luokkia", jotka toteuttavat saman rajapintaluokan...
- ...
Uuteen kieleen tutustuttaessa näihinkin asioihin on syytä kiinnittää huomiota!
Takaisin sisältösivulle.