Специфические детали языка
Рассмотрим некоторые специфические детали языка PostScript
Операторы
Каждый язык программирования имеет набор преопределенных команд. В PostScript они называются "операторы". Вот примеры PostScript-операторов:
|
div |
разделить два числа |
|
|
lineto |
нарисовать линию |
|
|
setlinewidth |
установить толщину линий |
|
|
showpage |
вывести текущую обработанную страницу |
|
В языке PostScript сотни операторов и приложения могут добавлять свои собственные. Например: в PostScript нет оператора для вывода прямоугольника, но может возникнуть необходимость в нем. В PostScript приложение может определить собственный оператор "box", который объединит четыре команды "lineto" для вывода прямоугольника. Это позволяет приложениям добавлять в язык PostScript необходимую функциональность.
Фактически такие приложения (спулеры, драйвера, OPI-системы) могут создавать собственные операторы, что делает PostScript-код сложным для отладки. Если происходит ошибка на специфическом операторе, то может быть очень сложно отследить, какое приложение добавило ошибочный код.
Словари
Группы операторов могут объединяться в словари. Многие приложения, также как и драйвера используют собственные словари. Если вы печатаете страницу из QuarkXPress на принтер, то и драйвер принтера и QuarkXPress добавляют свои словари в PostScript-файл, отправляемый на принтер. Иногда такие дополнительные данные приводят к проблемам. В этом случае полезно сменить драйвер или пропустить лишние шаги в процессе вывода, чтобы избежать PostScript ошибок.
Стек
PostScript основан на использовании стека, который работает подобно калькуляторам, использующим обратную польскую запись. Например, вы хотите сложить 12 и 15. PostScript выполнит это следующим образом:
15 12 add
Сначала оба числа помещаются в стек. Затем интерпретатор считывает оператор "add", который снимает два числа с вершины стека, складывает их, и помещает результат обратно в стек.