LINUX.ORG.RU
ФорумTalks

как запускается компилятор си, если он написан на си

 , , ,


0

2

сабж

вот чтение исходников PrimevalC не очень разъяснило что к чему.

Вот как именно этот код выполняется, можно на пальцах объяснить?

Компилятор ведь тоже нужно скомпилировать. Гуглить тут.

CYB3R ★★★★★ ()

компилятор си представляет собой машинный код, и запускается как и любая другая программа на си

thesame ★★★★ ()

Изначально — процесс, именуемый bootstrap.

PolarFox ★★★★★ ()

О раскрутке компиляторов почитай.

Deleted ()

Самый первый из них был написан в машинных кодах. Это продолжалось для каждой новой архитектуры до тех пор, пока не изобрели кросс-компиляцию.

abraziv_whiskey ★★★★★ ()

Первые версии компилятора Си для «больших машин» писались в машинных кодах. Почитай историю.
Страуструп вроде бы это описывает в «Эволюции языка Си++» (есть перевод на русский).

pacify ★★★★★ ()
Последнее исправление: pacify (всего исправлений: 1)
Ответ на: комментарий от IPR

Надо было не сдерживаться и довести дело до финала, да

by_zero ()

Как в последнем сезоне Lexx: «Я научу вас строить большие машины, которые будут строить машины поменьше, которые будут строить маленькие машины, которые будут строить совсем крошечные машины, а уж они будут собирать космический корабль.»

schizoid ★★★ ()

Это вопрос из разряда, что было первым, курица или яйцо. Первым был археоптерикс ассемблер. Потом скомпилили бинарник, он сам себя и компиляет.

MiniRoboDancer ★☆ ()
Ответ на: комментарий от Napilnik

Первыми были машинные коды, писали в них напрямую.

Ну то не археоптерикс, то вообще прокариот. Непосредственно до сей был асм.

MiniRoboDancer ★☆ ()

не силён, да и не туда, может быть

А вот как работают интерпретаторы? Вот есть Python, его интерпретатор написан, допустим, на Java, её интерпретатор (допустим!!! я не говорю, что оно так на самом деле!) - на C, а интерпретатор C? На ассемблере?

djambeyshik ★★★★★ ()

На асме/в кодах пишется минимальное нечто, позволяющее компилить хоть что-то. На нём уже пишется недокомпилятор, но уже менее недо. Через несколько итераций получаем нормальный.

Реально на асме писать смысла немного, можно начальный недокомпилер на любой платформе и любом ЯП написать.

yu-boot ★★ ()

Так же как перл написан на перл.

Siado ★★★★★ ()
Ответ на: комментарий от sad_but_true1

Я не знаю, сам не пользуюсь. Просто встречал упоминания и краткие описания нескольких С-интерпретаторов. Может, студенты баловались. :)

DeVliegendeHollander ★★ ()
Ответ на: комментарий от true_admin

В случае с гарвардской архитектурой всё было ещё занятнее, программу буквально ткали.

PolarFox ★★★★★ ()
Ответ на: комментарий от sad_but_true1

Для использования в качетсве встраиваемого языка.

Например, как интерпретатор может работать TCC (Tiny C Compiler).

mono ★★★★★ ()
Последнее исправление: mono (всего исправлений: 1)
Ответ на: комментарий от mono

как интерпретатор может работать TCC (Tiny C Compiler)

Разве он при этом не компилирует просто прямо в память?

PolarFox ★★★★★ ()
Ответ на: комментарий от Tark

компилятор лиспа написать на лиспе и в качестве лисп машины использовать свой мозг

Лишний слой абстракции вижу я тут.

PolarFox ★★★★★ ()
Ответ на: комментарий от MiniRoboDancer

первыми были перфокарты и переключатели, т.е. ассемблер ведь тоже написать нужно.

frozenix ★★★ ()
Ответ на: комментарий от true_admin

Ассемблер в тумблеры — биекция. Так что всё равно компилятор был сначала записан на бумажке в виде некого псевдокода.

luke ★★★★★ ()
Ответ на: комментарий от true_admin

я думаю первыми были тумблеры

Сначала вообще по хардкору, провода переподключали, потом уже всякие выключатели и переключатели для удобства придумали.

MiniRoboDancer ★☆ ()
Ответ на: комментарий от DeVliegendeHollander

встречал упоминания и краткие описания нескольких С-интерпретаторов

Я больше скажу - я в генте поддерживаю один такой пакетик :-)
app-shells/ccsh, если кому интересно. Версия 0.0.4 кагбе намекает на его допиленность :-)

Pinkbyte ★★★★★ ()

Например, комментарий для Go.

gag ★★★★★ ()
Ответ на: комментарий от luke

а потом подневольным студентом в ручную ассемблирован в машкод.

qulinxao ★★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.