スタックに 100 が積まれているときに /xpos exch def という動作はどのようになるのか追ってみます。
%!PS-Adobe-3.0 GPL Ghostscript 9.06 (2012-08-08) Copyright (C) 2012 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details.
100 /xpos exch def を実行するとxposに100 が定義されます。
GS>100 /xpos exch def GS>xpos == 100
- 100 を実行すると100は手続きではないのでスタックに100が積まれる。
GS>100 GS<1>pstack 100
- /xpos を実行すると /xpos は名前であり、手続きではないのでスタックに /xpos が積まれる。
GS<1>/xpos GS<2>pstack /xpos 100
- exch を実行すると exch は手続きなのでふたつのスタックの値を交換する。
GS<2>exch GS<2>pstack 100 /xpos
- def を実行するとスタック1の名前にスタック0の値を関連付ける。
GS<2>def GS> GS>xpos == 100
- /xpos 100 def の順番なら入れ替える必要はないのです。