COBOL
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 staat niet op de nominatie om her-ontwikkeld te worden in een andere taal (bron: Automatiseringsgids week 41/2004).
Cobol is ontwikkeld 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. 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 varianties
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 open sourcegemeenschap heeft ook een paar COBOL-compilerprojecten, te weten:
- Open Cobol (www.opencobol.org)
- Tiny Cobol (tiny-cobol.sourceforge.net)
Deze open sourcecompilers 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 IBM’s versie S-390 COBOL. 80% van de programma’s die zijn geschreven in COBOL zijn geschreven in IBM's variant.
[bewerk] Structuur
COBOL is een regelgeoriënteerde procedurele taal en kan worden ingedeeld als een derde generatietaal. Een uitzondering hierop is natuurlijk de variant OO-COBOL, deze wordt doorgaans bestempeld als een vierde generatietaal.
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.
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 gebruikgemaakt van de asterisk (*) op positie 7.
Een in COBOL geschreven programma kan worden opgedeeld in vier grote delen (divisions) genaamd:
- identification division
- environment division
- data division
- procedure division
De identification division bevat de algemene informatie over het programma: naam, auteur, datum waarop het geschreven is, enzovoort.
De environment division beschrijft de context waarin het computerprogramma draait. Ze bestaat uit enerzijds de configuration section, met een beschrijving van de diverse betrokken machines, en de input-output section, waarin bestanden en andere media voor invoer en uitvoer aan bod komen.
De data division definieert de gegevensstructuren die het programma hanteert: enerzijds de gegevensstructuren voor invoer en uitvoer in de file section, anderzijds de gegevensstructuren voor intern gebruik in de working-storage section.
De procedure division bevat de eigenlijke programma-instructies voor de verwerking van de gegevens. Een eventuele opdeling in sections wordt hier door de programmeur zelf bepaald.
[bewerk] Externe links
Overzicht van programmeertalen |
Industrieel: |