#ассемблер
Как реализовать задание: Доказать насколько умны компиляторы путем написания простых блоков оператор, написать ассемблерную версию компилятора Или где можно прочитать о способе реализации? 1) A = 2+3 2) if |A>B| op1 else op2 3) for (int i=0, i<10, i+1) op3 Доказать, насколько глупы компиляторы, подставив во втором пункте значения: 5 > 3 В третьем пункте подставить: i = 5, i < 3
Ответы
Ответ 1
В комментарий, отвечающий на "Не подскажете, как мне исследовать возможности компилятора(особенности, которые заложили его авторы)?(книжку, статью) как все это делается") не помещается, поэтому пишу в ответе. Честно говоря, литературу посвященную именно исследованиям возможностей компилятора, не знаю, но вот что в принципе могу посоветовать по теме компиляторов. Для общего знакомства с языками на мой взгляд хороша книга -- "Языки программирования: разработка и реализация" Т. Пратт, М. Зелковиц. Говоря непосредственно о компиляторах, безусловно, следует отметить классический труд, называемый "Книгой дракона" (в сети легко можно найти ее текст). Вероятно, для практического вхождения в тему стоит почитать Креншоу Д. "Пишем компилятор". Для знакомства с устройством процессора (системой команд, а также немного с ассемблером) посмотрите, например, "Цифровая схемотехника и архитектура компьютера". Понятно, что для каждой конкретной реализации потребуется проштудировать Programmer Rererence Manual по его ISA (instruction set architecture). И несомненно, надо рекомендовать практику компиляции примеров в ассемблерный код (например, запуская gcc -S -O2 t.c; less t.s) с различными ключами оптимизации (см., скажем man gcc), а также непосредственного экспериментирования с измерением времени работы своих примеров.
Комментариев нет:
Отправить комментарий