Skip to main navigation Skip to search Skip to main content

Tools and Libraries for Compile-time Software Engineering

    Activity: Talk or presentationOral presentation

    Description

    The range of C++ language constructs permitted in constant expressions increases with each release of the ISO C++ standard. Within appropriate contexts, this can allow the runtime performance costs of many calculations to be entirely eliminated. Furthermore, as constant expressions prohibit “undefined behaviour”, programs adapted to make greater use of them can avoid a significant quota of information-security vulnerabilities and exposures. Applications can also now incorporate fully transparent and reproducible data sets by integrating their derivation through memoizable compile-time evaluation within the source code itself; while options for embedded domain specific languages have never been more expressive, or readily engineered.

    In this hands-on half-day workshop we first introduce developments in constant expression evaluation including constexpr, consteval, and “constexpr if”; from C++11 to C++26. Subsequently, we then work through a number of problem examples; and demonstrate how new and updated open-source libraries (libstdc++, C’est, Ctbench) and C++ compiler tools (GCC, Clang, MSVC++, ClangOz) can be utilised to assist in tackling them.
    Period17 Jan 2024
    Event titleHiPEAC 2024 Conference
    Event typeConference
    LocationMunich, Germany, BavariaShow on map
    Degree of RecognitionInternational

    UN SDGs

    This activity contributes to the following UN Sustainable Development Goals (SDGs)

    1. SDG 8 - Decent Work and Economic Growth
      SDG 8 Decent Work and Economic Growth
    2. SDG 9 - Industry, Innovation, and Infrastructure
      SDG 9 Industry, Innovation, and Infrastructure

    Keywords

    • Compilers
    • Computer Architecture
    • Cybersecurity
    • Multicore
    • Programming Languages