Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как создать компилятор?


Автор: dark_religion 12.10.2008, 16:35
Вопрос такой, каким образом создается исполняемый файл? При компилировании кода. То есть как преобразовать код в исполняемый файл. При создании собственного языка.

Автор: mr.Anderson 12.10.2008, 16:44
dark_religion, долго и нудно читать книжки по созданию компиляторов.

ЗЫ это самый подробный ответ, который можно дать в принципе на заданный вопрос.

Автор: vinick 12.10.2008, 17:11
Цитата(dark_religion @  12.10.2008,  16:35 Найти цитируемый пост)
То есть как преобразовать код в исполняемый файл.


http://www.faqs.org/docs/Linux-HOWTO/GCC-Frontend-HOWTO.html, а так же документ GCC Internals
Достаточно написать frontend транслирующий твой язык в специальное представление, а генерацию машинного кода возьмет на себя GCC.

Автор: CppDevelopeR 12.10.2008, 17:14
dark_religion, встречный вопрос: А зачем тебе это?!

Автор: dark_religion 12.10.2008, 18:01
Цитата(CppDevelopeR @ 12.10.2008,  17:14)
dark_religion, встречный вопрос: А зачем тебе это?!

Хм сначала на мой вопрос ответь потом свои задавай!

Автор: Mayk 13.10.2008, 05:39
Цитата(dark_religion @  12.10.2008,  22:01 Найти цитируемый пост)

Хм сначала на мой вопрос ответь потом свои задавай! 

если ты не заметил, на твой вопрос уже ответили:

Цитата(mr.Anderson @  12.10.2008,  20:44 Найти цитируемый пост)
dark_religion, долго и нудно читать книжки по созданию компиляторов.


Автор: Cycle 13.10.2008, 09:07
Если лениво изучать GCC Front End HOWTO, можно генерить программу на С с последующей компиляцией. Заодно и оптимизацию получишь.

Автор: Lycifer 13.10.2008, 10:02
Дело довольно сложное, перфое что приходит в голову переводи свой язык в ассемблер, а из ассемблера в hex, ну а потом запись, честно сказать не пробывал  писать, как то не надо было



Автор: triclosan 14.10.2008, 18:15
http://zouev.blogspot.com/2008/04/blog-post_28.html

особенно абзац про компилятор LISPa

Автор: Maka6er 15.10.2008, 23:25
Если серьезно заинтересовались то: Книга дракона (А.В. Ахо, Р. Сети, Д.Д. Ульман - Компиляторы. Принципы, технологии, инструменты.)
Классика в которой очень понятно и 2mr.Anderson интересно ;-) все разложено. 

Если в кратце то: лексический анализ, синтаксический анализ, генерация кода.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)