FAS-kielen historia

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.


FAS nykytermein

Scroll to Top