Le PostScript est un langage de programmation spécialisé dans la description de page, mis au point par Adobe. Il repose sur des formulations vectorielles de ses éléments. Ce langage interplates-formes permet d'obtenir un fichier unique comportant tous les éléments constituant la page (textes, images, polices, couleurs, etc.). Malgré ses qualités et ses extensions comme EPS (pour Encapsulated PostScript), PostScript n'est guère populaire que sur les plates-formes Unix tandis que son avatar, le PDF, est très utilisé sur les plates-formes Macintosh et Windows.
Postscript est un langage complet, qui permet le codage de tout algorithme. Bien qu'il soit tout a fait possible d'écrire directement de tels programmes, ils sont en général fabriqués par d'autres programmes, des pilotes d'impression par exemple. Le Postscript est indissociable de l'environnement dans lequel il sera exécuté. Etant donné le caractère totalement dynamique de ce langage, il sera en fait interprété.
L'interpréteur est composé d'une pile, et d'un ou plusieurs dictionnaires. La pile sert de stockage temporaire pour les paramètres des fonctions, puis pour leurs résultats. Les dictionnaires permettent le stockage des variables, ainsi que du code des fonctions.
Un programme Postscript est composé d'une séquence de mots séparés par des espaces, TAB, CR, LF, ou commentaires. L'interpréteur analyse chaque mot du programme Postscript séquentiellement en fonctionnant comme un calculateur en notation Polonaise inverse, c'est-à-dire que chaque mot est évalué, puis le (ou les) résultat de cette évaluation est placé au sommet de la pile, et ainsi de suite.
Exemple, pour effectuer le calcul numérique simple b^2 - 4ac cela pourra se coder : b b mul 4 a mul c mul sub.
Postscript supporte 5 types de mots :La première partie du constructeur place une marque sur la pile, puis les éléments de cette structure sont placés successivement sur la pile, enfin la partie droite du constructeur récupère tous les éléments depuis la dernière marque dans la pile et « fabrique » la structure correspondante et la mets sur la pile.
Les dictionnaires sont des tableaux avec seulement deux colonnes, la première ne pouvant contenir que des références à un nom, et la seconde, une valeur quelconque associée à ce nom.
Parmi les opérateurs prédéfinis, le plus important est def, il permet d'ajouter une association nom-valeur dans le dictionnaire courant, ce qui permet de définir de nouvelles variables avec leur valeur, ou de modifier leur valeur, et de définir ou redéfinir des fonctions. On constate donc, qu'en Postscript, le code exécutable est une donnée, presque comme les autres, et peut être créé à la volée, modifié.
Exemples :