{"id":408,"date":"2026-04-08T11:47:05","date_gmt":"2026-04-08T09:47:05","guid":{"rendered":"https:\/\/vtkkperinne.fi\/?page_id=408"},"modified":"2026-04-08T12:06:16","modified_gmt":"2026-04-08T10:06:16","slug":"fas-kielen-historia","status":"publish","type":"page","link":"https:\/\/vtkkperinne.fi\/?page_id=408","title":{"rendered":"FAS-kielen historia"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>FAS-KIELEN HISTORIA <\/strong><strong>Simo T\u00f6yr\u00e4<\/strong>, 2015<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">FAS\u2011ohjelmointikieli \u2013 suomalaisen tietotekniikan pitk\u00e4 kaari<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011ohjelmointikieli oli suomalaisen julkishallinnon oma, poikkeuksellisen pitk\u00e4ik\u00e4inen ohjelmointikielihanke. Se syntyi 1960\u2011luvun lopulla vastauksena aikansa teknisiin ja hallinnollisiin haasteisiin ja s\u00e4ilyi k\u00e4yt\u00f6ss\u00e4 eri muodoissaan yli nelj\u00e4n vuosikymmenen ajan. FAS ei ollut vain ohjelmointikieli, vaan kokonainen ajattelutapa ohjelmistojen siirrett\u00e4vyydest\u00e4, tehokkuudesta ja hallittavuudesta.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Tausta ja synty<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">1960\u2011luvun lopulla suomalainen valtionhallinto siirtyi uuteen tietokonesukupolveen. K\u00e4yt\u00f6ss\u00e4 olleet ohjelmointikielet \u2013 kuten Fortran, Cobol ja PL\/I \u2013 eiv\u00e4t sellaisenaan vastanneet kaikkia hallinnollisen tietojenk\u00e4sittelyn tarpeita. Erityisesti huolta her\u00e4ttiv\u00e4t ohjelmistojen siirrett\u00e4vyys eri koneymp\u00e4rist\u00f6jen v\u00e4lill\u00e4, k\u00e4\u00e4nn\u00f6sten tehokkuus sek\u00e4 riippuvuus yksitt\u00e4isist\u00e4 laitevalmistajista.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e4iss\u00e4 oloissa p\u00e4\u00e4tettiin kehitt\u00e4\u00e4 oma ohjelmointikieli, joka perustuisi yksinkertaisuuteen, tehokkuuteen ja mahdollisimman pitk\u00e4lle vietyyn koneriippumattomuuteen. Aluksi FAS oli Fortran\u2011kieleen rakennettu aliohjelmapaketti, mutta pian k\u00e4vi ilmi, ett\u00e4 Fortran toimi l\u00e4hinn\u00e4 kuorena rutiinikutsuille. T\u00e4st\u00e4 seurasi ratkaiseva askel: oman ohjelmointikielen toteuttaminen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ensimm\u00e4inen FAS\u2011k\u00e4\u00e4nn\u00f6s valmistui vuoden 1969 lopulla. Kieli her\u00e4tti heti keskustelua ja my\u00f6s kritiikki\u00e4, mutta se vakiinnutti nopeasti asemansa erityisesti valtionhallinnon taloudellis\u2011hallinnollisissa sovelluksissa.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Suunnitteluperiaatteet<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Yksinkertaisuus ja tehokkuus<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">FAS m\u00e4\u00e4riteltiin tietoisesti mahdollisimman yksinkertaiseksi. Kieleen ei sis\u00e4llytetty monimutkaisia rakenteita, jotka olisivat piilottaneet tehottomuutta ohjelmoijalta. Esimerkiksi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aritmeettisilla operaattoreilla ei ollut presedenssis\u00e4\u00e4nt\u00f6j\u00e4<\/li>\n\n\n\n<li>Lukumuuttujat olivat kokonaislukuja<\/li>\n\n\n\n<li>Ohjelmasilmukka oli yksinkertainen LOOP\u2013END\u2011rakenne<\/li>\n\n\n\n<li>IF\u2011lauseessa sallittiin vain yksi lause THEN\u2011 tai ELSE\u2011osassa<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e4iden rajoitusten vastapainoksi kieleen rakennettiin poikkeuksellisen vahva makroj\u00e4rjestelm\u00e4, jonka avulla kielt\u00e4 voitiin laajentaa tarpeen mukaan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Koneriippumattomuus<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011kielen keskeinen tavoite oli ohjelmien siirrett\u00e4vyys eri tietokoneymp\u00e4rist\u00f6jen v\u00e4lill\u00e4. T\u00e4m\u00e4 koski:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ohjelmamoduleita<\/li>\n\n\n\n<li>Tiedostoja<\/li>\n\n\n\n<li>K\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n ohjauskielt\u00e4<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Erityinen ratkaisu oli se, ett\u00e4 tiedostot m\u00e4\u00e4riteltiin puhtaasti merkkimuotoisiksi. N\u00e4in v\u00e4ltettiin sananpituuksista ja konearkkitehtuureista johtuvat yhteensopivuusongelmat. K\u00e4yt\u00e4nn\u00f6ss\u00e4 FAS\u2011ohjelmia voitiin siirt\u00e4\u00e4 jopa eri valmistajien koneiden v\u00e4lill\u00e4, joskus jopa k\u00e4\u00e4nnetyss\u00e4 muodossa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Soveltuvuus hallinnollisiin sovelluksiin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">FAS suunniteltiin erityisesti kaupallis\u2011hallinnolliseen tietojenk\u00e4sittelyyn. Kielen vahvuuksia olivat:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kehittynyt merkkijonojen k\u00e4sittely<\/li>\n\n\n\n<li>Tehokas tulostus\u2011 ja raportointij\u00e4rjestelm\u00e4<\/li>\n\n\n\n<li>Selke\u00e4 modulaarinen rakenne<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e4iden ansiosta FAS soveltui hyvin esimerkiksi verotuksen, tiehallinnon ja sairaaloiden tietoj\u00e4rjestelmiin.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kielen rakenne ja ominaisuudet<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Modulaarisuus<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011ohjelma koostui p\u00e4\u00e4modulista ja joukosta alimoduleita. Modulaarisuus oli keskeinen periaate, jonka avulla rakennettiin laajoja yleisosakirjastoja. Samoja moduleita voitiin k\u00e4ytt\u00e4\u00e4 useissa sovelluksissa, mik\u00e4 s\u00e4\u00e4sti aikaa ja v\u00e4hensi virheit\u00e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Modulien lataus ja poisto tapahtuivat ajoaikana, ja kutsuja voitiin optimoida siten, ett\u00e4 ensimm\u00e4isen kutsun j\u00e4lkeen siirryttiin suoraan oikeaan osoitteeseen. T\u00e4m\u00e4 oli aikanaan teknisesti edistyksellinen ratkaisu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Makroj\u00e4rjestelm\u00e4<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011kielen makrot olivat enemm\u00e4n kuin tekstinkorvausta. Makro oli itsen\u00e4inen ohjelmamoduli, joka osallistui k\u00e4\u00e4nn\u00f6sprosessiin. Makro saattoi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Analysoida lauseen syntaksia<\/li>\n\n\n\n<li>Luoda uusia FAS\u2011lauseita<\/li>\n\n\n\n<li>Laajentaa kielt\u00e4 l\u00e4hes rajattomasti<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Makrojen avulla toteutettiin esimerkiksi monimutkaisemmat ehtorakenteet, silmukat ja moniulotteiset taulukot, joita peruskieli ei suoraan tukenut.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tietotyypit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011kieless\u00e4 oli kaksi p\u00e4\u00e4asiallista tietotyyppi\u00e4:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lukutieto (SHORT, NORM, LONG)<\/li>\n\n\n\n<li>Merkkitieto (CHAR, STRING)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Lukutiedot olivat kokonaislukuja, ja niiden ulkoinen esitysmuoto voitiin m\u00e4\u00e4ritell\u00e4 usealla tavalla. Merkkijonojen k\u00e4sittely oli joustavaa, ja osajonot olivat keskeinen osa kielt\u00e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Toteutukset ja k\u00e4ytt\u00f6ymp\u00e4rist\u00f6t<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011kieli toteutettiin vuosikymmenten aikana useille eri tietokonealustoille. N\u00e4ihin kuuluivat muun muassa:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Suuret keskuskoneet<\/li>\n\n\n\n<li>Pientietokoneet<\/li>\n\n\n\n<li>Mikrotietokoneet<\/li>\n\n\n\n<li>My\u00f6hemmin my\u00f6s VAX\u2011 ja Itanium\u2011ymp\u00e4rist\u00f6t<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Viimeinen tunnettu toteutus valmistui vuonna 2012. T\u00e4m\u00e4 tekee FAS\u2011kielest\u00e4 poikkeuksellisen pitk\u00e4ik\u00e4isen ohjelmointikielen suomalaisessa kontekstissa.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">K\u00e4ytt\u00f6 ja merkitys<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FAS oli virallisesti suositeltu ohjelmointikieli valtionhallinnon taloudellis\u2011hallinnollisissa sovelluksissa 1970\u2011luvulla. K\u00e4yt\u00e4nn\u00f6ss\u00e4 sen suurimmat k\u00e4ytt\u00e4j\u00e4ryhm\u00e4t l\u00f6ytyiv\u00e4t hallinnon lis\u00e4ksi terveydenhuollosta, erityisesti keskussairaaloista.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vaikka 1980\u2011luvulta alkaen kansainv\u00e4liset standardikielet alkoivat syrj\u00e4ytt\u00e4\u00e4 FAS\u2011kielt\u00e4, sen vaikutus n\u00e4kyi pitk\u00e4\u00e4n k\u00e4yt\u00f6ss\u00e4 olleissa j\u00e4rjestelmiss\u00e4, ohjelmointik\u00e4yt\u00e4nn\u00f6iss\u00e4 ja ajattelutavoissa.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Perint\u00f6<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011ohjelmointikieli edustaa aikakautta, jolloin ohjelmistojen pitk\u00e4 elinkaari, siirrett\u00e4vyys ja hallittavuus olivat keskeisi\u00e4 tavoitteita. Se osoittaa, ett\u00e4 my\u00f6s kansallinen, paikallisiin tarpeisiin kehitetty ratkaisu voi olla teknisesti kest\u00e4v\u00e4 ja pitk\u00e4ik\u00e4inen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">FAS ei ollut vain kieli, vaan osa suomalaisen tietotekniikan historiaa \u2013 esimerkki rohkeasta, omavaraisesta ja k\u00e4yt\u00e4nn\u00f6nl\u00e4heisest\u00e4 kehitysty\u00f6st\u00e4, jonka vaikutukset ulottuivat vuosikymmenten p\u00e4\u00e4h\u00e4n.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/vtkkperinne.fi\/?page_id=417\" data-type=\"page\" data-id=\"417\">FAS nykytermein<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>FAS-KIELEN HISTORIA Simo T\u00f6yr\u00e4, 2015 FAS\u2011ohjelmointikieli \u2013 suomalaisen tietotekniikan pitk\u00e4 kaari FAS\u2011ohjelmointikieli oli suomalaisen julkishallinnon oma, poikkeuksellisen pitk\u00e4ik\u00e4inen ohjelmointikielihanke. Se [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-408","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/pages\/408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=408"}],"version-history":[{"count":4,"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/pages\/408\/revisions"}],"predecessor-version":[{"id":423,"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/pages\/408\/revisions\/423"}],"wp:attachment":[{"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}