Postscript is a programming language (in reverse polish notation, see [RPN in Tcl]) that is used mostly for representing printable documents. More decent printers usually understand (interpret) Postscript right away. Popular tools to visualize Postscript files are ''ghostscript/ghostview'' [http://www.cs.wisc.edu/~ghost/]. The Postscript Language Reference Manual and some related specifications can be found at [http://partners.adobe.com/asn/developer/technotes/postscript.html]. Syntax in brief: Words are separated by whitespace, but the ten special characters %/(){}[[]]<> also end the previous word (with some exceptions). % starts a comment, that continues to the end of the line. / before a word makes that word literal (prevents that it is executed). Parentheses delimit strings; \ is escape character in strings. Braces delimit procedures (executable arrays); they work sort of like in Tcl. Brackets construct normal arrays, which are similar to lists in Tcl, except that they have fixed length :-(. The PS code a [b /c /d e] f is sort of equivalent to Tcl $a [list $b c d $e] $f or (if f is more of a command than a variable) f $a [list $b c d $e] A typical Postscript file starts with a %! comment, and it usually contains a couple of %% comments that contain markup for programs that manipulate Postscript files. %! %%Creator: Gif2PS /#copies 1 def The last line is an assignment: "assign to the variable #copies the value 1", or ''set #copies 1'' as we would say in Tcl. See also [Manipulating Postscript]. ---- Postscript also has a few other interesting datatypes (notably dictionaries, which are sort-of like arrays in Tcl) and it is possible to write postscript code that manipulates functions written in postscript. In fact, functions are really executable arrays (arrays of PS primitives) that are bound to a name in a dictionary that's on the dictionary stack (which effectively forms a search path for command name resolution.) ---- [Category Language]