Pekka Alaluukas /C++ ohjelmointi
Olio-ohjelmointi
Vaihtoehdot olio-ohjelmoinnille

Olio-ohjelmointi (object-oriented programming, OOP) on yksi ohjelmointiparadigma, mutta on olemassa useita muitakin paradigmoja, jotka tarjoavat vaihtoehtoisia tapoja lähestyä ohjelmistokehitystä. Tässä joitakin yleisiä vaihtoehtoja olio-ohjelmoinnille:

Kannattaa kuitenkin huomata, että monilla ohjelmointikielillä on piirteitä, joiden perusteella ne voidaan sijoittaa useamman allamainitun kategorian alle. Esimerkiksi C# on alla laitettu kategoriaan Tapahtumapohjainen ohjelmointi. C# on kuitenkin myös olio-ohjelmointi kieli.

1. Toiminnallinen ohjelmointi (Functional Programming, FP)

Perustuu matemaattisiin funktioihin, joissa korostetaan tilattomuutta ja immuuttisuutta (muuttumattomia tiloja).

Esimerkkejä toiminnallisista kielistä: Haskell, Lisp, Erlang, Clojure, F#.

2. Proseduraalinen ohjelmointi (Procedural Programming)

Ohjelmat jaetaan sarjaksi ohjeita tai proseduureja (funktioita tai aliohjelmia), jotka suorittavat tehtäviä yksi kerrallaan.

Esimerkkejä: C, Pascal, Python (Python tukee myös muita paradigmoja, mutta se on vahvasti proseduraalinen).

3. Looginen ohjelmointi (Logic Programming)

Perustuu logiikkaan ja predikaatteihin. Ohjelmat muodostetaan loogisista väitteistä ja säännöistä, ja ohjelmointikieli päättää, kuinka ongelma ratkaistaan.

Esimerkkejä: Prolog, Datalog.

4. Deklaratiivinen ohjelmointi (Declarative Programming)

Keskittyy siihen, mitä ohjelman tulisi tehdä, eikä siihen, miten se tehdään. Ohjelmoija kuvaa lopputuloksen, ja järjestelmä vastaa toteutuksesta.

Esimerkkejä: SQL, HTML, CSS.

5. Tapahtumapohjainen ohjelmointi (Event-Driven Programming)

Ohjelman suoritus määräytyy tapahtumien perusteella, jotka voivat olla käyttäjän syötteitä, laitteistotapahtumia tai viestejä muista ohjelmista.

Esimerkkejä: JavaScript (selaimessa), C# (Windows Forms).

6. Aihepohjainen ohjelmointi (Aspect-Oriented Programming, AOP)

Tässä lähestymistavassa ohjelman toiminnallisuus jaetaan eri "aiheisiin" (aspekteihin), kuten lokitukseen tai virheenkäsittelyyn, jotka sitten yhdistetään ohjelmaan ilman, että niitä tarvitsee sisällyttää varsinaisiin liiketoimintalogiikkaa sisältäviin luokkiin tai funktioihin.

Esimerkkejä: AspectJ (Java-kielen laajennus).

7. Tietovirtapohjainen ohjelmointi (Dataflow Programming)

Ohjelma esitetään solmuina ja reitteinä, jotka kuvaavat tietovirtoja. Ohjelman suoritus riippuu tietovirtojen reitittämisestä.

Esimerkkejä: LabVIEW, VHDL.

8. Erittelypohjainen ohjelmointi (Specification-Based Programming)

Keskittyy ohjelman käyttäytymisen ja ominaisuuksien tarkkaan määrittelyyn ennen toteutusta. Tämä voi auttaa erityisesti kriittisten järjestelmien kehittämisessä.

Esimerkkejä: TLA+, Z-kieli.



Toggle Menu