shi*_*rom 7 language-implementation forth
LOOP 一词被描述为“解析所有未解析的 LEAVE 事件的目的地”。(强调我的)
与 IF ... ELSE ... THEN 的前向引用数始终为 1 不同,LOOP 对 LEAVE 的数量没有限制。那怎么实施呢?
我想到的一种方法是始终将 LEAVE 的数量保持在堆栈顶部。每个 LEAVE 都会增加此计数器并将其置于其下。LOOP 从顶部读取计数器并解析那么多引用。但这似乎是一个便宜的伎俩。
真正的 Forth 系统如何实现这种循环?我不需要 teh codez(将 Forth 作为学习经验实施),只需要概念。