Algorithm 区分中缀形式语言函数

Algorithm 区分中缀形式语言函数,algorithm,function,math,symbolic-math,differentiation,Algorithm,Function,Math,Symbolic Math,Differentiation,我有一个如下的源文件(不失概括性(仅对可能的语法进行映像)): 我想将任何函数WRT与某个变量不同 我们可以将所有形式参数视为内部结构未知的函数 如果我进一步站得正确,那么以下是事实(因为依赖符号”是符号的一部分,因为全局变量是替换时间阶段的运算符(def:g{g}是一,但g{y}是零)): 但如何处理最后一个函数呢?即,用实际参数代替函数b 是否有任何通用算法的现成实现来处理上述问题?如何处理高阶导数(特别有趣的是,如何处理形式参数)?还有其他可能不清楚的情况吗?我建议将参数设置为知道如何响应

我有一个如下的源文件(不失概括性(仅对可能的语法进行映像)):

我想将任何函数WRT与某个变量不同

我们可以将所有形式参数视为内部结构未知的函数

如果我进一步站得正确,那么以下是事实(因为依赖符号
是符号的一部分,因为全局变量是替换时间阶段的运算符(def:
g{g}
是一,但
g{y}
是零)):

但如何处理最后一个函数呢?即,用实际参数代替函数
b


是否有任何通用算法的现成实现来处理上述问题?如何处理高阶导数(特别有趣的是,如何处理形式参数)?还有其他可能不清楚的情况吗?

我建议将参数设置为知道如何响应导数的符号表达式,并让所有操作都使用函数和返回函数。然后你会得到一个最终表达式,知道如何表示为导数。此外,你可以在以后做偏导数之类的事情,因为你有符号表达式

有关我的意思的真实示例,请参阅我为解决JavaScript中的微积分问题而编写的库,并在的源代码中搜索“Optimize if request”,查看我是如何使用它的。请参阅,以了解我为什么要编写该代码的解释


在那个例子中,我当然不是使用中缀符号。但这是一个标准的解析问题,我想你知道如何解决。

@HighPerformanceMark我正在尝试为上述玩具语言实现AST transformer派生程序。谢谢。我立即开始探索您提供的链接。
function a()
    return g // global variable without any internal structure exactly
end

function b(x, y)
    local z = x * y
    return z + 1
end

function c(z, t)
    return b(z * z, a())
end

// ...etc
function a'()
    return g';
end

function b'(x, y, x', y')
    local z' = x' * y + x * y'
    return z' + 0
end