COBOL
COBOL är ett programspråk som främst är avsett för affärsändamål som till exempel personaladministration, finansiella tjänster, orderhantering samt diverse produktionssystem. Namnet är en akronym av COmmon Business Oriented Language, engelska för Allmänt affärsorienterat språk. Tillsammans med Fortran och Lisp är det ett av de äldsta högnivåspråk som fortfarande används allmänt för programmering.
Historia
[redigera | redigera wikitext]Språket skapades 1959 av CODASYL, The Conference On Data System Languages, en grupp initierad av USA:s försvarsdepartement, med representanter från olika datortillverkare och myndigheter. Med i gruppen fanns bland annat programmeraren Jean E. Sammet.[1] Den första specifikationen godkändes i maj 1960 och resultatet fick namnet 'COBOL 60'. Några inspirationskällor för specifikationsarbetet var FLOW-MATIC, ett språk konstruerat av Grace Hopper, och IBM:s COMTRAN.
COBOL fick snart stor spridning och var på 1960-talet och 1970-talet det dominerande programspråket för affärssystem. Än idag används COBOL i stor skala i administrativa och finansiella tillämpningar i många större företag, exempelvis bankväsendet.
COBOL 2002-standarden stöder objektorientering och andra mer moderna datatekniska framsteg. Utveckling av nya versioner sker kontinuerligt. Det finns nu även versioner av COBOL som har integrerat stöd för att fungera i nätverksmiljö och mot internet, till exempel IBM:s Enterprise COBOL.
Programspråk som är varianter på COBOL är vanligt förekommande inom affärssystem, till exempel ABAP (från SAP AG) och People Code (från Peoplesoft). COBOL lever därmed vidare även i ett flertal former som delvis skiljer sig från standarden.
COBOL i Sverige
[redigera | redigera wikitext]Den första svenska COBOL-kompilatorn utvecklades sannolikt av Kenneth Nilsson och Leif Robertsson för datorn SMIL åren 1965-1968.[2] År 1969 utgav Nilsson tillsammans med Sten Henriksson och Axel Ruhe en Lärobok i COBOL under pseudonymen Anna Lysegård.[3][4]
COBOL har haft en stark ställning i det svenska försvaret. När försvarets stordatorer migrerades från IBMs stordatorer till Datasaabs stordator D23 runt år 1974 skrevs c:a 3000 program om i COBOL till en kostnad av c:a 18 miljoner kronor. Programmen flyttades sedan till Univac 1100.[5] I en rapport från Försvarets rationaliseringsinstitut från 1980 konstaterar man att "95% av alla försvarsprogram skrivs fortfarande i COBOL".[6]
Trots sin ålder används COBOL fortfarande vid utveckling av affärsnära applikationer. Organisationer som förlitar sig på affärssystem byggda i COBOL fortsätter i stor skala att vidareutveckla dessa och år 1997 uppskattade analysfirman Gartner Group att över 80% av världens affärstransaktioner sker i COBOL-system. De fyra svenska storbankerna Nordea, Handelsbanken, Swedbank och SEB kör fortfarande stora delar av sin verksamhet i COBOL-system.
Språket
[redigera | redigera wikitext]COBOL karakteriseras av en ordrik syntax där man strävat att efterlikna normalt skriven engelska. Ett exempel:
ADD DEPOSIT-AMOUNT TO ACCOUNT-BALANCE GIVING ACCOUNT-BALANCE
Den ordrika syntaxen har kritiserats som överflödig och otymplig. Det går dock att uttrycka samma programsats mer koncist i COBOL:
COMPUTE ACCOUNT-BALANCE = ACCOUNT-BALANCE + DEPOSIT-AMOUNT
Eller helt enkelt:
ADD DEPOSIT-AMOUNT TO ACCOUNT-BALANCE
Så här ser det klassiska "Hello World" exemplet ut i Cobol
IDENTIFICATION DIVISION. PROGRAM-ID. HELLOWORLD. PROCEDURE DIVISION. DISPLAY "Hello world!" STOP RUN.
Språket har bra möjligheter till hantering av filer med fasta fält- och poststorlekar, och en detaljerad beskrivning av de data som ska bearbetas. Vid jämförelse med yngre språk märks dock en del brister i den ursprungliga versionen av språket, till exempel avsaknad av möjligheten till lokala variabler och inbyggd dynamisk minnestilldelning. Språket har också ett stort antal reserverade ord vilket, tillsammans med bristen på lokala variabler, gör att man ofta inleder dessa med unika prefix. Många av dessa brister har dock åtgärdats i senare versioner av språket.
Källor
[redigera | redigera wikitext]- J. E. Sammet. "The Early History of Cobol." i History of Programming Languages, redigerad av R. L. Wexelblat. New York: ACM Monograph Series, 1981.
Noter
[redigera | redigera wikitext]- ^ ”Jean Sammet skapar programmeringsspråket Cobol”. Internetmuseum. https://www.internetmuseum.se/tidslinjen/jean-sammet-skapar-programmeringsspraket-cobol/. Läst 14 oktober 2020.
- ^ Nilsson, Kenneth (april 1972). ”Appendix B”. Utformningen av objektprogrammet i COBOL för en liten datamaskin. Lund: Lunds Universitet, Institutionen för Informationsbehandling. sid. B:2. Libris 8905076
- ^ Sofia, Lindgren (2008). Sofia Lindgren & Julia Peralta. red. ”Högre datautbildningar i Sverige i ett historiskt perspektiv”. Working Papers from the Division of History of Science and Technology (Kungl. Tekniska Högskolan) TRITA-HST 2008/18. ISSN 1103-5277. https://oru.diva-portal.org/smash/get/diva2:789555/FULLTEXT01.pdf. Läst 15 juni 2022.
- ^ Lysegård, Anna; Kenneth Nilsson, Sten Henriksson, Axel Ruhe (1969). Lärobok i COBOL. Lund: Studentlitteratur. Libris 843983. ISBN 99-0183137-7
- ^ Ann-Katrin Widing, red (2002). 50 år av datautveckling. Arboga: Försvarsmakten, Försvarsmaktens logistik, Reservmaterielenheten. sid. 15. https://www.aef.se/Resmat/Delta_50.pdf. Läst 21 september 2019.
- ^ A. Resare, red (1980-12-18). Struktur 90: Förslag till långsiktig inriktning av försvarets administrativa databehandling. Rapport. "Nr 4.80-8402". Stig Å Nilsson. Stockholm: Försvarets rationaliseringsinstitut. sid. 53. Libris 8203139