C++ to C Compiler
Our Solution for C++
The emmtrix C++ to C Compiler (eCPP2C) is a transpiler (source-to-source compiler) that automatically translates your C++ source code into analyzable C code. The design goal was to keep the binary compilation of the original C++ code and the binary compilation of the translated C code as close as possible. This guarantees the functional correctness of the generated C code. eCPP2C utilizes the LLVM/Clang compiler technology to enable support of the latest features of the fast evolving C++ standard. In combination with emmtrix Parallel Studio, eCPP2C enables software parallelization of C++ applications.
Our C++ Parallelization Workflow
The emmtrix C++ to C Compiler is our solution to support parallelization of C++ software within emmtrix Parallel Studio. In general, the C++ standard is evolving in a 3-year release cycle (starting from 757 pages in C++03 to over 1800 pages in C++20). As a result of this rapid evolution, only a selected number of software tools supporting C++ compliant compilation are available. The additional C++ translation step (in contrast to supporting C++ natively in ePS) allows to reuse the proven-in-use Clang frontend of the LLVM project. This provides a future-proof support of the C++ language with only a limited effort required when adapting to new language versions.
- Translation of C++ to C11 (ISO/IEC 9899:2011) source code
- Utilizes latest LLVM/Clang compiler technology
- Gurantees functional correctness of generated C code by verification tool
- eC++2C qualification kit (ISO 26262, DO-178C/330 or any comparable standard) can be provided on request
- Demystifies how your C++ code is compiled to assembler
- Can be used in combination with (certified) C compilers and C code analysis tools
- Integrated into emmtrix Parallel Studio GUI to enable C++ code parallelization, vectorization and optimization
Supported C++ Language Features
The following list displays some of the C++ language features supported by the C++ to C Compiler:
The emmtrix C++ to C Compiler is under active development and it aims to support the full feature set of the C++17 (ISO/IEC 14882:2017) standard as well as common GCC / Clang language extensions.
However, there is one C++ feature that poses a challenge and will only be supported upon request: exceptions, which do not have an equivalent language construct in C. Despite this obstacle, we are committed to providing comprehensive support for the latest C++ standard.
Take a look at our release notes for our emmtrix LLVM Tools to learn more about new features, improvements and bugfixes.
For more information on the emmtrix C++ to C Compiler or to request a demo, use our contact form or get directly in touch.