Egal welche Sprache Dein Begehr in diesem Thread sein möge (könnte ja sein, daß Du plötzlich sagst, COBOL ist jetzt das Thema Deiner Überlegungen):
Also, .., unabhängig von der verwendeten Computersprache gilt folgendes:
Entscheidend für die Überführung von Programmcode von einem Betriebssystem zu einem anderen sind die Schnittstellenfunktionen, gewissermaßen Deine eigenen "Intrinsics", vielleicht halt teuer zugekauft (C-ISAM, Oracle DB, SAP ...), je nach der (geistigen) Kapazität Deiner eigenen Softwarefirma.
Der Bildschirm (das Datei / DB-System, die Peripherie) muß unter den verschiedenen Betriebssystemen unterschiedlich angesprochen werden, deswegen sollte eine 'black box' - Schnittstellenfunktion den eigenen Code portabel - also allgemeingültig - lauffähig machen. Den kleinsten gemeinsamen Nenner erschafft man sich durch die prinzipielle Verwendung von Schnittstellenfunktionen, wie sie in Bibliotheken (APIs) vorhanden sind. Viele APIs sind betriebssystemspezifisch, nur die wenigsten beinhalten wirklich portable Schnittstellenfunktionen, im Sinn von:
TextAusgabe(Fensterhandle,String,Zeichenanzahl)
DateiÖffnen(ZugriffspfadplusDateiname,Zugriffsrech te)
usw.
Pro Betriebssystem und auch pro Zielmaschinentyp (Beispiel Linux unter IBM AS400 bzw. Linux unter x86-Architektur) muß es einen Konkretniederschlag dieser idealen Schnittstellen-API geben, wo die allgemeine Funktion TextAusgabe( ... ) intern MS Windows oder Linux spezifisch umgesetzt implementiert ist.
Diese Schnittstellenfunktionen zu schreiben dauert jahrelang, deswegen werden kommerzielle Libs auch teuer verkauft von den jeweiligen Entwicklerfirmen.
Alles klar ?
Also: C++ portabel ? Nein ! Java ? Schon eher, aber auch - ein klares Nein-Jein !
Deswegen, schön brav Schnittstellenfunktionbau erlernen, und auch andere Dinge wie Datenwortbehandlung auf Assemblerebene nicht außer acht lassen. Stichwort: Little Endian gegenüber Big Endian. Ebenso wie Standard-Datenwortbreite. Sonst sind Programme nicht übertragbar von einem System auf das andere.
Der Compiler selbst muß sowieso ANSI konform sein, sonst sollte man ihn/bzw. seine Erweiterungsmöglichkeiten tunlichst nicht benutzen im Hinblick auf die erwünschte Portabilität.
der Code muß Schnittstellenfunktionen aufrufen und
der Code muß auch - ausschließlich und nur - ANSI konforme Befehle und Vorgehensweisen verwenden
Das portable Programmieren besteht aus:
* Schnittstellenfunktionen schaffen
* Anwendungen, die darauf aufbauen, schreiben
* Reuse-Dividende lukrieren ("das Rad nicht neu erfinden", die Funktion TextAusgabe wurde auf allen Zielcomputersystemen implementiert und ist insofern wiederverwendbar und deshalb eine enorme Erleichterung aufgrund der Zeitersparnis, das ganze nicht im Applikationscode sondern in der API-Schnittstellenfunktion individuell an das Betriebssystem/die Hardware/den Compiler verwirklicht zu haben) und derart als Firma zu gedeihen
mfg
Kikakater
|