Programmiersprache: Nächste Version von C in Arbeit
![Programmiersprache: Nächste Version von C in Arbeit](https://heise.cloudimg.io/width/700/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/2/5/3/9/4/5/0/cog-wheels-2125169_1920-10f02fb95d94c422.jpeg)
(Bild: qimono / Pixabay)
Die Arbeitsgruppe zur Ausarbeitung des nächsten C-Standards hat nun an einer wohl 2022 erscheinenden neuen Sprachversion losgelegt.
Das Komitee zur Entwicklung des C-Sprachstandards (WG14) hat laut einem Blog-Beitrag von Jens Gustedt [1] nun den Auftrag erhalten, die nächste Revision der Programmiersprache zu erstellen. Diese läuft derzeit unter der Bezeichnung "C2x" – "x" steht hier für die Ziffern des Jahres, in dem die neue Norm erscheinen wird. Es liegt bereits ein erster Arbeitsentwurf ("Working Draft") vor, der die Änderungen beschreibt, die auf der letzten Tagung des Komitees im Oktober in Pittsburgh erarbeitet wurden. C2x folgt auf das im Juni 2018 freigegebene C18, das bis auf einige Fehlerkorrekturen und einem neuen Wert von __STDC_VERSION__ denselben Umfang wie C11 hatte.
Die meisten der bislang genehmigten Änderungen stellen Verfeinerungen des Verhaltens von C in den unterschiedlichen Implementierungen dar. Auch hat man offenbar Wert gelegt, das Zusammenspiel mit der Schwestersprache C++ zu verbessern. Bei allem hat man versucht, die Änderungen in Abstimmung mit den Vorläufern C11 und C17 aufzusetzen. Wichtig ist außerdem, dass sich künftige Ausgaben der Sprache kompatibel zum bestehenden C-Code verhalten. Diese grundlegenden Absichten wurden bereits 2016 im C2x Charter festgelegt [2].
Was ist anders?
Zu den Änderungen, die die Arbeitsgruppe zur Entwicklung der C-Norm (ISO/IEC 9899) überwacht, zählen unter anderem:
- "volatile" Semantiken für lvalues
- eine Alignment Specifier Expression Evaluation
- anonyme Strukturen im Verhalten von Unions
- eine mehrdeutige Spezifikation von FLT_EVAL_METHOD
- eine klarere Verwendung des Schlüsselworts restrict
- eine bessere Definitionen für das Verhalten von Unions
Weitere Änderungen umfassen die Behandlung von Divide-by-Zero-Fällen in pow(), Auswertungsformate für Gleitkommazahlen und weitere Klarstellungen im Umgang mit Wide Character Encoding Conversions. static_assert soll sich außerdem in C genauso verhalten wie in C++.
C22?
Im Moment sieht es danach aus, dass in mindestens den nächsten zwei Jahren weitere Vorschläge begutachtet und bearbeitet werden. Einen überarbeiteten Standard strebt die WG14 bis Ende 2021 an. Das finale Veröffentlichungsdatum ist für 2022 vorgesehen.
Die jüngsten Details zu den Änderungen am Standard finden sich in einem Dokument [3] zum C-Standard, in dem die derzeitigen Änderungen kenntlich gemacht sind. (ane [4])
URL dieses Artikels:
https://www.heise.de/-4219392
Links in diesem Artikel:
[1] https://gustedt.wordpress.com/2018/11/12/c2x/
[2] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2086.htm
[3] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf
[4] mailto:ane@heise.de
Copyright © 2018 Heise Medien