промежуточный код

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение noch » 18.10.2005 17:21:13

компилятор генерирует промежуточный код который затем переводится в ассемблер по разному для разных архитектур и операционок.
Я ищу информацию, направления, ссылки о структуре этого промежуточного кода и какой программой он затем переводится в ассемблер

Спасибо
Аватара пользователя
noch
постоялец
 
Сообщения: 145
Зарегистрирован: 07.06.2005 09:45:49
Откуда: Armenia

Сообщение Иван Шихалев » 19.10.2005 01:53:31

компилятор генерирует промежуточный код

Такого кода он не генерирует.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение noch » 19.10.2005 10:33:46

Вот что написано в статье презентующей freepascal 2

Free Pascal 2 does three passes, constant evalution, collection of information and highlevel optimization, and code generation.<span style='color:red'> The code generator has been split in a front-end and back-end</span>. Tree, constant pass, information collection and highlevel code generation are built into an object oriented class structure. The CPU-dependent back-end is also implemented as class that needs to be overridden for each CPU. A CPU-dependent parameter manager helps the code generator to pass parameters to procedures without knowing anything about the CPU and calling convention that is being used.

The advantage of this architecture is that few CPU-dependent code has to be written to port the compiler, one can suffice by implementing the code generator back-end, the parameter manager and supplying the right information to the other parts of the compiler.

from <a href='http://www.osnews.com/story.php?news_id=10607&page=2' target='_blank'>http://www.osnews.com/story.php?news_id=10607&page=2</a>

Вот меня и интересует какая структура у когда генерируемого frontend для backend
Аватара пользователя
noch
постоялец
 
Сообщения: 145
Зарегистрирован: 07.06.2005 09:45:49
Откуда: Armenia

Сообщение Сергей Смирнов » 19.10.2005 14:00:01

Комментарии ещё к этой статье почитай, особенно про "three passes" :)
Аватара пользователя
Сергей Смирнов
энтузиаст
 
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва

Сообщение Иван Шихалев » 19.10.2005 22:20:16

Это означает, что генерация кода логически разделяется на этапы. Но это не значит, что этапы разнесены во времени и существует какой-то промежуточный код.

А благодаря логическому разделению портировать стало легче: можно не задумываться о разборе и т.д.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение Oleg N. Cher » 20.09.2007 03:56:40

2noch: Советую ознакомиться с технологией Juice, там использовано промежуточное представление программ в виде так называемых плоских бинарников (slim binaries), более компактное, чем машинный код многих процессоров. Начать можно с диссертации Михаэля Франца "Динамическая кодогенерация – ключ к переносимому программному обеспечению" http://www.uni-vologda.ac.ru/oberon/infoart/otherfly.htm.
Oleg N. Cher
незнакомец
 
Сообщения: 3
Зарегистрирован: 16.09.2007 23:40:36


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

Рейтинг@Mail.ru