如果我在Forth环境中,我如何离开,以及我如何编程让一个单词离开?
发布于 2020-11-27 03:21:52
有两种方法可以“离开”Forth代码,这取决于你需要做什么。
BYE
Forth标准定义了单词BYE离开Forth环境本身。
BYE( -- )
将控制权返回给主机操作系统(如果有)。
当你的Forth不是作为一个程序在操作系统中运行时,这个词得到了很多创造性的解释。例如,在某些使用Forth作为操作系统的系统上,BYE会导致系统重新启动,从而允许您加载另一个操作系统。
BYE是编程工具扩展词集的一部分。
QUIT
在核心词集中有一个名为QUIT的词,但它不会离开环境。相反,它离开了一个单词的执行,并将您返回到解释器。这就是为什么它被称为“退出”,它是另一种意义上的退出。
QUIT( -- )( R: i*x -- )
清空返回堆栈,如果存在,则将零存储在SOURCE-ID中,使用户输入设备成为输入源,并进入解释状态。不显示消息。重复以下步骤:
>IN设置为0,如果处于解释状态,所有处理都已完成,并且不存在歧义条件,则对实现定义的系统提示符执行解释。在Forth标准中,QUIT实际上被定义为解释器本身,而不是像“这个词将你返回给解释器”那样定义QUIT。在分解的Forth实现中,这是有意义的:将您放回解释器的单词和解释器本身可以是同一个单词,它们都可以清除返回堆栈并开始解释。
QUIT是您更可能在冒号定义中看到的单词,因为它是一种打破字执行堆栈的便捷方法,可以保持数据堆栈的当前内容不变,然后返回到解释器。当然,您可以在冒号定义中使用BYE,例如在自定义解释器或用Forth编写的环境中,以退出回操作系统。
https://stackoverflow.com/questions/65028131
复制相似问题