Imperatiivisten korkean tason ohjelmointikielten sukupuu - Rintamäki, Timo (My University, 2024)
Suosituimmat käytössä olevat korkean tason ohjelmointikielet noudattavat imperatiivista paradigmaa. Imperatiivisia ohjelmointikieliä on vuosien varrella kehitetty sekä uusia luoden että vanhoja päivittäen. Uudet ohjelmointikielet eivät kuitenkaan ilmesty tyhjästä, vaan ne perustuvat osittain tai kokonaan aikaisemmin julkaistuihin ohjelmointikieliin. Päällepäin ei ole aina ilmiselvää, mihin muihin ohjelmointikieliin jokin tietty ohjelmointikieli perustuu. Tässä tutkielmassa tarkastelun kohteena on valikoitujen imperatiivisten ohjelmointikielten sukulaissuhteet, jotka voidaan päätellä niiden kehityksessä inspiraationa toimineista ohjelmointikielistä. Lisäksi tarkastelussa ovat syyt ohjelmointikielten suurelle lukumäärälle. Asiaa lähestytään kirjallisuuskatsauksena ohjelmointikielten varhaisiin dokumentaatioihin sekä kyseisten ohjelmointikielten kehittäjien kirjoittamiin artikkeleihin ja heistä tehtyihin haastatteluihin. Selvityksen perusteella ohjelmointikielille muodostetaan sukupuu, josta on nähtävissä olennaisimmat yhteydet ohjelmointikielten välillä. Tutkielmassa esiintyvien ohjelmointikielten kehitys on perustunut aluksi tietokoneiden ohjelmoinnin helpottamiseen, sillä konekielellä ja symbolisella konekielellä (assembly) ohjelmoimisen katsottiin olevan hidasta ja vaivalloista. Myöhempien ohjelmointikielten kehitystä on ohjannut pyrkimys luoda tiettyihin käyttökohteisiin paremmin soveltuvia työkaluja. Tällaisia käyttökohteita ovat esimerkiksi kaupalliset sovellukset, simulaatioiden ohjelmointi, ohjelmistojen rakenteen selkeyttäminen olio-ohjelmoinnilla, järjestelmäohjelmointi ja web-ohjelmointi. Muodostetusta sukupuusta havaitaan, että imperatiivisten ohjelmointikielten juuret ovat Fortranissa sekä ALGOL-perheen ohjelmointikielissä. Selvää on myös, että uusia ohjelmointikieliä ei ensimmäisiä lukuun ottamatta luoda tyhjästä, vaan sukupuusta on havaittavissa selkeä jatkumo vanhimmista ohjelmointikielistä uusimpiin.
Keywords: imperatiivinen ohjelmointi, ohjelmointikielten sukupuu