gpt4 book ai didi

c - 如何在用 C 编写的类 FORTH 语言解释器中实现 LOOP

转载 作者:太空狗 更新时间:2023-10-29 17:15:40 25 4
gpt4 key购买 nike

我正在用 C 编写一种简单的基于堆栈的语言,并且想知道我应该如何着手实现某种循环结构和/或先行符号。由于此页面的代码有点长(超过 200 行),我将其放在 a GitHub repository 中。 .

编辑:主程序在文件 stack.c 中。

编辑:代码只接收 words 的输入,有点像 FORTH。它使用 scanf 并从左到右工作。然后它使用一系列 ifstrcmp 来决定要做什么。原来如此。

最佳答案

Forth 方法是在数据堆栈旁边添加一个单独的循环堆栈。然后定义使用此循环堆栈的操作。例如:

5 0 DO I . LOOP

将打印

0 1 2 3 4

它的工作方式是:

  • DO 将索引 (0) 和控件 (5) 移动到循环堆栈。
  • I 将循环堆栈的顶部复制到数据堆栈。
  • LOOP 递增索引(循环堆栈的顶部)。如果索引小于控制(循环堆栈顶部下方的索引),则它会重新运行从 DO 返回到 LOOP 的命令。如果索引 >=,则它从循环堆栈中弹出索引和控制,控制恢复正常。

关于c - 如何在用 C 编写的类 FORTH 语言解释器中实现 LOOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6949434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com