gpt4 book ai didi

c++ - 我可以使用 Boost.Spirit 进行通用数学 (AST) 模式匹配和操作吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:58:48 24 4
gpt4 key购买 nike

我正在研究 C++ 中的模式匹配,其中包括 Mach7 ,这似乎是解决问题的一种功能方法,而且更通用 Visitor Pattern ,这似乎是最小公分母:它无所不能,但只在特定情况下表现出色。

我想操纵数学表达式(以符号方式简化、求值以及执行微分方程求解和积分等计算)。是的,我希望最终得到一个计算机代数系统。对于输入,我正在考虑使用 Boost.Spirit (X3) 来解析某种形式的输入(目前正在那里获得基本的 LaTeX 支持,尽管索引与下标/上标是这个问题......)。

然后我想到了一个疯狂的想法,即使用 Boost.Spirit 不仅可以解析输入“文本”,还可以使用库的非解析器组件实际执行数学操作结果 AST。这种通用性是否足以满足我的目标要求的模式匹配,或者我应该看看其他解决方案吗?我试图找到有关其他 CAS 内部工作方式的文档,但没有仔细阅读这些无疑非常出色的代码喜欢Maxima ,除了数学 AST 的非常简单的实现之外,我似乎找不到任何信息。所以我几乎没有输入信息来确定 Boost.Spirit 是否可以完成我最终需要做的事情。

最佳答案

我没有资格就符号代数的主题和那里的要求提出建议。

确实不过对 Boost Spirit 略知一二。

我只能说:不要这样做!

您不想让解析器承担如此复杂的责任,这些责任只会在 EDSL 和 Phoenix actor 的“扭曲”现实中更难设计。

事实上,我经常重复这个建议(参见例如 Boost Spirit: "Semantic actions are evil"? ,这是最相关的,但我在几个聊天室中加深了它,有时在问题似乎来自的答案中加深了它将解析与处理混为一谈)。

关于c++ - 我可以使用 Boost.Spirit 进行通用数学 (AST) 模式匹配和操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34710621/

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