Der Standard-Compiler



  • Gibt es überhaupt einen bzw. den Standard-C(++)-Compiler oder stellt das Komittee einfach irgendwelche Wünsche an die Compilerhersteller und die sollen den Wunsch in die Tat erfüllen?

    Das finde ich irgendwie komisch.

    ihr nicht?



  • Ellipse(...) schrieb:

    Gibt es überhaupt einen bzw. den Standard-C(++)-Compiler

    Nein.

    oder stellt das Komittee einfach irgendwelche Wünsche an die Compilerhersteller und die sollen den Wunsch in die Tat erfüllen?

    Nein. Das Komittee legt in einem Standard fest, was ein standardkonformer Compiler zu können hat. Ob die Compilerhersteller das alles exakt so umsetzen bzw. wo sie davon abweichen, ist deren Sache.

    De facto gibt es keinen Compiler der den Standrad vollständig umsetzt.

    Das finde ich irgendwie komisch.

    ihr nicht?

    Nö, wieso?



  • Nein. Nicht komisch. So wird keine spezielle Plattform bevorzugt, sondern bleibt allgemein und jeder kann sich seine eigene Implementierung mit Optimierungen bauen.

    Afaik wird die Machbarkeit von Vorschlägen des Komites schon in einem echten Compiler geprüft. GCC eignet sich da eigentlich recht gut dafür, aber wenn, dann sind das Einzelentscheidungen von Entwicklern.



  • drakon schrieb:

    Afaik wird die Machbarkeit von Vorschlägen des Komites schon in einem echten Compiler geprüft.

    Inzwischen vielleicht. War aber nicht immer so, sonst hätte das export keyword es nie in den Standard geschafft 😉



  • pumuckl schrieb:

    drakon schrieb:

    Afaik wird die Machbarkeit von Vorschlägen des Komites schon in einem echten Compiler geprüft.

    Inzwischen vielleicht. War aber nicht immer so, sonst hätte das export keyword es nie in den Standard geschafft 😉

    Hehe. Ist wohl so. Auch das Standardisierungskomitee lernt manchmal noch was. 🙂

    btw: Templates wären wohl auch kein Thema gewesen. 🤡



  • pumuckl schrieb:

    De facto gibt es keinen Compiler der den Standrad vollständig umsetzt.

    Wobei der Comeau als SEHR Standardkompatibel gilt.



  • Das Komitee besteht aus Freiwilligen. Unter den Freiwilligen sind auch Leute dabei, die Compiler mitentwickeln. Gute Vorschläge werden diskutiert und ggf verfeindert. Erst nach einer Abstimmung kann so etwas im aktuellen Entwurf der nächsten Version gelangen. Ohne Konsens passiert da nicht viel. Förderlich für eine Akzeptanz eines neuen Merkmals ist u.a. eine Proof-of-concept-Implementierung. So hat man zB schon früh Rvalue-Referenzen nach einem Patch für den GCC ausprobieren können.

    Im Netz findest Du bestimmt das eine oder andere Interview mit Komitee-Mitgliedern (Bjarne Stroustrup, Herb Sutter, ...), die aus dem Nähkästchen plaudern.

    De facto gibt es keinen Compiler der den Standrad vollständig umsetzt.

    Nicht? Ich dachte, der C++ Compiler von Comeau wäre ein solcher.



  • krümelkacker schrieb:

    De facto gibt es keinen Compiler der den Standrad vollständig umsetzt.

    Nicht? Ich dachte, der C++ Compiler von Comeau wäre ein solcher.

    Näher, als alle anderen bestimmt, aber vollständig? Ich bezweifle, dass er vollständig umgesetzt ist. (das sage ich jetzt ohne jeglichen Beweis zu liefern; ich halte es nur für sehr unwahrscheinlich, da man ja z.B auch noch den C Standard zum Teil berücksichten muss)



  • asc schrieb:

    pumuckl schrieb:

    De facto gibt es keinen Compiler der den Standrad vollständig umsetzt.

    Wobei der Comeau als SEHR Standardkompatibel gilt.

    krümelkacker schrieb:

    De facto gibt es keinen Compiler der den Standrad vollständig umsetzt.

    Nicht? Ich dachte, der C++ Compiler von Comeau wäre ein solcher.

    Nah dran, aber nicht komplett. Ich finds leider grade nicht wieder, aber vor kurzem habe ich einen kleinen Artikel gelesen wo verschiedene Standard-Features auf diversen Compilern getestet wurden. EDG und Comeau landen da irgendwo bei 99,8% Abdeckung - aber eben nicht 100%



  • 100% geht wohl nicht, weil sich der C++-Standard an bestimmten Stellen widerspricht. 😃

    Mir fällt da gerade undefiniertes Verhalten bei Nullzeiger-Dereferenzierung ein, das innerhalb typeid definiert ist. Oder wie export andere Sprachfeatures beeinträchtigt, siehe Why We Can't Efford Export, Kapitel 2.6: Changes meaning of existing language features (unaddressed in the standard).



  • Ist Comeau überhaupt ein vollständiger Compiler? Ist das nicht ein Frontend für Compilerhersteller? 🙄

    Heute sitzen aber im Komitee viel mehr Compilerhersteller. Z.B. sind ja die Math-Lib raus geflogen, weil keiner Geld in diese investieren wollte. Weil die Qualitätssicherung dafür sehr kostspielig wäre.

    Die Concepts sind auch raus geflogen, weil sich ein paar Compiler-Hersteller gesträubt haben.

    Aber insgesamt finde ich läuft das schon besser ab. Das sieht man daran, das viele Compiler schon viele kommende C++0x-Features unterstützen.



  • Artchi schrieb:

    Die Concepts sind auch raus geflogen, weil sich ein paar Compiler-Hersteller gesträubt haben.

    Es gab (Intervies mit Herb Sutter und Bjarne Strousstrup zufolge) Differenzen darüber, ob die Mängel an Concepts bis zur Fertigstellung des Standards beseitigt werden können. Die Mehrheit glaubte, dass dies nicht zu schaffen ist. Daher vermute ich, dass die Mitglieder des Komitees das (auch intern) nicht so formulieren würden, wie du.

    Lars



  • Artchi schrieb:

    Ist Comeau überhaupt ein vollständiger Compiler? Ist das nicht ein Frontend für Compilerhersteller? 🙄

    Comeau ist kein vollständiger Compiler, aber "Frontend für Compilerhersteller" trifft es nicht. "Frontend für andere Compiler" wäre treffender (Es ist ja kein Frontend für die Hersteller). Comeau übersetzt das Programm effektiv in C, und dies wird dann durch einen C-Compiler übersetzt.

    Was C++0x angeht, sind aber einige Sachen, die heraus geflogen sind, auch nur zeitlich nach hinten geschoben (TR2 & Co).



  • Comeau ist ein vollständiger C++ Compiler. Dass er sich anderer C-Compiler als Code-Generator bedient ändert daran IMO nixe.



  • krümelkacker schrieb:

    Das Komitee besteht aus Freiwilligen. Unter den Freiwilligen sind auch Leute dabei, die Compiler mitentwickeln. Gute Vorschläge werden diskutiert und ggf verfeindert.

    Ich hatte mal eine c++ Vorlesung bei einer Professorin, die Mitglied des Komitees war. Sie berichtete, dass die Compilerhersteller sehr wohl gut vertreten waren und natürlich versuchten die Features, die in ihren Produkten bereits realisiert waren, zum Standard zu machen. Es soll da ein rauher Ton geherrscht haben und mitunter sogar zu Handgreiflichkeiten gekommen sein. Der Kommerz ist überall. 🙂



  • Mitleid schrieb:

    Es soll da ein rauher Ton geherrscht haben und mitunter sogar zu Handgreiflichkeiten gekommen sein. Der Kommerz ist überall. 🙂

    LOL. Kennst du "The Big Bang Theory"? Schaue die Serie gerade und dort gibt es auch ein kleines Handgemenge bei einem Vortrag. Genau das habe ich jetzt vor meinem inneren Auge gesehen, als ich deinen Satz gelesen habe. 🤡


Log in to reply