ubuntuusers.de

OpenCOBOL

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wenn man Programme, die in COBOL geschrieben sind bzw. selber Programme in COBOL schreiben möchte, unter Linux kompilieren möchte, benötigt man einen Compiler wie GnuCOBOL 🇬🇧 (ehemals OpenCOBOL). Dieser übersetzt COBOL-Quellcode in C-Quellcode und kompiliert diesen generierten Code mittels dem GCC.

Die aktuelle Version 1.1 implementiert große Teile des COBOL 85- und COBOL 2002-Standards sowie Teile von IBM COBOL, Micro Focus COBOL, MVS COBOL, BS2000 COBOL und ermöglicht grafische Bildschirmausgaben im Terminal durch Benutzung von Ncurses. Weiterhin ist es möglich, auf Datenbanken zuzugreifen sowie Webservices zu erstellen. Entgegen allem Anschein befindet sich GnuCOBOL in aktiver Entwicklung!

Installation

Möchte man GnuCOBOL unter Ubuntu einrichten, muss man folgendes Paket installieren [1]:

  • open-cobol (universe)

Paketliste zum Kopieren:

sudo apt-get install open-cobol 

Oder mit apturl installieren, Link: apt://open-cobol

Programmbeispiel

Um die Funktionsfähigkeit von GnuCOBOL zu testen, sollte man das unten stehende "Hallo-Welt"-Programm in einem Editor [2] erstellen:

1
2
3
4
5
IDENTIFICATION DIVISION.
PROGRAM-ID. HALLO-WELT.
PROCEDURE DIVISION.
      DISPLAY "Hallo Welt!".
STOP RUN.

Anschließend speichert man die Datei als HalloWelt.cbl und öffnet ein Terminal [3], in welches man folgenden Befehl zum Übersetzen des Quellcodes eingibt:

cobc -x -free HalloWelt.cbl 

Sofern man keine Fehler gemacht hat, erscheint im selben Verzeichnis eine ausführbare Datei namens HalloWelt. Diese Datei kann man mit dem folgenden Befehl ausführen:

./HalloWelt 

Wichtige Parameter

Kompilierungsmöglichkeiten

Folgende Parameter können den Übersetzungs- und Kompilierungsprozess beeinflussen. Ohne Angabe von Parametern versucht der Compiler ein dynamisch-gelinktes Modul zu bauen. Dies entspricht dem Kommandozeilenparameter -m.

Kompilierungsmöglichkeiten
Parameter Erläuterung
-E Nur Präprozessor. Compiler-Richtlinien ausgeführt werden. Kommentarzeilen werden entfernt. COPY-Anweisungen werden erweitert. Die Ausgabe des Ergebnisses erfolgt im Terminal
-C Der Quellcode wird in C übersetzt. Das Ergebnis wird als *.c gespeichert. Außerdem wird die dazugehörige Header-Datei erzeugt (*.h)
-S COBOL-Quelltext wird übersetzt, kompiliert und die Header- und der C-Quelltext werden zusammengefasst. Das Ergebnis wird als *.s gespeichert
-c Der Quellcode wird nur übersetzt und kompiliert, aber noch nicht gelinkt. Das Ergebnis wird als *.o gespeichert
-m Der Quellcode wird übersetzt, kompiliert und ein dynamisch-gelinktes Modul (z.B. ein Unterprogramm) wird erzeugt. Das Ergebnis wird als *.so gespeichert. Dies ist der Standard.
-x Der Quellcode wird übersetzt, kompiliert und ausführbar gemacht
-std=<dialect> Kompiliert Quellcode, der für einen spezifischen Dialekt geschrieben wurde. Verfügbare Dialekte: cobol2002, cobol85, ibm, mvs, bs2000, mf (Micro Focus), default
-h Zeigt die Hilfe an. Hier sind weitere Parameter aufgezählt, die Code-Optimierungen oder zusätzliche Warnungen bieten

Quellcodeformate

OpenCOBOL unterstützt sowohl fixe als auch freie Formatierungen des Quellcodes:

Quellcodeformate
Parameter Erläuterung
-fixed Fixes Format, d.h. die ersten 6 Spalten in jeder Zeile müssen entweder frei oder durchnummeriert (z.B. 000100, 000200, ...) sein. Weiterhin dürfen keine Zeichen nach der 72. Spalte stehen. Dies ist der Standard.
-free Freies Format, d.h. die ersten 6 Spalten in jeder Zeile müssen nicht frei gelassen bzw. nummeriert werden. Keine Spaltenbegrenzung vorhanden. Muss beim Übersetzungs-/Kompilierungsbefehl mitgegeben werden, sofern dieses Format genutzt wird, um Fehler zu vermeiden. (s. obenstehendes Programmbeispiel)

Die fixe Schreibweise ohne Zahlen ist die gebräuchlichste unter COBOL-Programmierern, da man die Quelltexte somit auch unter anderen Compilern problemlos kompilieren kann, die den Parameter -free nicht kennen. Allerdings sollte man darauf achten, keine Compiler-spezifischen Quelltexte zu schreiben, wenn man verschiedene Compiler bedienen soll.

Das "Hallo-Welt"-Programm im fixen Format ohne Nummerierung:

1
2
3
4
5
       IDENTIFICATION DIVISION.
       PROGRAM-ID. HALLO-WELT.
       PROCEDURE DIVISION.
              DISPLAY "Hallo Welt!".
       STOP RUN.

Und mit Nummerierung:

1
2
3
4
5
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HALLO-WELT.
000300 PROCEDURE DIVISION.
000400        DISPLAY "Hallo Welt!".
000500 STOP RUN.

Möchte man das fixe Format kompilieren und ausführbar machen, kann man das -free aus dem obigen Beispiel weglassen:

cobc -x HalloWelt.cbl 

Warnungen beim Kompilieren

Hinweis:

Standardmäßig werden keinerlei Warnungen, sondern nur Fehler angezeigt!

Folgende Parameter können weiterhin übergeben werden, um die Anzahl der Warnungen zu beeinflussen:

Warnungen beim Kompilieren
Parameter Warnungen
-Wall Alle Warnungen werden angezeigt.
-Wcolumn-overflow Warnt, wenn im Quellcode Zeichen nach der 72. Spalte stehen.
-Wparentheses Warnt, wenn Klammern um eine AND-Verknüpfung in einer OR-Verknüpfung vergessen wurden.

f Der Parameter -h zeigt zusätzliche Möglichkeiten für Warnungen an.

Diese Revision wurde am 11. Dezember 2018 21:00 von Beforge erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung