如何退出 Forth 环境?

Vel*_*tas 0 forth

如果我在 Forth 环境中,我该如何离开,以及如何编程一个词来离开?

Vel*_*tas 5

有两种方法可以“保留”Forth 代码,具体取决于您需要执行的操作。

BYE

BYEForth 标准定义了离开 Forth 环境本身的词。

BYE( -- )
将控制权返回给主机操作系统(如果有)。

当您的 Forth没有作为操作系统中的程序运行时,这个词会得到很多创造性的解释。例如,在某些操作系统为 ForthBYE系统上,会导致系统重新启动,让您加载另一个操作系统。

BYE是编程工具扩展字集的一部分。

QUIT

核心词集中有一个词叫QUIT,但它并没有离开环境。相反,它会离开单词的执行并将您返回到解释器。这就是为什么它被称为“QUIT”,它是另一种意义上的退出

QUIT( -- ) ( R: i * x -- )
清空返回堆栈,SOURCE-ID如果存在则存储零,使用户输入设备成为输入源,并进入解释状态。不显示消息。重复以下操作:

  • 将输入源中的一行接受到输入缓冲区中,设置>IN为零,然后进行解释。
  • 如果处于解释状态、所有处理已完成且不存在歧义条件,则显示实现定义的系统提示。

在 Forth 标准中,它不是被定义QUIT为“这个词让你返回到解释器”之类的东西,而是QUIT真正被定义为解释器本身。在分解的 Forth 实现中,这是有道理的:将您带回解释器的单词和解释器本身可以是同一个单词,它们都可以清除返回堆栈并开始解释。

AndQUIT是您更可能在冒号定义中看到的单词,因为它是打破单词执行堆栈的便捷方法,保持数据堆栈的当前内容不变,然后返回到解释器。当然,您可以BYE在冒号定义中使用,例如在用 Forth 编写的自定义解释器或环境中,以退出回操作系统。