emmtrix C++ to C Compiler

From emmtrix Wiki
Jump to navigation Jump to search

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.

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

Supported C++ Language Features

The following list displays some of the C++ language features supported by the C++ to C Compiler:

  • Classes
  • Multiple inheritance
  • New/Delete
  • Namespaces
  • extern “C”
  • Using
  • Friends
  • Lambda expressions
  • Static assert
  • C++ casts
  • Auto
  • References
  • Rvalue references
  • Move semantic
  • Range-based for loops
  • STL containers
  • Templates
  • Variadic Templates
  • Copy elision
  • Trailing return types
  • User-defined literals
  • C++11-style attributes
  • Scoped enums

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.

Interested in having C++ exceptions supported? Even though this C++ feature does not have an equivalent we can provide a solution to you upon request (see contact details at the buttom of the page).

Verification Tool and Test Strategy

The emmtrix C++ to C compiler has a unique verification and testing strategy that guarantees that the generated C code is semantically equivalent to C++.

emmtrix C++ to C Compiler Online

Try out emmtrix C++ to C Compiler Online powered by Compiler Explorer. We have integrated our tool eCPP2C into the Compiler Explorer framework so that you can enter your C++ code and immediately see the converted C code.

See Also