It should be noted that there are a couple of names that are legal in PostScript which do not follow the above definition. These are the '[' and the ']' operators. Yes, they are operators and are stored in the dictionary. Some other names that might surprise you are: '=', '==', '<<', and '>>'.
If a name is preceded by a slash, PostScript will place the name on the stack as an operand. If the name has no slash, the interpreter will look up its value in the dictionary stack. If the value is a procedure object, the procedure will be evaluated. If the value is not a procedure, the value will be pushed onto the operand stack.
(This is a string)
. You
can also express a string as hexidecimal codes in angle brackets. For
example, the string "ABC" would be expressed as
<414243>
. There are several
escape codes
that may
be used in the parenthesis format of strings.
[12 /Foo
5]
is a three element array containing the number 12, the name
Foo, and the number 5.
{dup mul}
. We can
define this procedure to be the square operator with:
/square {dup mul} def
.