Imperatiivisten korkean tason ohjelmointikielten sukupuu
Rintamäki, Timo (2024-11-12)
Imperatiivisten korkean tason ohjelmointikielten sukupuu
Rintamäki, Timo
(12.11.2024)
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
avoin
Julkaisun pysyvä osoite on:
https://urn.fi/URN:NBN:fi-fe2024111391289
https://urn.fi/URN:NBN:fi-fe2024111391289
Tiivistelmä
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.
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.