Kategorien
Schulung

COBOL: neuer IBM Compiler

Wir haben ihn direkt probiert, den neuen IBM COBOL Compiler.

IBM setzt auf kompatibilität mit x86 Systemen und bietet hierfür einen Compiler zum Kauf an. Der Preis ist noch unbekannt – die 60 Tage Testversion haben wir als Podman Container getestet. Hier kleiner Merkzettel nach unserem CCGL Workshop:

Wir haben zunächst ein Dockerfile erstellt in das wir die relevanten RPM Files von IBM kopieren

FROM centos
COPY IBM_COBOL_V1.1.0_LINUX_EVAL.x86-64/images/rhel/cobol.cmp.1.1.0-1.1.0.0-210415.779.x86_64.rpm /cobol/
COPY IBM_COBOL_V1.1.0_LINUX_EVAL.x86-64/images/rhel/cobol.cmp.license-eval.1.1.0-1.1.0.0-210415.779.x86_64.rpm /cobol/
COPY IBM_COBOL_V1.1.0_LINUX_EVAL.x86-64/images/rhel/cobol.rte.1.1.0-1.1.0.0-210415.779.x86_64.rpm /cobol/

„podman build“ erstellt nun ein Image mit den RPM’s im Verzeichnis /cobol/. „podman images“ zeigt die ID. Starten wir das Ganze initial mit „podman run -it –mount type=bind,source=/austausch,target=/home/ –name=IBM_cobol 096972054812“. Mit dem initialen Kommando legen wir gleichzeitig einen Container mit dem Namen „IBM_cobol“ an und mounten ein Austauschverzeichnis. Hiernach kann der Container mit „podman start -ia IBM_cobol“ gestartet werden.

Im Container wechseln wir in das /cobol/ Verzeichnis und sorgen erst einmal für die Auflösung der Abhängigkeiten lt. IBM Installationsanleitung:

yum install perl gcc glibc.i686 glibc-devel.i686 libgcc.i686 libstdc++.i686 libquadmath.i686
rpm -Uvh cobol/*.rpm
ln -s /opt/ibm/cobol/1.1.0/usr/bin/cob2 /usr/bin/cob2
ln -s /opt/ibm/cobol/1.1.0/etc/cob2.cfg /etc/cob2.cfg

Das war’s schon. „cob2 -V“ sollte jetzt die Version des Compilers wiedergeben. Als erstes haben wir ein „Hello World“ Code geschrieben und diesen, ähnlich GNUcobol, mit „cob2 code.cbl -o test“ kompiliert. „test“ ist erfolgreich ausführbar und es wird per default ein Bericht generiert.

Im direktem Vergleich mit GNUcobol fällt die strengere Kontrolle der Code Formatierung auf. Code, den wir geschrieben haben, mit Link zu Librarys wie libq, müssen wir noch umschreiben.

Happy Coding!