COBOL
COBOL (Common Business Oriented Language) var et af de tidligste højniveau programmeringssprog. Det er nu mere end 60 år gammelt og bliver stadigvæk brugt i dag.
På det tidspunkt hvor COBOL blev designet fandtes der ingen kortvarige EDB-uddannelser men der var et voksende behov for programmører til administrativ EDB. Der blev derfor lagt vægt på at sproget skulle ligne engelsk, og at det skulle være så simpelt at fejl ikke kunne gemme sig i koden. Undervisning i COBOL blev udført som brevkursus og for alm. kontoransatte. Bogen COBOL for Students starter med en introduktion til begreber såsom computere, skærme og printere.
Kildekodeformat
I modsætning til næsten alle andre nyere sprog, så havde COBOL et fast format, hvor kolonnerne var dedikeret til specifikt indhold. Man kan undre sig over hvorfor. Det skal ses i sammenhæng med tidspunktet for designet af COBOL. Der fandtes ikke skærmterminaler endnu. Programmøren skrev koden i hånden på kvadreret papir hvor kolonnerne var tegnet ind i forvejen. Arkene blev enten kodet ind på hulkort af programmøren selv eller afleveret til en assistent - en hulledame. Når hulkortene var færdige kunne de blive kørt igennem en hulkortlæser for at lave en printudskrift, som kunne verificeres for korrekt indtastning. Hvis der var en fejl, så kunne programmøren lave et nyt hulkort med samme sekvensnummer og udskifte kortet. Først når programmet skulle oversættes og køres kom det i kontakt med mainframen.
Kolonnerne er opdelt på følgende måde:
- Kolonne 1 til 6 - Sekvensnummer
- Kolonne 7 - Indikator-tegn
- Kolonne 8 til 11 - Område A
- Kolonne 12 til 72 - Område B
Alle tegn udover kolonne 72 blev ignoreret af oversætteren (IBM 704s kortlæser kunne kun læse 72 kolonner). Da skærme blev taget i brug fik COBOL programmører for vane at sætte en sytråd fast på skærmen ved kolonne 73 for at kunne se om de havde skrevet en for lang linje.
Sekvensnummeret blev ikke brugt af oversætteren, men kunne bruges til at lade programmøren specificere hvor en ny linje skulle lægges ind, lidt på samme måde som BASIC havde linjenumre.
En stjerne (*) i Indikator-kolonnen markerer at linjen er en kommentar. En skråstreg er også en kommentar men laver et side-skift på printeren inden linjen skrives ud.
Sektions- og paragraf-navne begynder i område A og efterfølges af et punktum og et mellemrum eller linjeskift. Programsætninger kan starte hvorsomhelst i område B.
Frit format blev muligt med ny COBOL standard i 2002, men var dog implementeret som udvidelser i mange produkter allerede i 80erne pga. terminaler nu var den primære måde at editere på.
Divisioner
Et COBOL program består af fire divisioner:
IDENTIFICATION DIVISION - Identificerer programmet med visse obligatoriske metadata.
ENVIRONMENT DIVISION - En beskrivelse af det udstyr der skal bruges til at oversætte og eksekvere programmet.
DATA DIVISION - En beskrivelse af det data der skal behandles.
PROCEDURE DIVISION - De instruktioner der skal udføres. Dvs. selve programmet.
Hver division er opdelt i sektioner, som er yderligere opdelt i paragraffer og derunder er opdelt i sætninger.
Eksempel
Dette program opsummerer tallene fra 1 til 100. Resultatet er 5050.
000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. SUM-TO-100. 000300 ENVIRONMENT DIVISION. 000400 CONFIGURATION SECTION. 000500 SOURCE-COMPUTER. GNUCOBOL. 000600 OBJECT-COMPUTER. GNUCOBOL. 000700 DATA DIVISION. 000800 WORKING-STORAGE SECTION. 000900 77 I PICTURE 999 USAGE COMPUTATIONAL. 001000 77 TOTAL PICTURE 999999 USAGE COMPUTATIONAL. 001100 77 VISNING PICTURE ZZ9999. 001200 001300 PROCEDURE DIVISION. 001400 HOVED-PRG. 001500 MOVE ZERO TO TOTAL. 001600 PERFORM LOOP1 VARYING I FROM 1 BY 1 UNTIL I GREATER THAN 100. 001700 MOVE TOTAL TO VISNING. 001800 DISPLAY "SUM ",VISNING. 001900 STOP RUN. 002000 LOOP1. 002100 ADD I TO TOTAL.
Bemærk at 'GREATER THAN' er skrevet ud i bogstaver. Hvorfor ikke bare bruge '>'? Forklaringen er simpel. Hulkort brugte på det tidspunkt BCD tegnsættet. Det var ikke muligt at kode parenteser, <, =, > og mange andre tegn. Dette kom dog lidt senere.
Regnecentralen
I 1960'erne lavede Regnecentralen verdens hurtigste COBOL oversætter for Siemens 3003. Det var arbejdet der var udført af compilergruppen ledet af Peter Naur og Jørn Jensen.
Micro Focus
I de sene halvfjerdsere tog engelske firma Micro Focus initiativ til at skabe Compact Interactive Standard COBOL (CIS COBOL) for 8-bit microcomputere. Compileren fremstillede virtuel maskinkode pga. de ekstreme RAM begrænsninger. Maximum var 64 kilobytes for både program og data. Koden blev derefter eksekveret af et runtime system efter samme princip som Java. Produktet blev i nogle tilfælde solgt under andre navne, som f.eks. Digital Research COBOL.
Micro Focus blev dominerende på markedet for små og mellemstore systemer, hvorimod mainframe systemer primært havde udgaver udviklet af hardware-leverandøren.
Ryan-McFarland
Firmaet Ryan-McFarland fremstillede RM/COBOL. De blev opkøbt af Micro Focus.