COBOL
Uit Wikipedia, de vrije encyclopedie
Cobol is de afkorting van COmmon Business Oriented Language (algemeen zakelijk georiënteerde taal). Deze programmeertaal stamt uit de jaren 60 van de twintigste eeuw en werd (en wordt) voornamelijk gebruikt in zakelijke omgevingen.
Inhoud |
[bewerk] Oorsprong
Van oudsher was de taal gericht op het makkelijk omspringen met (grote) gegevensbestanden in een batch-georiënteerde omgeving.
Wereldwijd is ongeveer 30% van de bedrijfskritische toepassingen in Cobol ontwikkeld en deze staan niet op de nominatie om her-ontwikkeld te worden in een andere taal (bron: Automatiseringsgids week 41/2004).
Cobol is ontwikkeld in 1959 in opdracht van het Amerikaanse DoD, Department of Defense, onder meer door Grace Murray Hopper. Het moest een taal zijn die gemakkelijker te lezen, schrijven en onderhouden was dan de tot dan toe gangbare talen (Assembler) en die daarnaast op meerdere typen computers inzetbaar moest zijn. De eerste versie van Cobol stamt uit 1960: COBOL-60.
Aan de eis van computer-onafhankelijkheid kon niet geheel voldaan worden, het is een eis waarmee tot vandaag de dag geworsteld wordt door vrijwel elke computertaal.
Theoretici als Edsger Dijkstra verzetten zich tegen deze taal: "the knowledge of COBOL is so detrimental to the teaching of computing science practice that its teaching should be marked as an offense against humanity".
De groep die de eerste Cobolversie opgezet had, CODASYL (Conference On DAta SYstem Languages), kwam in 1961 met een nieuwe versie, COBOL-61, en in '62 en '63 kwamen daar nog aanvullingen op: COBOL-61-extended. Vanaf die tijd nam het gebruik van de taal enorm toe en was het ook niet meer beperkt tot de Amerikaanse markt. Uit de hele wereld kwamen verbeteringen voor de volgende versie.
Die volgende versie werd door Codasyl opgesteld in nauwe samenwerking met ANSI, de COBOL-74-standaard.
De internationalisering van het gebruik van COBOL maakt dat de discussie over wie bepaalt wat er in de standaard komt een probleem. ANSI is een Amerikaans instituut. ISO neemt het initiatief om een COBOL-expertsgroep op te richten die de standaardisatie moet bewaken. ISO bepaalt ook na de nodige discussie de inhoud van de nieuwe versie: COBOL-85, uitgebracht in 1985.
De meest recente versie van de standaard is gepubliceerd in 2002: COBOL 2002. In deze versie zijn allerlei opties opgenomen waarmee het mogelijk is om object-georiënteerd te programmeren.
Wim Ebbinkhuijsen wordt in Nederland als een van de vaders van deze taal gezien.
[bewerk] Versies en variaties
COBOL mag worden beschouwd als een van de eerdere programmeertalen. Waar andere programmeertalen al snel het loodje moesten leggen, zijn er nog steeds nieuwe ontwikkelingen gaande als het gaat om COBOL. Om een goed beeld te krijgen van de ontwikkelingen van andere programmeertalen is het aan te raden om de volgende link eens te bekijken: http://www.levenez.com/lang/history.html.
COBOL lijkt dan ook één taal, maar schijn bedriegt. Naast de verschillende versies van deze programmeertaal zijn er dan ook veel verschillende dialecten. Veel pogingen om deze taal te standaardiseren zijn dan ook mislukt. Veel dialecten (afwijkingen of uitbreidingen) zijn ontstaan om geoptimaliseerd gebruik te maken van de omgeving waarin ze draaien (besturingssysteem) of de specifiek gebruikte hardware.
Hieronder een opsomming van de versies van de gestandaardiseerde versie van Cobol:
Jaartal: | Naam: |
1959 | COBOL |
1960 | COBOL 60 |
1961 | COBOL 61 |
1962 | COBOL 61 EXTENDED |
1968 | COBOL 68 ANS |
1974 | COBOL 74 ANSI |
1985 | COBOL 85 ANSI/ISO |
1989 | COBOL 89 ANSI/ISO (functions) |
1997 | OO COBOL |
2002 | COBOL 2002 ANSI/ISO |
Hieronder een opsomming van een aantal dialecten:
- IBM S/390 COBOL (VS COBOL II)
- IBM ILE COBOL
- IBM Visual Age COBOL
- HP COBOL II
- HP Micro Focus COBOL for HP UX
- Micro Focus Net Express
- MBP Visual COBOL
- AcuCorp COBOL
- CA Realia
- Liant RM COBOL
- Tandem SCOBOL (Screen COBOL)
- Tandem Non-Stop COBOL
- Fujitsu COBOL
- Data General ICOBOL
- Wang VS COBOL
- UNISYS COBOL
De opensourcegemeenschap heeft ook een paar COBOL-compilerprojecten, te weten:
- Open Cobol (www.opencobol.org)
- Tiny Cobol (tiny-cobol.sourceforge.net)
Deze opensourcecompilers ondersteunen de meest gangbare COBOL-dialecten in meer of mindere mate.
Vaak wordt het begrip Common COBOL gebruikt. De term Common COBOL staat eigenlijk gewoon voor populair COBOL. Het meest populaire dialect van deze programmeertaal is de versie S-390 COBOL van IBM. 80% van de programma’s die zijn geschreven in COBOL zijn geschreven in de variant van IBM.
[bewerk] Structuur
COBOL is een regelgeoriënteerde procedureletaal en kan worden ingedeeld als een derde generatie-programmeertaal. Een uitzondering hierop is natuurlijk de variant OO-COBOL, deze wordt doorgaans bestempeld als een vierde generatie-programmeertaal.
Een COBOL-programma is opgebouwd uit een aantal afzonderlijke regels, waarbij de lengte van de zinnen niet langer mag zijn dan 80 tekens. Hierbij moet worden opgemerkt dat in de praktijk slechts de tekenposities 8 tot en met 72 beschikbaar voor programmacode zijn, zodat een regel in feite niet langer dan 65 tekens mag zijn.
Historisch gezien heeft dit te maken met de beperkte breedte van ponskaarten die vroeger gebruikt werden om programma's in een computer te laden, en de daarop volgende computerterminals met gelijke schermbreedte.
Om een idee te geven hoe de programmeertaal er qua structuur uitziet, is hieronder een voorbeeld afgebeeld. Het betreft hier een simpele “Hello World”-applicatie.
000010 IDENTIFICATION DIVISION. 000020 PROGRAM-ID. HELLOWORLD. 000030 DATE-WRITTEN. 10/08/04 00:04. 000040 AUTHOR. UNKNOWN AUTHOR. 000100 ENVIRONMENT DIVISION. 000200 CONFIGURATION SECTION. 000210 SOURCE-COMPUTER. RM-COBOL. 000220 OBJECT-COMPUTER. RM-COBOL. 000230 000300 DATA DIVISION. 000400 FILE SECTION. 000410 000500 PROCEDURE DIVISION. 000510 000600 MAIN-LOGIC SECTION. 000700 BEGIN. 000710 DISPLAY " " LINE 1 POSITION 1 ERASE EOS. 000720 DISPLAY "HELLO, WORLD." LINE 15 POSITION 10. 000600 STOP RUN. 000700 MAIN-LOGIC-EXIT. 000800 EXIT. 000900*COMMENT
Het feit dat de programmeertaal regel-/procedureelgeoriënteerd is, blijkt ook uit het feit dat elke regel is genummerd met een uniek nummer (dit is echter al lang niet meer verplicht). Als commentaarteken wordt in COBOL gebruik gemaakt van de asterisk (*) op positie 7.
COBOL-jargon maakt gebruik van de analogie tussen literatuur en programmatuur: Een in COBOL geschreven programma is opgedeeld in minimaal vier grote zgn. Divisions, die op hun beurt onderverdeeld kunnen zijn in Sections. (Er zijn uitbreidingen in de handel waar meer hier niet genoemde secties en/of divisies mogelijk zijn.) Groepen commando's zijn Paragraphs en elke lijn is een sentence. Net als in een tekst, worden lijnen afgesloten met een punt.
- Identification Division bevat algemene informatie over het programma: naam (verplicht), auteur, datum waarop het geschreven is, ...
- Environment Division beschrijft de omgeving:
- Data Division beschrijft interne en externe koppelingen via bestanden of media.
- File Section - datailinformatie over bestandsstructuren, zoals record- en veldbeschrijvingen.
- Working-Storage Section - interne variabelen, tabellen, ...
- Procedure Division bevat de eigenlijke instructies voor de processor
- Vrijwillige, maar wel aan te raden opdeling in Section(s) - De commando's inclusief Accept (standard in) / Display (standard out).
[bewerk] Bronnen
- Ebbinkhuijsen, Wim B.C., COBOL Alphen aan den Rijn/Diegem: Samson Bedrijfsinformatie bv, 1990. ISBN 90-14-04560-3.
[bewerk] Externe links
- ISO COBOL standards committee
- COBOL-onderzoekactiviteiten op de VU
- COBOL User Groups (COBUG)
- Compilers
Wikibooks heeft een Cursus over dit onderwerp: Programmeren in COBOL |
Overzicht van programmeertalen |
---|
Industrieel: Ada · AWK · Assembler · C · C++ · C# · COBOL · F# · Fortran · J# · Java · JavaScript · Lisp · Object Pascal · Pascal · Perl · PHP · Python · Rexx · Visual Basic |