emmtrix
C++ to C Compiler
(eCPP2C)

emmtrix C++ to C Compiler icon

Our Solution for C++

The emmtrix C++ to C Compiler (eCPP2C) 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 mostly identical. 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

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 C 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
  • Is integrated into emmtrix Parallel Studio GUI to enable C++ code parallelization

Supported C++ Language Features

There are only two problematic C++ features that are hard to support and will only be supported on request:

  1. Exceptions have no equivalent language construct in C
  2. Virtual classes would result in function pointers within the generated C code and that would brake the parallelization workflow.

Beyond that the emmtrix C++ to C Compiler is under active development and it is planned to support the full feature set of the C++17 (ISO/IEC 14882:2017) standard.

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