Die BS2000-Compiler C/C++ können sowohl aus der BS2000-Umgebung (mit SDF) als auch aus der POSIX-Umgebung (POSIX-Shell) aufgerufen und mit Optionen gesteuert werden.
Compilersteuerung über die SDF-Schnittstelle
Sämtliche Compiler-Ein-/Ausgaben sind sowohl im BS2000-Dateisystem (DMS/PLAM) als auch im POSIX-Dateisystem möglich:
Eingabe von Quellprogrammen
Eingabe von Include-Dateien
Ausgabe von LLMs
Ausgabe von wiederübersetzbaren Quellprogrammen
Ausgabe von Übersetzungslisten
Ausgabe von Meldungslisten
Ausgabe von CIF-Informationen
Beliebige Mischfälle, d.h. die Ein- und Ausgabe sowohl von BS2000- als auch von POSIX-Dateien in einem Übersetzungslauf, sind möglich.
Die SDF-Schnittstelle des Compilers ist im Handbuch "C/C++-Compiler" [5]“ beschrieben.
Compilersteuerung über die POSIX-Shell-Schnittstelle
Für die Steuerung der C/C++-Compiler aus der POSIX-Umgebung stehen folgende POSIX-Kommandos zur Verfügung:
cc, c89 CC cclistgen | Übersetzen von C-Sourcen Übersetzen von C++-Sourcen Aufruf des globalen Listengenerators in C/C++ |
Diese Kommandos sind im Handbuch "C/C++ POSIX-Kommandos" [4] ausführlich beschrieben.
Sämtliche Compiler-Ein-/Ausgaben erfolgen ausschließlich im POSIX-Dateisystem.
In die Aufrufkommandos cc, c89 und CC ist auch eine Binde-Phase integriert, in der die übersetzten Objekte zu einer ausführbaren Einheit gebunden werden können.
Mit den Optionen und Operanden der oben genannten Aufrufkommandos sind weitgehend die Leistungen und Funktionen abgedeckt, die mit der Compiler-Steuerung über die SDF-Schnittstelle zur Verfügung stehen. Die Syntax der POSIX-Kommandos ist an der Definition im XPG4-Standard bzw. an den in UNIX-Systemen üblichen Shell-Kommandos orientiert.
Der Compiler unterstützt arithmetische Datentypen der Länge 64 (long long). Das ist eine Voraussetzung, um Zugriffe auf große Dateien in POSIX zu programmieren.
Hinweise zu CRTE
Da CRTE (Common RunTime Environment) die Laufzeitumgebung für C- und C++-Programme bereitstellt, ist es Voraussetzung für die Verwendung des C/C++-Compilers.
Die benötigte CRTE-Version hängt von der Version des eingesetzten Compilers ab. Nähere Informationen finden Sie in der Freigabemitteilung des C/C++-Compilers.
Zeichensätze für Ein-/Ausgabe-Dateien
Die Quellprogramme und Include-Dateien können im EBCDIC- oder ASCII-Code vorliegen. Somit ist es auch möglich, Quellprogramme aus Dateisystemen zu übersetzen, die auf einem fernen UNIX-System liegen. Alle Dateien eines Dateisystems (lokales POSIX-Dateisystem oder eingehängtes fernes Dateisystem) müssen im selben Zeichensatz vorliegen. D.h. im POSIX-Dateisystem müssen alle Dateien im EBCDIC-Code und im fernen UNIX-Dateisystemen müssen alle Dateien im ASCII-Code vorliegen.
Die Umgebungsvariable IO_CONVERSION muss mit dem Wert „YES“ belegt sein (siehe dazu auch "Kopieren und Konvertieren von Dateien").
Der Ausgabe-Zeichensatz der Textdateien (Listen etc.) richtet sich nach dem Zeichensatz des Zieldateisystems.
Es wird generell EBCDIC-Ablaufcode erzeugt.