информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Spanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Ответы 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 понимать другие бинарные форматы, лишь бы отладочная информация была. Что касается языков, то если я не ошибаюсь, там довольно простая система абстракций файл-подпрограмма, так что с этим будет меньше всего мороки.

> Заранее большое спасибо за ответы.
Да пожалуйста, только ты скажи - зачем тебе нужна такая обобщенность? :) Может, проще свой компилятор написать? :)
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach