PostScript 控制循环 - 服务器循环

PostScript control loop - server loop

我正在调查 start/server 循环。 Insi de Postscript 一书解释了 /start 过程。 该过程的一部分是控制回路:

...
{
  //serverdict /server get exec

  //serverdict begin

  setstreams
  setnulldevice
  /execjob
  load

  end
  exec
} loop
...

现在我正试图找出 /server 到底做了什么以及它可能是什么样子(以最简单的形式)。

//serverdict /server get exec

上面这一行获取服务器过程并立即执行。

现在我有一个这样的服务器循环:

/server {
 { % server loop
    (i'm in a server loop) print flush
    (%stdin) run
 }
 loop
} def

但我陷入了无限循环。服务器循环如何以及何时可以进入下一步 (//serverdict begin setstreams etc...) 因为它当前处于无限循环中?

在您显示的控制循环中,绑定到名称 server 的对象似乎不像您的代码那样循环。它似乎做了一些初始化,然后 return。表达式 /execjob load 似乎 运行 当前作业。除此之外,还有一个 { ... } loop 表达式,它似乎是您实现的服务器循环。

如果您想将自己的服务器代码插入提供的循环中,您需要使用解释器提供的 //serverdict 的内容。如果你想编写自己的服务器循环,似乎你需要走出一个层次,并替换整个 { ... } loop 表达式,也许 //serverdict 也是如此。

如果你想"find out what /server exactly does and how it might look like…",看看怎么样?道德等同于:

//serverdict /server get == flush