Когда мы говорим, что «Деннис Ритчи разработал язык C», мы имеем в виду, что он создал компилятор (используя «уже» разработанный другой язык), который может компилировать исходный код, написанный на языке C? если да, на каком языке он писал первый компилятор Си? Я понимаю, что компилятор - это программа, и мы можем создать другой компилятор для языка Си, используя доступный в настоящее время компилятор Си. Это верно?
23
Проверьте это для урока истории: http://www.livinginternet.com/i/iw_unix_c.htm
Также это может быть интересно: http://cm.bell-labs.com/cm/cs/who/dmr/chist.html
источник
Деннис Ричи использовал начальную загрузку . Самозагрузка - простая идея, когда вы разрабатываете начальный, простой компилятор в сборке, а затем используете этот простой компилятор для компиляции вашего полноценного компилятора, написанного на (подмножестве) вашего целевого языка. Именно так Ритчи создал очень ранний компилятор last1120c .
источник
Эта статья должна ответить на ваш вопрос:
http://www.faqs.org/docs/artu/c_evolution.html
История C связана с языком B, для которого Кен Томпсон разработал переводчик. Ричи использовал его для самых первых этапов развития Си.
источник
C был разработан, чтобы позволить портировать Unix на другие платформы без необходимости переписывать весь код сборки для новой платформы.
Отсюда распространенное высказывание, что «C - это портативный ассемблер». Это отражает то, что C намеренно очень близок к процессору (примерно с 1970 г.) по уровню абстракции, а также является причиной того, что большинство встроенных программ написано на некотором роде C.
Итак, C тесно связан с Unix, и люди Unix написали первый компилятор C, основанный на более ранней работе, чтобы сделать то, что им нужно.
Обратите внимание, что Керниган и Ричи написали отличную книгу по Си, которая, вероятно, является одной из самых влиятельных справочных работ по компьютерному языку, поскольку она была настолько ясной и лаконичной, что большинство читателей могли изучать сложные предметы, такие как указатели и рекурсии из нее.
источник