gpt4 book ai didi

parsing - 具有单寄存器 VM 的解释器 - 可以评估所有数学。表达?

转载 作者:行者123 更新时间:2023-12-01 13:06:23 26 4
gpt4 key购买 nike

我正在写一个解释器。我以前做过,但从未尝试过可以处理 3 + 4 * 2/( 1 − 5 ) ^ 2 ^ 3 等表达式的方法。

我对解析过程没有问题,实际上是关于我的 VM 然后执行代码。

我的目标是一个快速的解释器,所以我决定不使用基于堆栈的 VM,在这种情况下您需要多个指令来进行乘法运算,例如 (push、push、mul)

解析器生成的 VM 的“汇编”代码如下所示:

3 + 4 * 2/( 1 − 5 ) ^ 2 ^ 3

成为

sub 1         5
pow result 2
pow result 3
div 2 result
mul 4 result
add 3 result

(结果正确)

  • 如您所见:每条指令都没有,只有一个或两个参数。结果寄存器保存最后一条指令的结果。就是这样。

具有这种结构的语言且只有一个寄存器的 VM 可以计算每个数学表达式吗?例如 Python 或 PHP 可以吗?

如果没有堆栈是不可能的,我现在就重新开始!

最佳答案

您如何处理 (1 + 2) * (3 + 4) 或任何其他需要您计算多个中间结果的问题?

关于parsing - 具有单寄存器 VM 的解释器 - 可以评估所有数学。表达?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2884514/

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