CPS(NeWS)
C to PostScript。ウィンドウサーバー内で動くPostScriptの手続きをCのマクロとして呼べるようにし、引数を接続経由で送り込むNeWSのスタブコンパイラ。
CプログラムがNeWSで描画するには、PostScriptのテキストをサーバーへ送る。その文字列を手で組み立てるのは間違いやすいため、Sunはcpsを用意した。.cpsファイルにcdef ps_moveto(x, y) x y movetoと書くと、引数をコンパクトに符号化してサーバー宛の出力バッファに追記するps_movetoマクロを含むCヘッダが生成される。定義中の矢印=>は、サーバーが何かを返すことを示し、クライアントが正しい値を待てるようにタグが付けられる。
サーバー全体をアドレス空間に見立てた、小さなリモートプロシージャコールである。スタブ一つでペンを動かすのと同じように、サーバー内に新しいクラスを定義することもできた。この発想はNeWSより長生きした。AdobeのDisplay PostScriptにはpswrapがあり、definepsブロックで同じことをした。NeXTのプログラマーは10年にわたりラップを書き続けた。TNTの時代になると、インターフェース全体をPostScriptで書き、C側を小さくするほうが一般的になった。