衍生代码编译器

时间:2010-08-23 16:51:06

标签: compiler-construction derivative

我想问一下是否有人可以向我解释语法导向的切线性代码和伴随代码的区别。

它与使用编译器派生代码有关。

我知道它们是在程序中推导数学方程式的不同方法,但是,我不知道如何解释它们。

提前致谢。

问候。

1 个答案:

答案 0 :(得分:0)

根据我的理解,只有两种方法可以自动创建衍生代码:

  • 向前分化
  • 向后分化

据我所知,向后分化仅仅是大学,因为它需要记住在数组中执行的操作,最后走回这个数组 并解释此数组的内容。 结果(因为解释)这样的代码非常慢。

据我记忆,后向方法与链规则有关。

也可以混合使用两种方法: 如果您有一段代码:

    a=f(b);

并且函数f()不是微不足道的,b带有许多衍生物, 那么计算

是有帮助的
    a=f(b);
    da_db=df(b);
    da_dc=da_db*db_dc;
    da_dd=da_db*db_dd;