Prev Next Up Title Contents Index

Oliopohjaiset ohjelmointikielet

Ensimmäinen oliopohjainen ohjelmointikieli oli Simula, joka kehitettiin Algolin laajennuksena jo vuonna 1967. Siihen kuuluivat tuolloin kaikki merkittävät olio- ohjelmoinnin piirteet kuten oliot, luokat, perintä ja virtuaaliset metodit. Kehittymätön kääntäjien toteutustekniikka ja puutteellinen ymmärtämys ohjelmointikielten syntaksin ja semantiikan suunnittelusta tekivät kuitenkin Simulasta tehottoman yleiskielenä. Tärkein este Simulan leviämiselle lienee kuitenkin ollut se, ettei sitä keksitty USA:ssa. Smalltalk on ehkä tunnetuin puhdas oliokieli, mutta sen leviämistä on rajoittanut puhtaan paradigman eksoottisuus, tulkkaavan ympäristön tehottomuus ja vaikeudet integroida Smalltalk-ympäristö muihin järjestelmiin. Lisp-järjestelmien päälle on tehty useita oliolaajennuksia kuten Lisp Flavours, LOOPS, ja CLOS. Uudempia oliokieliä ovat mm. C++ ja Eiffel.

Usein kuulee väittelyä siitä, onko jokin kieli 'oikea' oliokieli vai ei. Esimerkiksi C++ on hybridikieli, jossa on C-kielestä perittyinä proseduraalisen ja funktionaalisen kielen piirteet. Eräille puristeille tämä on liikaa. Toiset taas väittävät, että C++-kielessä ei ole tarpeeksi ominaisuuksia - esimerkiksi ajonaikaista tyypin tunnistusta (on lisätty ANSI 2.0 standardi -ehdotukseen). Merkittävin oliokielen tunnusmerkki on kuitenkin se, että sillä voi suoraan toteuttaa olioita. Muut piirteet, kuten perintä, polymorfisuus, virtuaaliset metodit tai ajonaikainen tyypin tunnistus ovat mukavia ja käyttökelpoisia lisäpiirteitä.

Mainittakoon, että oliokielet eivät sinänsä tuo ohjelmointiin mitään sellaista lisää, mitä ei voisi toteuttaa millä tahansa muulla kielellä - vaikkapa Turingin koneella - enemmän tai vähemmän hankalasti. Olio- ohjelmointia voi siten harrastaa ohjelmointikonventiona vaikkapa esimerkiksi Ada-, Assebler, C-, FORTRAN, Pascal tai Prolog -kielillä.


Prev Next Up Title Contents Index