如果我在Forth环境中,我该如何离开,以及如何编程一个单词以离开?
根据需要,有两种方法可以"离开"Forth代码。
BYE
Forth标准将单词BYE
定义为离开Forth环境本身。
BYE
(--(
将控制权返回到主机操作系统(如果有(。
当你的Forth是而不是在操作系统中作为程序运行时,这个词会得到很多创造性的解释。例如,在Forth是操作系统的某些系统上,BYE
会导致系统重新启动,从而允许您加载另一个操作系统。
BYE
是编程工具扩展词集的一部分。
QUIT
核心单词集中有一个单词QUIT
,但它不会离开环境。相反,它会留下一个单词的执行,并将您返回给解释器。这就是为什么它被称为"退出",从另一个意义上说,它是退出。
QUIT
(--((R:i*x--(
清空返回堆栈,如果存在,则将零存储在SOURCE-ID
中,使用户输入设备成为输入源,并进入解释状态。不要显示消息。重复以下步骤:
- 接受输入源到输入缓冲区的一行,将
>IN
设置为零,然后进行解释- 如果处于解释状态,所有处理都已完成,并且不存在歧义条件,则显示实现定义的系统提示
而不是将CCD_;这个词会把你交给口译员";,相反,CCD_ 12在Forth标准中被真正定义为解释器本身。在考虑因素的Forth实现中,这是有意义的:将您放回解释器中的单词和解释器本身可以是同一个单词,它们都可以清除返回堆栈并开始解释。
QUIT
是你更可能在冒号定义中看到的单词,因为它是一种从单词执行堆栈中分离出来的方便方法,保持数据堆栈的当前内容不变,然后返回到解释器。当然,您可以在冒号定义中使用BYE
,例如在自定义解释器或用Forth编写的环境中,退出操作系统。