Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Reid G.C.Thinking in PostScript.1990.pdf
Скачиваний:
17
Добавлен:
23.08.2013
Размер:
846.44 Кб
Скачать

where one might end up implementing lots of pointers and structures in a C program.

THE UNIX SHELL AND OPERATING SYSTEM

 

There are some interesting similarities between the PostScript language

 

and the command-line interface to the UNIX operating system. At first

 

glance, they are quite dissimilar; one is a programming language, the

 

other is an operating system. But consider that the shell program at which

 

the user types UNIX commands is in fact an interpreter. The shell

 

supports a very simple programming framework, with loops and

 

conditionals, and has a few real operators built in. It is intended only as a

 

skeletal environment, and the UNIX programs themselves provide most

 

of the language elements for shell programs.

 

The PostScript language has an extensible set of operators, each of which

 

is invoked by name (for example, moveto). The names are looked up, at

 

run-time, in the dictionary stack of the interpreter. This is exactly

 

analogous to the UNIX shell, which has an extensible command set and a

 

name lookup mechanism through which all commands are invoked. The

 

name lookup is controlled by the concept of a search path, or an ordered

 

set of directories in which to look for the named program. Either language

 

can be extended simply by adding another name into the search path, and

 

using it in the same way that the existing names are used.

 

 

 

 

TIP

Here’s a trick that you may find very helpful in assimilating the large

 

space of operators in the PostScript language. (It evolved from my mech-

 

anism for learning about UNIX.) If you are having a difficult time with a

 

particular part of your program or you think to yourself that there must be

 

a better way, the chances are that the designers of the language encoun-

 

tered the same situation, and designed an operator that exactly solves the

 

problem. Quickly review a summary list of operators (see the Appendix)

 

to see if there is some other operator that could make short work of your

 

task.

 

 

 

 

 

Furthermore, both the PostScript language and the UNIX operating

 

system offer a very large and relatively flat set of operators or commands,

Chapter 2: POSTSCRIPT IS NOT LIKE C

13