На чём написан язык программирования C?
Учтите, что язык программирования - это просто набор спецификаций и правил. Он написан на английском языке. 

Если же вас интересует на чем запрограммированы компиляторы языка С, то самые популярные нынче развивающиеся компиляторы написаны на C и C++ соответственно:
gcc: https://github.com/gcc-mirror/gcc
clang: https://github.com/llvm/llvm-project/tree/main/clang

Вы спросите, а как компилятор языка Си написали на самом Си? Ответ прост - первые компиляторы были написаны на ассемблере. Они были очень простыми и тупыми, возможно не умели понимать все тонкости языка. Когда появился достаточно работающий компилятор с минимальным набором функций, можно было переписать его на Cи и скомпилировать первым компилятором. После этого стало можно компилировать компилятор на Си самим собой. 

Точно также в компиляторы добавляют новые возможности языка - реализуют код компиляции этих вещей без их использования в исходниках и получают компилятор, который умеет их компилировать. Потом можно исходный код компилятора переписать с использованием этих новых функций, используя полученный ранее исполняемый файл компилятора.

А так, наверно, есть куча неподдерживаемых устаревших компиляторов Си на всевозможных языках.
Компиляторы си написаны на c++ и на си. В gcc большая часть кода на си, clang же написан на c++