gpt4 book ai didi

c - 使用 Flex+Bison 识别尾递归函数并将代码转换为迭代形式

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

我正在编写一个能够接受新函数定义的计算器。意识到新手需要尝试 Fibonacci 等递归函数,我希望我的计算器能够使用 Flex + Bison 识别尾递归函数并将代码转换为迭代形式。我正在使用 Flex & Bison 来完成这项工作。如果您有任何提示或想法,我热烈欢迎。谢谢!

编辑:

我们不用担心 Flex & Bison 的 C 或 C++ 输出。主要是我想要一个想法或提示。谢谢。

最佳答案

正如我在评论中所建议的,这对于词法分析器来说根本不是问题,对于解析器来说可能只是轻微的问题。如果你有这样的功能:

func f( a ) 
if ( a == 0 )
return a
return f( a - 1 )

然后,对于典型的 C 编译器,由优化器/代码生成器将递归调用转换为循环。当然,在解释性计算器中,您可以更加灵活,但我建议它仍然是最后一个应该执行尾调用删除的进程,而不是第一个。

关于c - 使用 Flex+Bison 识别尾递归函数并将代码转换为迭代形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2662355/

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