Hello,
<gebetsmühle>Objektorientierung ist eine Denkweise und findet in den Köpfen der Programmierer statt. Es ist völlig unerheblich, ob diese Denkweise durch Eigenschaften des Compilers oder der Programmiersprache begünstigt wird; selbst in Assembler kann man objektorientiert programmieren.</gebetsmühle>
Deine Gebetsmühle mach die Aussage auch nicht richtiger. Selbstverständlich erkenne ich an, das man eine an die OOP angelehnte Denkweise auch auf Assembler-Niveau umzusetzen versuchen kann.
Du fängst am falschen Ende an.
Erst war diskrete Programmierung
Dann kam ByteCode + Inlinedaten
Dann kam ein Tool: Assembler mit (1.) merkbaren Abkürzungen für verfügbare Befehle und (2.) mit der Unterstützung des Tools für die Auflösung von Adressen
Dann kam der Makroassembler: Wiederkehrende Assemblersequenzen und deren Abwandlungen konnten parametriesierbar als Module verwendet werden.
Und dann kamen die frühen Ideen der Objektorientierung auf.
Bei Aufruf eines Makros (natürlich inzwischen reentranzfähig!) wurden Stammvariablen udn Stammfunktionen des Moduls initialisiert und die Funktionen entweder mit der Adresse zu einem Rücksprung belegt oder aber mit der Adresse zu einem Funktionsaufruf belegt.
Dabei wurde dann i.d.R. auch ein Zeiger auf einen Parameter-Übergabe-Bereich übergeben.
Nur weil die Technik noch nicht weit genug entwickelt war (Speicher, Geschwindgkeit, Protected Mode), waren das doch die Anfänge der Objektorientierten Programmierung.
Versuche doch einmal, ohne die passende IDE ein OPP-Programm zu erstellen. Dann wirst Du vielleicht selber doch noch herausfinden, dass OOP aus den Programmiertechniken in Assembler, einem weit entwicklenten Hilfsprogramm zu dren Erzeugung und der passenden Systemarchitektur besteht. Auf die Systemarchitektur kann man nach der Theorie der OOP sogar noch verzichten auf Kosten der Sicherheit (M$ hat das jahrelang zugunsten der Rückwärtskompatibilität getan), aber ohne Hilfsprogramm möchte ich die OOP-Strukturen nicht mehr gerne erzeugen müssen.
Dabei sind diejenigen in (Turbo-)Pascal und Nachfolgern erzeugten sogar noch sehr viel leichter per Hand erzeugbar, als diejenigen in C und C++ erzeugten. Und das steht witzigerweise der Sicherheit des entstehenden Codes entgegen. Pascals Nachfahren sind lange nicht so fehlerträchtig wie C's Nachfahren.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg