|
Navigation
Related Links
No changes found Who is online
· 48 online users
|
оптимизирующий компилятор(mak) Одной из главных особенностей Форта является то, что он может предоставлять пользователю управлять процессом компиляции. При создании новых средств управления компиляции программист должен понимать устройство Форта, которое обязано быть простым. В связи с этим, при создании оптимизирующего компилятора для Форта компилятор и оптимизтор необходимо развязать между собой. Компилятор ничего не знает об оптимизаторе. Оптимизация в SPF4 заключается в том, что происходит подмена скомпилированного кода командой OPT-RULES. OPT-RULES содержит набор правил оптимизации, представленных в виде программы. Каждое правило состоит из 2-х частей: идентификации кода и процедуры подмены. Доступ к коду осуществляется посредством массива ссылок на последние операторы OP0. Использование OP0 позволяет отделить коды команд от их операндов.
Пример:
Правило замены фрагмента кода:
NEG EAX \ F7 D8
ADD EAX , 0 [EBP] \ 03 45 00
NEG EAX \ F7 D8
на:
SUB EAX , 0 [EBP] \ 2B 45 00
Представляет собой:
\ $ - - OP2 @ @ 4503D8F7 XOR \ NEG EAX ADD EAX, X [EBP] OP0 @ W@ D8F7 XOR OR 0= \ NEG EAX IF M\ 20 DTST OP1 @ @ 452B OR OP2 @ ! \ SUB EAX, X [EBP] OP2 ToOP0 -4 ALLOT FALSE M\ 21 DTST EXIT THEN Для наблюдения работы оптимизтора производятся следующие действия:
: M\ ( POSTPONE \) ; IMMEDIATE
|
| Page Execution took real: 0.950 seconds |