FAS-KIELEN HISTORIA Simo Töyrä, 2015
FAS‑ohjelmointikieli – suomalaisen tietotekniikan pitkä kaari
FAS‑ohjelmointikieli oli suomalaisen julkishallinnon oma, poikkeuksellisen pitkäikäinen ohjelmointikielihanke. Se syntyi 1960‑luvun lopulla vastauksena aikansa teknisiin ja hallinnollisiin haasteisiin ja säilyi käytössä eri muodoissaan yli neljän vuosikymmenen ajan. FAS ei ollut vain ohjelmointikieli, vaan kokonainen ajattelutapa ohjelmistojen siirrettävyydestä, tehokkuudesta ja hallittavuudesta.
Tausta ja synty
1960‑luvun lopulla suomalainen valtionhallinto siirtyi uuteen tietokonesukupolveen. Käytössä olleet ohjelmointikielet – kuten Fortran, Cobol ja PL/I – eivät sellaisenaan vastanneet kaikkia hallinnollisen tietojenkäsittelyn tarpeita. Erityisesti huolta herättivät ohjelmistojen siirrettävyys eri koneympäristöjen välillä, käännösten tehokkuus sekä riippuvuus yksittäisistä laitevalmistajista.
Näissä oloissa päätettiin kehittää oma ohjelmointikieli, joka perustuisi yksinkertaisuuteen, tehokkuuteen ja mahdollisimman pitkälle vietyyn koneriippumattomuuteen. Aluksi FAS oli Fortran‑kieleen rakennettu aliohjelmapaketti, mutta pian kävi ilmi, että Fortran toimi lähinnä kuorena rutiinikutsuille. Tästä seurasi ratkaiseva askel: oman ohjelmointikielen toteuttaminen.
Ensimmäinen FAS‑käännös valmistui vuoden 1969 lopulla. Kieli herätti heti keskustelua ja myös kritiikkiä, mutta se vakiinnutti nopeasti asemansa erityisesti valtionhallinnon taloudellis‑hallinnollisissa sovelluksissa.
Suunnitteluperiaatteet
Yksinkertaisuus ja tehokkuus
FAS määriteltiin tietoisesti mahdollisimman yksinkertaiseksi. Kieleen ei sisällytetty monimutkaisia rakenteita, jotka olisivat piilottaneet tehottomuutta ohjelmoijalta. Esimerkiksi:
- Aritmeettisilla operaattoreilla ei ollut presedenssisääntöjä
- Lukumuuttujat olivat kokonaislukuja
- Ohjelmasilmukka oli yksinkertainen LOOP–END‑rakenne
- IF‑lauseessa sallittiin vain yksi lause THEN‑ tai ELSE‑osassa
Näiden rajoitusten vastapainoksi kieleen rakennettiin poikkeuksellisen vahva makrojärjestelmä, jonka avulla kieltä voitiin laajentaa tarpeen mukaan.
Koneriippumattomuus
FAS‑kielen keskeinen tavoite oli ohjelmien siirrettävyys eri tietokoneympäristöjen välillä. Tämä koski:
- Ohjelmamoduleita
- Tiedostoja
- Käyttöjärjestelmän ohjauskieltä
Erityinen ratkaisu oli se, että tiedostot määriteltiin puhtaasti merkkimuotoisiksi. Näin vältettiin sananpituuksista ja konearkkitehtuureista johtuvat yhteensopivuusongelmat. Käytännössä FAS‑ohjelmia voitiin siirtää jopa eri valmistajien koneiden välillä, joskus jopa käännetyssä muodossa.
Soveltuvuus hallinnollisiin sovelluksiin
FAS suunniteltiin erityisesti kaupallis‑hallinnolliseen tietojenkäsittelyyn. Kielen vahvuuksia olivat:
- Kehittynyt merkkijonojen käsittely
- Tehokas tulostus‑ ja raportointijärjestelmä
- Selkeä modulaarinen rakenne
Näiden ansiosta FAS soveltui hyvin esimerkiksi verotuksen, tiehallinnon ja sairaaloiden tietojärjestelmiin.
Kielen rakenne ja ominaisuudet
Modulaarisuus
FAS‑ohjelma koostui päämodulista ja joukosta alimoduleita. Modulaarisuus oli keskeinen periaate, jonka avulla rakennettiin laajoja yleisosakirjastoja. Samoja moduleita voitiin käyttää useissa sovelluksissa, mikä säästi aikaa ja vähensi virheitä.
Modulien lataus ja poisto tapahtuivat ajoaikana, ja kutsuja voitiin optimoida siten, että ensimmäisen kutsun jälkeen siirryttiin suoraan oikeaan osoitteeseen. Tämä oli aikanaan teknisesti edistyksellinen ratkaisu.
Makrojärjestelmä
FAS‑kielen makrot olivat enemmän kuin tekstinkorvausta. Makro oli itsenäinen ohjelmamoduli, joka osallistui käännösprosessiin. Makro saattoi:
- Analysoida lauseen syntaksia
- Luoda uusia FAS‑lauseita
- Laajentaa kieltä lähes rajattomasti
Makrojen avulla toteutettiin esimerkiksi monimutkaisemmat ehtorakenteet, silmukat ja moniulotteiset taulukot, joita peruskieli ei suoraan tukenut.
Tietotyypit
FAS‑kielessä oli kaksi pääasiallista tietotyyppiä:
- Lukutieto (SHORT, NORM, LONG)
- Merkkitieto (CHAR, STRING)
Lukutiedot olivat kokonaislukuja, ja niiden ulkoinen esitysmuoto voitiin määritellä usealla tavalla. Merkkijonojen käsittely oli joustavaa, ja osajonot olivat keskeinen osa kieltä.
Toteutukset ja käyttöympäristöt
FAS‑kieli toteutettiin vuosikymmenten aikana useille eri tietokonealustoille. Näihin kuuluivat muun muassa:
- Suuret keskuskoneet
- Pientietokoneet
- Mikrotietokoneet
- Myöhemmin myös VAX‑ ja Itanium‑ympäristöt
Viimeinen tunnettu toteutus valmistui vuonna 2012. Tämä tekee FAS‑kielestä poikkeuksellisen pitkäikäisen ohjelmointikielen suomalaisessa kontekstissa.
Käyttö ja merkitys
FAS oli virallisesti suositeltu ohjelmointikieli valtionhallinnon taloudellis‑hallinnollisissa sovelluksissa 1970‑luvulla. Käytännössä sen suurimmat käyttäjäryhmät löytyivät hallinnon lisäksi terveydenhuollosta, erityisesti keskussairaaloista.
Vaikka 1980‑luvulta alkaen kansainväliset standardikielet alkoivat syrjäyttää FAS‑kieltä, sen vaikutus näkyi pitkään käytössä olleissa järjestelmissä, ohjelmointikäytännöissä ja ajattelutavoissa.
Perintö
FAS‑ohjelmointikieli edustaa aikakautta, jolloin ohjelmistojen pitkä elinkaari, siirrettävyys ja hallittavuus olivat keskeisiä tavoitteita. Se osoittaa, että myös kansallinen, paikallisiin tarpeisiin kehitetty ratkaisu voi olla teknisesti kestävä ja pitkäikäinen.
FAS ei ollut vain kieli, vaan osa suomalaisen tietotekniikan historiaa – esimerkki rohkeasta, omavaraisesta ja käytännönläheisestä kehitystyöstä, jonka vaikutukset ulottuivat vuosikymmenten päähän.