Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397

Issue N2 2025 year

DOI: 10.17587/prin.16.59-71
About Some Innovations of the C Programming Language Standard C23
K. A. Kostiukhin, Senior Researcher, kost@niisi.ras.ru, G. L. Levchenkova, Senior Researcher, galka@niisi.ras.ru, S. V. Samborskii, Senior Researcher, sambor@niisi.ras.ru, Federal State Institution "Scientific Research Institute for System Analysis of the Russian Academy of Sciences", Moscow, 117218, Russian Federation
Corresponding author: Konstantin A. Kostiukhin, Senior Researcher, Federal State Institution "Scientific Research Institute for System Analysis of the Russian Academy of Sciences", Moscow, 117218, Russian Federation, E-mail: kost@niisi.ras.ru
Received on October 22, 2024
Accepted on November 20, 2024

The article discusses some of the innovations of the C23 standard that are relevant to programmers. Tests have been proposed and implemented to verify these innovations on the latest (at the time of writing) version of the popular GCC and clang compilers. A forecast is made regarding the further standardization of the C language. It can be noted that the GCC and clang compilers mainly support the C23 standard. Some inconsistencies and problems were found. If we try to somehow summarize the C23 standard with one idea, then, perhaps, this is a movement towards the "universality" or "self-sufficiency" of the C language. I.e., in order to implement in C typical tasks, you should have an idea about the hardware (processor and peripherals), the assembly language, the format of object files and the operating system. This is justified when it comes to system programming, but, according to the authors, there is another place for the C language, it is an effective (both in productivity and in memory) replace­ment for languages like Java and C++. At the same time, it is desirable that the programmer is not required to know anything other than the standard C language. Many of the features added to the C language by the C23 standard can be discussed from this point of view. Another trend that can be traced in different parts of C23 is the influence of C++. In addition to unifying the syntax in the form of new keywords, there are also more obvious examples of C++ influence. The future of the C23 standard is interesting. Each proposed innovation can immediately turn out to be generally accepted, or become the subject of long, lively discussions, or never be used by anyone. What of these features exactly will be successful will become clear in a few years.

Keywords: C programming language, standard, C23, C24
pp. 59—71
For citation:
Kostiukhin K. A., Levchenkova G. L., Samborskii S. V. About Some Innovations of the C Programming Language Standard C23, Programmnaya Ingeneria, 2025, vol. 16, no. 2, pp. 59—71. DOI: 10.17587/prin.16.59-71 (in Russian).
References:
  1. ISO/IEC 9899:2024, available at: https://www.iso.org/stan-dard/82075.html (date of access 15.11.2024).
  2. WG14-N3096: Draft for ISO/IEC 9899:2023, available at: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf (date of access 15.11.2024).
  3. WG14-N3220: Draft for ISO/IEC 9899:2024, available at: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf (date of access 15.11.2024).
  4. GCC, the GNU Compiler Collection, available at: https://www.gnu.org/software/gcc (date of access 15.11.2024).
  5. Clang: a C language family frontend for LLVM, available at: https://clang.llvm.org (date of access 15.11.2024).
  6. Compiler support for C23, available at: https://en.cppreference.com/w/c/compiler_support/23 (date of access 15.11.2024).
  7. JeanHeyd Meneide. Finally. #embed, July 22, 2022, available at: https://thephd.dev/finally-embed-in-c23 (date of access 15.11.2024).
  8. The international standardization working group for the programming language C, available at: https://www.open-std.org/jtc1/sc22/wg14/www/docs (date of access 15.11.2024).