Показать сообщение отдельно
Старый 11.11.2008, 11:09   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от dmitryul Посмотреть сообщение
могу предложить наверняка, что требовалось создать компилятор для embedded-систем и промышленных микроконтроллеров
Если кто-то дочитал статью до конца то мог убедиться в том, что ни на какие embedded-системы созданный компилятор завязан не был:
Цитата:
Наша система не традиционный компилятор, порождающий объектный код, а так называемый компилятор переднего плана (front-end compiler), который в качестве результата своей работы формирует образ исходной программы на некотором промежуточном языке. Далее этот образ обрабатывается отдельной компонентой — генератором кода (back-end). Это обычная схема, давно принятая в многоязыковых системах программирования. Так как промежуточное представление выбирается единым для всех входных языков, то в системе достаточно единственного генератора кода, что исключает затраты на реализацию генератора для каждого отдельного компилятора. Кроме того, можно разработать несколько генераторов кода с единого внутреннего представления для различных аппаратных платформ, получив тем самым многоплатформную систему программирования. По этой схеме организована система gcc, похожим образом устроены и продукты семейства TopSpeed и десятки других.
Промежуточное представление, которое использовали [заказчики] в своих компиляторах (это, по существу, специальный язык, который можно назвать обобщенным ассемблером), было разработано довольно давно, выглядело несколько архаично, но для него было сделано несколько работающих генераторов для платформ Intel, Motorola, Sparc и менее известных процессоров.
Цитата:
Сообщение от macklakov Посмотреть сообщение
Для embedded обычно реализуют функциональные языки, чаще всего, диалект С или Lisp. Они сравнительно просты в написании, специалист ваяет такой компилятор за несколько часов.
Это такое «легкое художественное преувеличение», или есть реальный опыт написания компиляторов? Из моего скромного опыта, за несколько часов можно написать разве что простейший синтаксический анализатор a la калькулятор для сложных арифметических выражений.