Задать вопрос
@Miqoooooo
Web Programmer

На чём написан язык программирования C?

На чём написан язык программирования C?
  • Вопрос задан
  • 12259 просмотров
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Учтите, что язык программирования - это просто набор спецификаций и правил. Он написан на английском языке.

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

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

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

А так, наверно, есть куча неподдерживаемых устаревших компиляторов Си на всевозможных языках.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..
На английском языке. Сам компилятор на СИ.
Ответ написан
Комментировать
Griboks
@Griboks
На С. Это называется раскруткой.
Ответ написан
Комментировать
includedlibrary
@includedlibrary
Компиляторы си написаны на c++ и на си. В gcc большая часть кода на си, clang же написан на c++
Ответ написан
Комментировать
CityCat4
@CityCat4 Куратор тега C
//COPY01 EXEC PGM=IEBGENER
Внезапно - на языке С. При сборке gcc он сам себя собирает трижды - сначала минимальный компилер, потом больше, потом еще больше, потом финальный. Это занимает приличное такое количество времени.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы