PostScript

PostScript is a concatenative programming language, similar to Forth, which is tailored to printing. It first appeared in 1982.

Operators

Some basic PostScript operators.

Interaction

These operators can be used interactively in the Ghostscript interpreter (gs).

Use = or == to pop the top item from the stack and display it.

1 2 3 4 5 =
% Prints: 5
% Contents of stack: 1 2 3 4

Use stack or pstack to display the stack contents, one per line.

1 2 3 stack
% Prints:
% 3
% 2
% 1

Stack

clear removes all items from the stack.

1 2 3 clear
% stack is now empty

pop removes the top item from the stack.

1 2 3 pop
% stack: 1 2

dup duplicates the top item on the stack.

1 2 3 dup
% stack: 1 2 3 3

n j roll rotates the stack. This takes the top n items and rotates them j times. The sign of j indicates in which direction to rotate.

6 7 8 9 3 1 roll
% stack: 6 9 7 8

6 7 8 9 3 -1 roll
% stack: 6 8 9 7

exch exchanges the top two items on the stack. This is useful to let procedures take arguments.

1 2 3 exch
% stack: 1 3 2

Arithmetic

Addition, subtraction, and multiplication:

1 2 add     % 1 + 2  => stack:  3
3 4 sub     % 3 - 4  => stack: -1
5 6 mul     % 5 * 6  => stack: 30

Floating point division, integer division, and modulo:

5 3 div     % 5 / 3  => stack: 1.66667
5 3 idiv    % 5 / 3  => stack: 1
5 3 mod     % 5 % 3  => stack: 2

Reverse sign:

1 neg       % stack: -1

Variables and procedures

def assigns a value to a key.

/ppi 72 def
% 72 is assigned to "ppi"
% stack is empty

5 ppi           % stack: 5 72
mul             % stack: 360

Learning

Miscellaneous