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 ★★
()
Ответ на: комментарий от MiniRoboDancer

Первым был археоптерикс ассемблер

я думаю первыми были тумблеры которыми забивали программу «аппаратно» :)

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

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

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

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

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

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

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

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

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

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

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

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

на чём первый лисп написали?

На бумаге.

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

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

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

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

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

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

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

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

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

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

Pinkbyte ★★★★★
()

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

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

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

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