COBOL
COBOL (akronyymi sanoista common business-oriented language) on kaupallis-hallinnollisiin sovelluksiin tarkoitettu korkean tason ohjelmointikieli. Kielen kehitys aloitettiin Yhdysvaltain puolustusministeriön aloitteesta vuonna 1959.[2]
COBOL | |
---|---|
Paradigma | proseduraalinen, imperatiivinen |
Julkaistu | 1959 |
Vakaa versio | ISO/IEC 1989:2014[1] |
Merkittävimmät toteutukset | GnuCOBOL, IBM COBOL, Micro Focus Visual COBOL |
Vaikutteet | FLOW-MATIC |
COBOL on todennäköisesti tietojenkäsittelyn historian merkittävin kaupallis-hallinnollisten järjestelmien ohjelmointikieli. Vanhoja COBOL-järjestelmiä on vielä 2010-luvun lopulla käytössä runsaasti muun muassa Suomessa, vaikka uusia ei enää tehdäkään.[2]
COBOLin piirteitä ovat sovellusten suunnittelun hankaluus ja huono tuki strukturoidulle ohjelmoinnille. Kielioppi muistuttaa englantia. Kielelle ovat tyypillisiä pitkät muuttujanimet.[2]
Historiaa
muokkaaCOBOL perustuu osittain lippueamiraali Grace Hopperin kehittämään Flow-Matic-kieleen. COBOLin kehitys aloitettiin vuonna 1959 ja ensimmäinen versio esiteltiin vuonna 1960.[2] COBOL kehitettiin komiteassa, joka salli politiikan vaikuttaa päätöksiin: komitean jäsen Jean Sammet on sanonut, että komitea hylkäsi hyviä ideoita jotka se tunnisti IBM:n COMTRANissa (Commercial Translator) vain koska komitea ei halunnut antaa mielikuvaa, että IBM dominoi keskustelua.[3] Yhdysvaltain puolustusministeriö (DOD) käytti huomattavasti rahaa tietokoneisiin jo vuonna 1959 ja tietokoneiden valmistajat tunnistivat tarpeen yhteiselle kielelle. Yhdysvaltain puolustusministeriö oli kuitenkin tiukassa aikataulussa ja suunnitteluvaiheessa tehtiin lyhytnäköisiä päätöksiä.[3]
COBOLin valta-ajan on sanottu olleen 1970–90-luvuilla.[2] Kieli oli erittäin suosittu 1960–1980-luvuilla ja sillä tehtiin liiketoiminnan ja talouden sovelluksia.[4] Vuonna 2020 uutisoitiin tarpeelle COBOLia osaaville ohjelmoijille kun Yhdysvaltojen osavaltioiden tietojärjestelmät eivät pysyneet työttömyyshakemusten perässä.[4] Yhdysvaltain työministeriön järjestelmät riippuvat COBOL-koodista.[4]
Reutersin tilaston mukaan käytössä on edelleen 220 miljardia riviä COBOL-koodia ja 43 prosenttia pankkijärjestelmistä riippuu siitä.[5] Talousjärjestelmissä sanotaan olevan päällekkäisiä kerroksia eri sukupolvilta, jotka ovat usein vahvasti toisistaan riippuvia, joka tekee pankkien järjestelmien päivityksistä monimutkaista.[6] Järjestelmien päivityksistä tekee vaikeamman se, ettei niitä ole aikoinaan dokumentoitu.[6] Arvioiden mukaan kolmen biljoonan dollarin edestä päivittäistä kauppaa kulkee COBOLillä tehtyjen järjestelmien kautta.[6] Järjestelmät kattavat tallennustilejä, luottokorttiverkkoja, pankkiautomaatteja, lainoja ja muita palveluja.[6] Digitaalisten pankkien tulo lisää tarvetta ratkaista ongelma harveneville COBOL-osaajille.[6] Jotkin yliopistot tarjoavat edelleen kursseja, mutta kieltä opettelevien määrä on erittäin pieni.[4] Toisen lähteen mukaan COBOL-koodia on 80 miljardia riviä ja se kasvaa yhä 15 prosenttia vuosittain.[7]
Kielestä on 19 "murretta", joissa on laajennuksia eri tahoilta kuten IBM ja Micro Focus -yhtiöiltä.[7]
Ohjelman rakenne
muokkaaCOBOL-ohjelman tyypillinen piirre on sen jakautuminen divisiooniin eli lohkoihin:
- Tunnistuslohko (Identification Division)
- sisältää ohjelman tunnisteet.
- Ympäristölohko (Environment Division)
- määrittää käyttöympäristön.
- Tietolohko (Data Division)
- sisältää ohjelmassa käsiteltävän datan.
- Toimintalohko (Procedure Division)
- sisältää itse ohjelmaproseduurin.
Divisioonat voivat jakautua sektioihin, sektiot kappaleisiin, ne taas merkintöihin, määrittelyihin (entry) tai virkkeisiin, jotka puolestaan määreisiin (clause) tai lauseisiin (statement). Proseduurin käskyt on pyritty laatimaan niin lähelle käyttöenglantia kuin mahdollista. Jos ohjelman parametreiksi ja muuttujiksi vielä valitaan sopivia sanoja, tulee proseduurista mahdollisesti täysin yleiskielinen ja englantia hallitsevan maallikonkin luettava.[8]
Esimerkki
muokkaa"Hei maailma -ohjelma" COBOLilla:
IDENTIFICATION DIVISION.
PROGRAM-ID. hello-world.
PROCEDURE DIVISION.
DISPLAY "Hello, world!"
.
Toteutukset
muokkaaKielelle on tehty useita eri toteutuksia. Avoimen lähdekoodin GnuCOBOL on kehittynyt OpenCOBOLista, jossa on käytetty kokemuksia TinyCOBOLista. COBOL-IT oli ranskalainen projekti, jonka Micro Focus hankki vuonna 2017. Micro Focus myy Visual COBOLia. GCC:n edustakääntäjänä toimiva gcobol on uusi projekti, josta on kerrottu vuonna 2022.[9]
Lähteet
muokkaa- ↑ a b ISO/IEC 1989:2014 ISO. Viitattu 27.8.2017.
- ↑ a b c d e Ollila, Kauko: Kun Cobol maailman it-asiakkaat käyttöönsä otti. Tekniikan historia, 1/2018.
- ↑ a b Conner, Richard L.: Cobol, your age is showing. Computerworld, 14 May 1984, 18. vsk, nro 20, s. ID/7–ID/18. ISSN 0010-4841 Artikkelin verkkoversio.
- ↑ a b c d COBOL Programmers are Back In Demand. Seriously. cacm.acm.org. 21.4.2020. Arkistoitu 7.11.2021. Viitattu 8.11.2021. (englanniksi)
- ↑ COBOL blues fingfx.thomsonreuters.com. Viitattu 8.11.2021. (englanniksi)
- ↑ a b c d e Anna Irrera: Banks scramble to fix old systems as IT 'cowboys' ride into sunset reuters.com. 11.4.2017. Viitattu 8.11.2021. (englanniksi)
- ↑ a b Fabrice Le Fessant & Simon Sobisch: GnuCOBOL, the Free Software Alternative for COBOL! (PDF) fosdem.org. 2024. Viitattu 9.2.2024. (englanniksi)
- ↑ Fontell, Lauri: COBOL-ohjelmointi, s. 7–8. Helsinki: Limes ry, 1973. ISBN 951-745-009-5
- ↑ An open-source COBOL contender emerges theregister.com. 16.3.2022. Viitattu 20.3.2022. (englanniksi)