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
Links
Learning
- PostScript Tutorial (Paul Bourke, 1990)
- A First Guide to PostScript (Peter Weingartner, 2006)
Miscellaneous
- Random Computer-Generated Comics (John Pound)