Prüft das C ++ - Komitee seine neuen Designspezifikationen mit einer Art Prototyp-Compiler, bevor es einen neuen Standard veröffentlicht? Oder veröffentlichen sie einen Standard, der eigentlich nur theoretisch ist, bis die großen Compiler ihn implementieren?
c++
language-design
standards
Matthew James Briggs
quelle
quelle
boost::shared_ptr
=>std::shared_ptr
.boost.lambda
=> C ++ 11 Lambda-Ausdrücke).Antworten:
Das C ++ - Standardkomitee hat Statuten und Regeln, die meisten betreffen jedoch die Struktur der Organisation, das Einreichen von Vorschlägen, die Abstimmung, die Veröffentlichung des Standards usw. und nicht so sehr die technischen Details des Standards selbst oder wie dieser kann getestet werden.
Soweit mir bekannt ist, gibt es keine formale Anforderung zum "Testen" eines Features oder seines Designs. C ++ ist auch insofern einzigartig, als es keine Referenz oder "primäre" Implementierung gibt (z. B. Microsoft CLR, Oracle JDK, Zend PHP). Die Komiteemitglieder bestehen jedoch aus vielen Organisationen mit umfassenden Kenntnissen der Sprache und der Compiler-Implementierung. Wenn Sie beispielsweise diesem vorherigen Link folgen, sehen Sie Vertreter von Microsoft und Intel, die beide über angesehene C ++ - Compiler verfügen. Red Hat und einige andere Unternehmen, die zu GCC beitragen, sind ebenfalls beteiligt.
Wenn Komiteemitglieder ein neues Feature vorschlagen, haben sie bereits eine gute Vorstellung davon, ob es machbar ist, ob es mit anderen Features in Konflikt steht oder ob die Grammatik in einer Weise mehrdeutig ist , die das Parsen unnötig erschwert. ( Hier ist eine gute Frage zur Grammatik von C ++ )
Die kurze Antwort lautet: "Nein, das Komitee muss seine Entwürfe nicht mithilfe von Prototypen testen." Es besteht jedoch kein großer Bedarf, da die Komiteemitglieder Experten in C ++ sind, die alle Details auf einer Ebene verstehen, die die große Mehrheit der Programmierer nicht kennt. Denken Sie daran, diese Leute sind Spracharchitekten , die Experten für Sprachtheorie und Compiler-Design sind.
Die Einbeziehung des Compiler - Anbieters in dem Prozess gegeben, ist es möglich , dass ein oder mehr von ihnen können ein neues Feature Prototyp, aber auch hier gibt es keine formale Voraussetzung dafür , noch ist es etwas , was ich von dem in öffentlich zugänglichen Dokumenten gelesen habe C ++ Ausschuss.
Sie tendieren auch dazu, sehr konservativ zu sein und inkrementell neue Features hinzuzufügen, die in der realen Welt gefragt sind, ohne große Mengen neuer Features anzugeben, die sich als riskant erweisen können. Tatsächlich haben sie in den letzten Jahren neue Funktionen hinzugefügt, die als proprietäre Erweiterungen oder Open-Source-Bibliotheken existierten und bereits in der realen Welt funktionieren. Zum Beispiel enthalten C ++ 11 und C ++ 14 Teile von Boost , das bereits in der Praxis in mehreren Compilern und Ausführungsumgebungen getestet wurde. Es ist nicht erforderlich, etwas zu testen, das bereits getestet wurde.
quelle