Forum: PC-Programmierung Alte C++ Preprozessor/Compiler


von Ahem (Gast)


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?

von Klaus W. (mfgkw)


Lesenswert?


von Mark B. (markbrandis)


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! :-)

von Arc N. (arc)


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

von (prx) A. K. (prx)


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.

von Karl H. (kbuchegg)


Lesenswert?

Yep.
Der erste Compiler dieser Art war meines Wissen CFront. Vom Meister 
persönlich gecodet.

von Olaf D. (Firma: O.D.I.S.) (dreyero)


Lesenswert?

Hi,

erwähnenswert ist auch dieses Projekt:

http://llvm.org/

Damit ist schon Qt nach C übersetzt worden.

Gruß

Olaf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.