编译步骤/优化/尾调用优化。豫
yuyan · 68 行 · 3720 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
寻观「标准库」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「命名环境术」之书。
寻观「编译器核心」之「顺序标识符」之「顺序标识符」之书。
寻观「编译器核心」之「编译数据」之「操作符」之「操作符数据结构」之书。
「尾调用优化」乃
化「爻」 「:可以不可以变换:」而
化「表达式」而
「表达式」 「:标注后的类和物:」
也。
「尾调用优化」者会「可以变换」而会「式」而
虑「递归」者「尾调用优化」而
虑「结果」者
(
鉴「式」而
有(「式节点」
于「函数调用」
于((「列」【「函数」,(「式节点」于(「参数节点」于(「多参数形」于「个数」))于「参数」)】)))
则(
虑「函数递归」者「递归」于「阴」于「函数」而
虑「参数递归」者
(「态射」授以「表达式」授以「表达式」)
于
「参数」于(会「参数式」而「递归」于「阴」于「参数式」)而
若(「可以变换」)
则
(「分组函数调用式」于(「尾多参数形」于「个数」)于「函数递归」于「参数递归」)
否则
(「分组函数调用式」于(「多参数形」于「个数」)于「函数递归」于「参数递归」)
)
或有(「式节点」于「爻分支节点」于(「列」【「当前式」,「阳式」,「阴式」】))
则((「式节点」
于「爻分支节点」
于(「列」【
「递归」于「阴」于「当前式」,
「递归」于「可以变换」于「阳式」,
「递归」于「可以变换」于「阴式」
】))
)
或有(「式节点」于「内联虑」于((「列」【「当前式」,「后式」】)))则((「式节点」
于「内联虑」
于((「列」【(「递归」于「阴」于「当前式」),(「递归」于「可以变换」于「后式」)】)))
)
或有(「式节点」于(「拉姆达抽象」于「拉形」)于((「列」【「抽象体」】)))则
((「式节点」于(「拉姆达抽象」于「拉形」)于((「列」【(「递归」于「阳」于「抽象体」)】))))
或有(「绑定」于「名」于「下式」)则
(「抽象表达式操作」于「式」于(会「内式」而「递归」于「可以变换」于「内式」))
或有「其他」则
「表达式统一操作」于(会「内式」而「递归」于「阴」于「内式」)于「式」
)而
虑「无」者
(「编译调试打印行」
于『tco_result』
于(会「无」而
『尾调用优化,输入:』附(「表达式表示」于「式」)附『。,,,,输出:』附(「表达式表示」于「结果」)))
而
「结果」
也。
「尾调用优化顶层」乃化「表达式」而「表达式」也。
「尾调用优化顶层」者会「式」而
「尾调用优化」于「阴」于「式」
也。