Is the idea that you can compile you base code once, and then work on the emitted C to extend the project?
Is the idea that you can compile you base code once, and then work on the emitted C to extend the project?
Another theoretical advantage of generating C code is that it should be easy to try adding bits of code written in these new languages to existing C/C++ projects. In this way you can test the new language on real life projects without the need of rewriting everything from scratch. (I have never followed this approach, although I have heard of people having done this [1].)
[1] http://roscidus.com/blog/blog/2014/06/06/python-to-ocaml-ret... The languages here were quite different, though (Python/OCaml): but the author followed the idea of slowly converting a project to a new language by first rewriting parts of it. Had the OCaml compiler emitted Python code, I bet the task would have been easier.
EDIT: oh, also wildly easy interoperability with existing C/C++ code (so long as the C++ code provides a C interface).
Nim is one language that I know of which takes advantage of that. Here is one example of a pretty large wrapper around a C++ library https://github.com/3dicc/Urhonimo, and here is the documentation for this feature http://nim-lang.org/docs/manual.html#implementation-specific...
I've even occasionally managed to get code from compiled-to-C languages working on platforms like RiscOS and Amiga.
Languages that can be compiled to C could be interesting for implementing embedded system firmware.
You don't have to deal with all the idiosyncrasies of C, because you can restrict yourself to a small subset of C that is straightforward and easily understood.