back

by uecker·4y ago·view on hn ↗
There are plenty of C compilers written in C. Large compiler suites for C/C++ are usually written in C++. But as a contributor to GCC, I can say that large parts of the code still look very much like C.
1 comments
Plenty of compilers... right.

If you cannot compile GCC with a C compiler, it isn't C.

There a couple of open source C compilers TCC, SDCC, tendra, chibicc, ACK, LCC, PCC, etc. and also many commercial ones.

It is true that GCC is not written in C anymore, but it is easy to see that the code is still relatively close. I am also myself writing a C compiler in C at the moment and there is no problem at all.

How many of those are actually shipping software into production?

Quite curious about which commercial C compilers, written in C, are being sold, keeping those companies in business.

Every year thousands of CS students write toy C compilers.

It will be hard to agree with you what "production" even means. I have written and shipped at least one compiler/interpreter (written in plain C). The language wasn't an issue at all. (This compiler doesn't have any meaningful optimizations, but I don't see why that should change the game).

GCC and Clang aren't "sold" either, nor is MSVC really.

I have never contributed to GCC, but as a fact I have visited plenty of files from its source code, and so far haven't encountered any meaningful use of C++ that couldn't easily be rewritten in plain C. The overwhelming majority of the code would probably compile as C without changes.

I'm sure that there are far more meaningful "problems" with the architecture of a compiler written in C that are not the implementation language. For example, GCC is a pain to build (IIRC when I tried many years ago, I gave up).

Trying to win a pointless argument based on pedantic logic that misses the point.
Usually the typical answer when facts aren't appealing, the other way around apparently being pedantic matters.
Obviously one should always argue to the point instead of picking an interpretation that is easy to refute using "logic".