Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Ответы 14.09.04 21:11 Число просмотров: 1618
Автор: Ktirf <Æ Rusakov> Статус: Elderman
|
> 1) Почему "compiler collection"? Значит ли это, что gcc > можно "научить" другому языку? Значит. У GCC типа-модульная структура, в которую входит так называемый компилятор переднего плана (frontend compiler), который преобразует код на некотором языке во "внутреннее представление" (по-моему, там C, но точно утверждать не буду), после чего за дело берется "компилятор заднего плана" и компилирует полученное в бинарный код под конкретную архитектуру. На сколько эта модульность реальна - сказать не берусь, но на данный момент GCC обучен C, C++ (по отдельности, кстати), Фортрану, Java, Аде и еще чему-то, по-моему.
> 2) Это большой геморр обучить gcc компилить в какую-нибудь > экзотику? Вообще во что-нить "марсианское", к примеру это > совершенно новый процессор? ;-) Не слишком, насколько я понимаю. Проще, чем добавить новый язык. Но работы, конечно, достаточно. То есть по порядку сложности работа эквивалентна созданию компилятора с языка C под этот процессор.
> 3) Это большой геморр приучить gcc к "другому" формату > исполняемых файлов - не PE32, к примеру, а чего-нибудь > абсолютно новому? Проще, чем предыдущий пункт, определенно. Фактически, речь не о компиляторе, а о линкере, поскольку именно он формирует готовые бинарники. Кстати, для нового языка линкер тоже, естественно, придется перелопатить.
> 4) Итак, другой язык, другой формат объектного файла, > другой набор машинных инструкций — gdb окажется в этом > случае бесполезен, или он тоже "обучаем"? Ну в принципе можно заставить gdb понимать другие бинарные форматы, лишь бы отладочная информация была. Что касается языков, то если я не ошибаюсь, там довольно простая система абстракций файл-подпрограмма, так что с этим будет меньше всего мороки.
> Заранее большое спасибо за ответы. Да пожалуйста, только ты скажи - зачем тебе нужна такая обобщенность? :) Может, проще свой компилятор написать? :)
|
|
|