Alte C++ Preprozessor/Compiler

Gast #1275104
Lesenswert?

Früher, ganz am Anfang der C++-Zeit gab es doch so Preprozessoren, die 
aus einem C++-Quelltext einen C-Quelltext machten. Das war so eine Art 
Zwischenschritt, denn später gab es dann auch direkte Compiler die 
Objektcode erzeugten.
Was ich meine hat nichts mit dem Preprozessor zu tun der auch schon 
damals Textersatz mit #define gemacht hat. Er hat vielmehr die 
Klassenmethoden in C-Funktionen übersetzt (unter anderem).

Kennt jemand sowas noch? Gibt es das noch? Evtl. zum runterladen?
#1275159
Lesenswert?

Sicher gab es das. Problem ist halt, dass man den heutigen 
Sprachstandard von C++ nicht vollständig auf C abbilden kann. Sowas wie 
z.B. public, private und protected gibt's halt in C nicht. Oder es wäre 
dann halt alles public, aber das führt den Sinn der Datenkapselung ad 
absurdum.

Ansonsten bau Dir halt ne struct mit Funktionszeigern. Voilà, eine 
Klasse! Nimm diesen Code in eine neue struct auf und bau was dazu. 
Voilà, Vererbung! :-)
#1275421
Lesenswert?

Mark Brandis schrieb:
> Sicher gab es das. Problem ist halt, dass man den heutigen
> Sprachstandard von C++ nicht vollständig auf C abbilden kann. Sowas wie
> z.B. public, private und protected gibt's halt in C nicht. Oder es wäre
> dann halt alles public, aber das führt den Sinn der Datenkapselung ad
> absurdum.
>
> Ansonsten bau Dir halt ne struct mit Funktionszeigern. Voilà, eine
> Klasse! Nimm diesen Code in eine neue struct auf und bau was dazu.
> Voilà, Vererbung! :-)

Die gibt's immer noch.
Bestes Beispiel und z.Z. auch der standardkonformste C++-Compiler:
http://www.comeaucomputing.com/
http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B
#1275460
Lesenswert?

Mark Brandis schrieb:

> Sicher gab es das. Problem ist halt, dass man den heutigen
> Sprachstandard von C++ nicht vollständig auf C abbilden kann. Sowas wie
> z.B. public, private und protected gibt's halt in C nicht.

Konnte man anfangs auch schon nicht. Ein solcher Präcompiler ist 
notwendigerweise ein vollständiger Compiler, der nur zufällig C Code 
statt Assembler- oder Maschinencode auswirft. Sichtbarkeitsregeln 
spielen im C Compiler dann keine Rolle, weil das alles vorneweg maskiert 
wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren