PostScript
| Image manquante Langage_progr.png image:Langage_progr.png |
| Cet article fait partie de la série Langages de programmation |
| Langages à objets |
| Ada 95 - C++ - C# Common Lisp Delphi - Eiffel - Java Nice - Oz - Python Simula - Smalltalk Visual Basic |
| Langages impératifs |
| APL - ASP - Assembleur BASIC - C - COBOL Forth - FORTRAN - Logo Pascal - Perl - PHP |
| Langages fonctionnels |
| Erlang - Haskell ML/OCaml - Oz Lisp/Common Lisp Scheme |
| Langages déclaratifs |
| Clips - Oz - Prolog |
| Langages concurrents |
| Ada 95 - Erlang Java - Oz |
| Langages balisés |
| HTML - SGML - XML Dialectes XML S-expressions |
| Voir aussi |
| Conception - Codage Tests - Optimisations |
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.
D'autres rejetons de PostScript sont Display PostScript et NeWS, tous deux concernant les systèmes de fenêtrage.
Le langage
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 compose 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 :
- constante numérique entière ou réelle : 123 ou 3.14157, l’évaluation ajoute la valeur numérique au sommet de la pile.
- constante chaîne : ce sont des tableaux de caractères encadrés par des parenthèses, ex (Abc) représente la chaîne Abc.
- référence à un nom : /a, représente le nom a, qui pourra permettre de nommer une variable ou une fonction. La référence est ajoutée au sommet de la pile.
- nom : ce peut être le nom d'une procédure prédéfinie, ou crée, d'une variable, d'un dictionnaire. Le nom est cherché dans les dictionnaires actifs, puis si c’est une valeur, elle est placée sur la pile, et si c’est une fonction, elle est appelée (exécutée). À noter que l'évaluation d’une fonction pourrait utiliser les valeurs au sommet de la pile et les remplacer par les éventuels résultats.
- constructeur : quatre constructeurs permettent de créer des structures de donnée de taille variable, ils sont composés de caractères appariés suivants, qui délimitent le début et la fin de la structure :
- [ et ] : des tableaux quelconques.
- < et > : des tableaux d’octets codés en hexadécimal.
- << et >> : des dictionnaires.
- { et } : du code exécutable.
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 :
- /pi 3.14157 def : définit la variable de nom pi, avec la valeur numérique 3,14157.
- /compteur compteur 1 add def : ajoute 1 à la variable nommée compteur.
- /incremente {1 add} def : définit la fonction incremente, qui ajoute 1 au paramètre
- /compteur compteur incremente def : permet d’incrémenter grâce à la fonction définie au dessus.
| Image manquante Symbole-ordinateur.png | Portail Informatique - Accédez d'un seul coup d’œil à toute la série des articles de Wikipédia concernant l'informatique. |
