CPS (NeWS)
C to PostScript : le compilateur de stubs de NeWS, qui rendait les procédures PostScript du serveur de fenêtres appelables comme des macros C et acheminait les arguments par la connexion.
Un programme C qui voulait dessiner dans NeWS envoyait du texte PostScript au serveur. Assembler ces chaînes à la main était source d'erreurs ; Sun fournit donc cps : dans un fichier .cps, on écrivait cdef ps_moveto(x, y) x y moveto, et l'on obtenait un en-tête C contenant une macro ps_moveto qui encodait les arguments de façon compacte et les ajoutait au tampon de sortie à destination du serveur. Une flèche, =>, dans une définition indiquait que le serveur répondrait, avec une étiquette permettant au client d'attendre la bonne valeur.
C'était l'appel de procédure distante en miniature, avec le serveur tout entier pour espace d'adressage : un stub pouvait définir une nouvelle classe dans le serveur aussi aisément que déplacer un stylet. L'idée a survécu à NeWS. Display PostScript d'Adobe eut pswrap, qui faisait exactement la même chose avec des blocs defineps, et les programmeurs NeXT écrivirent des wraps pendant dix ans. À l'époque de TNT, il devint plus courant d'écrire toute l'interface en PostScript et de laisser le côté C s'amenuiser.