Reikäkortteja ja mekaanisia kytkentöjä – miten kaikki alkoi (Ohjelmointikielet kautta aikojen 1)

Seuraava teksti on julkaistu alunperin Linkin Facebook-sivulla 9.9.2022

Tämä julkaisu on toinen osa syksyllä 2022 alkaneesta julkaisusarjasta, joka käsittelee erilaisia ohjelmointikieliä historian saatossa. Tervetuloa mukaan matkalle ohjelmointikielten maailmaan!

Syksyn ajan Linkissä perehdytään erilaisiin ohjelmointikieliin ja pohditaan sitä, miksi kieliä on niin monta, miten kielet ovat saaneet alkunsa ja mihin tarkoitukseen mikäkin kieli erityisesti sopii. Ennen tutustumista varsinaisiin ohjelmointikieliin kurkistetaan hieman kauemmaksi menneisyyteen. Millaista ohjelmointi oli ennen nykyisen kaltaisia tietokoneita? Entä mitkä olivat aivan ensimmäiset ohjelmointikielet?
Maailman ensimmäisen ohjelmointikielen määrittäminen ei ole aivan helppoa, kuten ei ensimmäisen tietokoneenkaan. Charles Babbagen (1791–1871) kehittämää analyyttista konetta voidaan kuitenkin pitää ensimmäisenä tietokoneena – vaikkakaan konetta ei Babbagen elinaikana rakennettu valmiiksi.
Babbagen ystävä, matemaatikko Ada Lovelace (1815–1852) kehitti analyyttisen koneen käyttöä varten ohjelman ja hahmotteli, miten analyyttista konetta voitaisiin käyttää eri tarkoituksia varten. Häntä pidetäänkin maailman ensimmäisenä ohjelmoijana. Mitään varsinaista nimeä Ada Lovelacen käyttämällä “ohjelmointikielellä” (jos sellaisesta voidaan edes puhua) ei ollut. Hänen mukaansa on kuitenkin myöhemmin nimetty ohjelmointikieli Ada.
Babbagen analyyttista konetta ohjattiin reikäkorteilla, jotka oli alunperin kehitetty kankaankudontaa varten ja joiden käyttöä laajennettiin sittemmin väestölaskennan tarpeisiin ja edelleen monipuoliseen tietojen käsittelyyn ja laskentaan tietokoneilla. Tietokoneiden kehittyessä reikäkortteja käytettiin sekä niiden ohjelmointiin että käsiteltävän datan syöttöön vuosikymmenten ajan, paikoitellen aina viime vuosikymmeniin asti.
Reikäkorttien aikalaisia ovat myös samaan tapaan käytetyt reikänauhat sekä magneettinauhat. Ohjelmointiin käytettiin tietokoneen suoraan ymmärtämää konekieltä sekä mekaanisia vipuja ja kytkentöjä. Vähitellen alettiin kehittää ihmisen kannalta helpompikäyttöisiä korkean tason ohjelmointikieliä (vrt. konekieli “matalana” tasona). Kone kääntää tällaisilla kielillä kirjoitetut ohjelmat konekieleksi ennen ohjelman suorittamista.
Varhaisimpia, elektronisille tietokoneille tarkoitettuja korkean tason ohjelmointikieliä olivat 1940–50-luvuilla kehitetyt kielet kuten Plankalkül, Short Code ja Autocode. Näiden kielten jälkeen päästäänkin niihin kieliin, joihin nykyään yleensä viitataan ohjelmointikielinä. Niistä lisää tulevina viikkoina – kannattaa pysyä kuulolla!
Kokeile itse! Syötä haluamasi merkkijono ja katso, miltä tiedon esittävä reikäkortti näyttäisi. http://www.kloth.net/services/cardpunch.php
Kuvat: Veera Lupunen
Reikäkortteja pinossaReikäkorttirullia

Leave a Reply

Your email address will not be published. Required fields are marked *