emmtrix
C++ to C Compiler
(eCPP2C)

emmtrix C++ to C Compiler icon

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.

#cpp2c

Our C++ Parallelization Workflow

emmtrix C++ to C Compiler 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.

emmtrix C++ to C Compiler icon

Features

  • 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.

Release Notes

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.

Portrait Rainer Heim

Rainer Heim

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 879405

Cookie Consent with Real Cookie Banner