Семь уроков по PostScript


Определение переменных и процедур - часть 2


3 72 mul

3 inch

Как известно, использование процедур сокращает длину программы, улучшает ее читабельность, а главное дает возможность расширить средства языка за счет введения в него новых слов. Таким образом обычный процедурный язык программирования (3GL) можно поднять до сверхвысокого уровня.

При определении процедуры ничего не было сказано о передаче параметров. Для языка ориентированного на работу со стеком естественный способ передачи параметров -- размещение их в стеке. Перепишем программу рисования двух перекрывающихся областей:

 

/inch {72 mul} def

/box           % в стеке:  x y

 { newpath moveto

    1 inch 0 rlineto

    0 1 inch rlineto

    -1 inch 0 rlineto

    closepath } def

/fillgray     % в стеке: уровень серого цвета

 {setgray fill} def

% Основная программа

2 inch 3 inch box

.9 fillgray

2.5 inch 3.5 inch box

.7 fillgray

showpage

 

В такой записи программу уже значительно проще изменять и она более самодокументирована, чем ее первый вариант. За это приходиться платить некоторым увеличением времени выполнения, так как интерпретатору приходится больше работать со словарями, однако быстродействие встроенных микропроцессоров, управляющих внешними устройствами (так в лазерных принтерах обычно используется RISC-процессор Intel 960) настолько велико, что эти микросекунды обычно никого не волнуют.

 




- Начало -  - Назад -  - Вперед -



Книжный магазин