ubuntuusers.de

OpenCOBOL

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

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 3.2 implementiert große Teile des COBOL 85-Standards, des ISO COBOL Standards (2002, 2014, 2023) sowie viele Spracherweiterungen anderer Compiler 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]:

  • gnucobol (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install gnucobol 

Oder mit apturl installieren, Link: apt://gnucobol

Es sind momentan zwei Versionen verfügbar, die man auch explizit über die Pakete gnucobol3 (aktuelles Release 3.x) und gnucobol4 (Beta-Version Version 4) auswählen kann.

Programmbeispiel

Um die Funktionsfähigkeit von GnuCOBOL zu testen, kann 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: siehe Dokumentation
-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!

Warnungen kann man über verschiedene Parameter aktivieren, z.B.:

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.

Die Dokumentation enthält eine ausführliche Beschreibung der vorhandenen Parameter.

Diese Revision wurde am 10. November 2023 17:46 von Femtom erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung