编译步骤/优化/基础工具/表达式带定义操作。豫
yuyan · 134 行 · 6528 字节 · 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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
寻观「标准库」之书。
寻观「编译器核心」之「编译数据」之「操作符」之「操作符数据结构」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「命名环境术」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。
「带定义绑定递归带名」乃
化「命名环境」而
化「表达式」 「:值:」而
化「表达式」 「:绑定:」而
化(化「字符串」而化「命名环境」而化「表达式」而「表达式」)而
「表达式」 「:最终返回的绑定式:」
也。
「带定义绑定递归带名」者会「境」而会「值」而会「绑定式」而会「递归函数」而
虑「抽象名及式体」者
「解构抽象不重复名称」于「绑定式」于(「命名环境获取所有名称」于「境」)
而
「进行抽象」
于(「抽象名及式体」中「零」)
于(「递归函数」
于(「抽象名及式体」中「零」)
于(「添加声明不改变名」于『优44』于「境」于(「抽象名及式体」中「零」)于「值」)
于(「抽象名及式体」中「一」))
也。
「带定义多绑定递归」乃
化「整数」而
化「命名环境」而
化「表达式」 「:值:」而
化「表达式」 「:绑定:」而
化(化「命名环境」而化「表达式」而「表达式」)而
「表达式」 「:最终返回的绑定式:」
也。
「带定义多绑定递归」者会「个数」而会「境」而会「值」而会「多绑定式」而会「递归函数」而
虑「无」者
「编译调试打印行」
于『mult_bind_recurse』
于(会「无」而『正则多绑定递归,』附(「整数表示」于「个数」)附『,』附(「表达式表示」于「多绑定式」))而
若(「大于」于「个数」于「零」)则(
虑「无」者
「编译调试打印行」
于『mult_bind_recurse』
于(会「无」而『继续,』附(「整数表示」于「个数」)附『,』附(「表达式表示」于「多绑定式」))而
虑「抽象名及式体」者
「解构抽象不重复名称」
于「多绑定式」
于(「命名环境获取所有名称」于「境」)
而
「进行抽象」
于(「抽象名及式体」中「零」)
于(「带定义多绑定递归」
于(「减」于「个数」于「一」)
于(「添加声明不改变名」于『优27』于「境」于(「抽象名及式体」中「零」)于「值」)
于
「值」
于(「抽象名及式体」中「一」)于「递归函数」)
)
否则
(
虑「无」者
「编译调试打印行」
于
『mult_bind_recurse』于(会「无」而
『返回,』附(「整数表示」于「个数」)
附『,』附(「表达式表示」于「多绑定式」))
而
「递归函数」于「境」于「多绑定式」
)
也。
「多绑定递归」乃
化「整数」而
化「表达式」 「:绑定:」而
化(化「表达式」而「表达式」)而
「表达式」 「:最终返回的绑定式:」
也。
「多绑定递归」者会「个数」而会「多绑定式」而会「递归函数」而
「带定义多绑定递归」
于「个数」于「罄」
于(「式节点」于「空值节点」于「罄」)于「多绑定式」
于(会「境」而会「式」而「递归函数」于「式」)
也。
「带定义绑定递归」乃
化「命名环境」而
化「表达式」 「:值:」而
化「表达式」 「:绑定:」而
化(化「命名环境」而化「表达式」而「表达式」)而
「表达式」 「:最终返回的绑定式:」
也。
「带定义绑定递归」者会「境」而会「值」而会「绑定式」而会「递归函数」而
虑「抽象名及式体」者
「解构抽象不重复名称」于「绑定式」于(「命名环境获取所有名称」于「境」)
而
「进行抽象」
于(「抽象名及式体」中「零」)
于(「递归函数」
于(「添加声明不改变名」于『优44』于「境」于(「抽象名及式体」中「零」)于「值」)
于(「抽象名及式体」中「一」))
也。
「:用于不知道定义的变量占位(例如续延和递归变量):」
「占位式」者「式节点」于「待定节点」于「罄」也。
「表达式带定义统一操作」乃
化(化「命名环境」而化「表达式」而「表达式」)而
化「命名环境」而
化「表达式」而
「表达式」
也。
「表达式带定义统一操作」者会「操作」而会「境」而会「式」而
鉴「式」而
有「自由变量」于「名」则「自由变量」于「名」
或有「绑定变量」于「序数」则(「发生事故」于『不应出现绑定变量443』)
或有「绑定」于「名」于「下式」则(「带定义绑定递归」于「境」于「占位式」于「式」于「操作」)
或有(「式节点」于「内联虑」于((「列」【「当前式」,「后式」】)))
则(
虑「后当前式」者(「操作」于「境」于「当前式」)而
(「式节点」
于「内联虑」
于(((「列」于「表达式」)也((「列」【
「后当前式」,
(「带定义绑定递归」于「境」于「后当前式」于「后式」于「操作」)
】)
)
)
))
)
或有「式节点」于「名称」于「式列」则
「式节点」于「名称」于((「态射」)于「式列」于(会「子式」而「操作」于「境」于「子式」))
或有「其他」则
「发生事故」于『未有487』
也。