编译步骤/代码生成/底层后端/底层中间式。豫
yuyan · 263 行 · 16575 字节 · 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 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263
寻观「标准库」之书。
「:文言:底层后端所读之简树,无类型,唯三十二位整数。汉语:底层模式(包描述声明「编译模式」为『底层』的包)编译时,先把闭包前优化形式转成这种简树,再做提升、循环与分派整理,最后生成 Wasm 指令。所有值都是三十二位整数;单元值取零。局部变量名全局唯一,故变换不必担心捕获。:」
「低层项」立「元类型」也。
「项整」立化「整数」而「低层项」也。 「:三十二位整数常量:」
「项局」立化「字符串」而「低层项」也。 「:局部变量、参数或可变格:」
「项串」立化「字符串」而「低层项」也。 「:字符串字面,只许作静态串之实参:」
「项引」立化「字符串」而化「字符串」而「低层项」也。 「:顶层值定义的引用:文件、名:」
「项外」立化「字符串」而化(「列」于「低层项」)而「低层项」也。 「:外部调用:原语、声明或导入:」
「项调」立化「字符串」而化(「列」于「低层项」)而「低层项」也。 「:全局函数直接调用:」
「项局调」立化「字符串」而化(「列」于「低层项」)而「低层项」也。 「:局部函数调用,提升之后不复存在:」
「项若」立化「低层项」而化「低层项」而化「低层项」而「低层项」也。
「项令」立化「字符串」而化「低层项」而化「低层项」而「低层项」也。 「:名、值、体:」
「项局函」立化「字符串」而化(「列」于「字符串」)而化「低层项」而化「低层项」而「低层项」也。 「:局部函数定义:名、形参、函数体、其后之式:」
「项环」立化「字符串」而化(「列」于「字符串」)而化(「列」于「低层项」)而化「低层项」而「低层项」也。 「:内联循环:标号、形参、初值、循环体:」
「项续」立化「字符串」而化(「列」于「低层项」)而「低层项」也。 「:回到循环起点:标号、新的形参值:」
「项派」立化「低层项」而化(「列」于(「整数」合「低层项」))而化「低层项」而「低层项」也。 「:分派:被分派之式、各情形、其余:」
「低层函数」立「元类型」也。
「构造低层函数」立化「字符串」而化(「列」于「字符串」)而化「低层项」而「低层函数」也。 「:全局名、形参、函数体:」
「:文言:取直属子式,绑定之名不在其中。汉语:按固定顺序给出直接子式,供通用遍历使用;`低层重建` 依同一顺序还原。:」
「低层子项们」乃化「低层项」而(「列」于「低层项」)也。
「低层子项们」者会「项」而
鉴「项」而
有「项整」于「数」则「罄」授以「低层项」
或有「项局」于「名」则「罄」授以「低层项」
或有「项串」于「文」则「罄」授以「低层项」
或有「项引」于「文件」于「名」则「罄」授以「低层项」
或有「项外」于「名」于「参们」则「参们」
或有「项调」于「名」于「参们」则「参们」
或有「项局调」于「名」于「参们」则「参们」
或有「项若」于「条」于「真」于「假」则
「列」【「条」,「真」,「假」】
或有「项令」于「名」于「值」于「体」则
「列」【「值」,「体」】
或有「项局函」于「名」于「形们」于「体」于「余」则
「列」【「体」,「余」】
或有「项环」于「标」于「形们」于「初们」于「体」则
「附加」于「初们」于(「列」【「体」】)
或有「项续」于「标」于「参们」则「参们」
或有「项派」于「被」于「分们」于「缺」则
「缀」
于「被」
于(「附加」
于(「态射」授以(「整数」合「低层项」)授以「低层项」于「分们」于(会「分」而「分」中「一」))
于(「列」【「缺」】))
也。
「低层取前」乃化「整数」而化(「列」于「低层项」)而(「列」于「低层项」)也。
「低层取前」者会「数」而会「们」而
若「小于」于「数」于「一」则「罄」授以「低层项」
否则
鉴「们」而
有「罄」则「罄」授以「低层项」
或有「缀」于「首」于「尾」则
「缀」于「首」于(「低层取前」于(「减」于「数」于「一」)于「尾」)
也。
「低层去前」乃化「整数」而化(「列」于「低层项」)而(「列」于「低层项」)也。
「低层去前」者会「数」而会「们」而
若「小于」于「数」于「一」则「们」
否则
鉴「们」而
有「罄」则「罄」授以「低层项」
或有「缀」于「首」于「尾」则
「低层去前」于(「减」于「数」于「一」)于「尾」
也。
「低层重建」乃化「低层项」而化(「列」于「低层项」)而「低层项」也。
「低层重建」者会「项」而会「新们」而
鉴「项」而
有「项整」于「数」则「项」
或有「项局」于「名」则「项」
或有「项串」于「文」则「项」
或有「项引」于「文件」于「名」则「项」
或有「项外」于「名」于「参们」则
「项外」于「名」于「新们」
或有「项调」于「名」于「参们」则
「项调」于「名」于「新们」
或有「项局调」于「名」于「参们」则
「项局调」于「名」于「新们」
或有「项若」于「条」于「真」于「假」则(
鉴「新们」而
有(「列」【「甲」,「乙」,「丙」】)则
「项若」于「甲」于「乙」于「丙」
或有「其他」则
「发生事故」授以「低层项」于『低层重建:若之子式个数不符』
)
或有「项令」于「名」于「值」于「体」则(
鉴「新们」而
有(「列」【「甲」,「乙」】)则
「项令」于「名」于「甲」于「乙」
或有「其他」则
「发生事故」授以「低层项」于『低层重建:令之子式个数不符』
)
或有「项局函」于「名」于「形们」于「体」于「余」则(
鉴「新们」而
有(「列」【「甲」,「乙」】)则
「项局函」于「名」于「形们」于「甲」于「乙」
或有「其他」则
「发生事故」授以「低层项」于『低层重建:局函之子式个数不符』
)
或有「项环」于「标」于「形们」于「初们」于「体」则
「项环」
于「标」
于「形们」
于(「低层取前」于(「长度」授以「低层项」于「初们」)于「新们」)
于(「第N个」授以「低层项」于(「长度」授以「低层项」于「初们」)于「新们」)
或有「项续」于「标」于「参们」则
「项续」于「标」于「新们」
或有「项派」于「被」于「分们」于「缺」则
虑「数」者「长度」授以(「整数」合「低层项」)于「分们」而
虑「新被」者「第N个」授以「低层项」于「零」于「新们」而
虑「新分体们」者
「低层取前」于「数」于(「低层去前」于「一」于「新们」)而
虑「新缺」者
「第N个」授以「低层项」于(「加」于「数」于「一」)于「新们」
而
「项派」
于「新被」
于(「态射」授以「整数」授以(「整数」合「低层项」)
于(「整数范围」于「零」于「数」)
于(会「序」而((「第N个」授以(「整数」合「低层项」)于「序」于「分们」)中「零」)
与(「第N个」授以「低层项」于「序」于「新分体们」)))于「新缺」
也。
「低层映射子项」乃化(化「低层项」而「低层项」)而化「低层项」而「低层项」也。
「低层映射子项」者会「变换」而会「项」而
「低层重建」于「项」于(「态射」授以「低层项」授以「低层项」于(「低层子项们」于「项」)于「变换」)
也。
「:文言:去同名之重,存其先者。汉语:字符串列表去重,保持首次出现的顺序。:」
「低层去重」乃化(「列」于「字符串」)而(「列」于「字符串」)也。
「低层去重」者会「们」而
「反转」授以「字符串」于(「从左折叠」授以「字符串」授以(「列」于「字符串」)
于(会「项」而
会「累」而
若「存在吗」授以「字符串」
于(会「他」而「串相等」于「他」于「项」)
于「累」则「累」
否则
「缀」于「项」于「累」
)
于(「罄」授以「字符串」)
于「们」)
也。
「低层含名」乃化(「列」于「字符串」)而化「字符串」而「爻」也。
「低层含名」者会「们」而会「名」而
「存在吗」授以「字符串」于(会「他」而「串相等」于「他」于「名」)于「们」
也。
「:文言:局部名皆唯一,故以引用减绑定,即得自由者。汉语:`低层引用们` 收集所有 `项局` 的名;`低层绑定们` 收集所有绑定名(令、局函形参与环形参,不含局函之名);两者之差即自由变量。:」
「低层引用们」乃化「低层项」而(「列」于「字符串」)也。
「低层引用们」者会「项」而
鉴「项」而
有「项局」于「名」则「列」【「名」】
或有「其他」则
「串联」授以「字符串」于(「态射」授以「低层项」授以(「列」于「字符串」)
于(「低层子项们」于「项」)于「低层引用们」)
也。
「低层绑定们」乃化「低层项」而(「列」于「字符串」)也。
「低层绑定们」者会「项」而
虑「自身」者
((「列」于「字符串」)也(
鉴「项」而
有「项令」于「名」于「值」于「体」则「列」【「名」】
或有「项局函」于「名」于「形们」于「体」于「余」则「形们」
或有「项环」于「标」于「形们」于「初们」于「体」则「形们」
或有「其他」则「罄」授以「字符串」
)
)
而
「附加」
于「自身」
于(「串联」授以「字符串」
于(「态射」授以「低层项」授以(「列」于「字符串」)于(「低层子项们」于「项」)于「低层绑定们」))
也。
「低层自由们」乃化「低层项」而(「列」于「字符串」)也。
「低层自由们」者会「项」而
虑「绑们」者「低层绑定们」于「项」而
「低层去重」于(「滤」授以「字符串」
于(会「名」而「非」于(「低层含名」于「绑们」于「名」))
于(「低层引用们」于「项」))
也。
「:文言:数局部函数之被呼,即项局调中名同者。汉语:统计 `项局调` 中函数名等于给定名的个数。:」
「低层局调数」乃化「字符串」而化「低层项」而「整数」也。
「低层局调数」者会「名」而会「项」而
虑「自身」者
(「整数」也(
鉴「项」而
有「项局调」于「函」于「参们」则(
若「串相等」于「函」于「名」则「一」否则「零」)
或有「其他」则「零」
))
而
「加」
于「自身」
于(「从左折叠」授以「低层项」授以「整数」
于(会「子」而会「累」而「加」于「累」于(「低层局调数」于「名」于「子」))
于「零」
于(「低层子项们」于「项」))
也。
「:文言:项中有名者几,含调用与作值。汉语:统计变量名在 `项局` 中的出现次数。:」
「低层引用数」乃化「字符串」而化「低层项」而「整数」也。
「低层引用数」者会「名」而会「项」而
「长度」授以「字符串」于(「滤」授以「字符串」于(会「他」而「串相等」于「他」于「名」)于(「低层引用们」于「项」))
也。
「:文言:项之大小,以点数计。汉语:统计简树结点数,用于内联决策。:」
「低层项大小」乃化「低层项」而「整数」也。
「低层项大小」者会「项」而
「加」
于「一」
于(「从左折叠」授以「低层项」授以「整数」
于(会「子」而会「累」而「加」于「累」于(「低层项大小」于「子」))
于「零」
于(「低层子项们」于「项」))
也。
「:文言:简树之文,供诊断与测试。汉语:把简树写成可读文本。:」
「低层项表示」乃化「低层项」而「字符串」也。
「低层项表示」者会「项」而
虑「串们」者(化(「列」于「低层项」)而「字符串」)也(会「们」而
「间合」于『,』于(「态射」授以「低层项」授以「字符串」于「们」于「低层项表示」))而
鉴「项」而
有「项整」于「数」则「整数表示」于「数」
或有「项局」于「名」则
『〈』附「名」附『〉』
或有「项串」于「文」则
『“』附「文」附『”』
或有「项引」于「文件」于「名」则
『引用〈』附「文件」附『:』附「名」附『〉』
或有「项外」于「名」于「参们」则
『外〈』附「名」附『〉(』附(「串们」于「参们」)附『)』
或有「项调」于「名」于「参们」则
『调〈』附「名」附『〉(』附(「串们」于「参们」)附『)』
或有「项局调」于「名」于「参们」则
『局调〈』附「名」附『〉(』附(「串们」于「参们」)附『)』
或有「项若」于「条」于「真」于「假」则
『若(』附(「低层项表示」于「条」)附『)则(』附(「低层项表示」于「真」)附『)否则(』附(「低层项表示」
于「假」)附『)』
或有「项令」于「名」于「值」于「体」则
『令〈』附「名」附『〉=(』附(「低层项表示」于「值」)附『)于(』附(「低层项表示」于「体」)附『)』
或有「项局函」于「名」于「形们」于「体」于「余」则
『局函〈』附「名」附『〉(』附(「间合」于『,』于「形们」)附『)=(』附(「低层项表示」于「体」)附『)于(』附
(「低层项表示」于「余」)附『)』
或有「项环」于「标」于「形们」于「初们」于「体」则
『环〈』附「标」附『〉(』附(「间合」于『,』于「形们」)附『)初(』附(「串们」于「初们」)附『)=(』附(「低层项表示」
于「体」)附『)』
或有「项续」于「标」于「参们」则
『续〈』附「标」附『〉(』附(「串们」于「参们」)附『)』
或有「项派」于「被」于「分们」于「缺」则
『派(』附(「低层项表示」于「被」)附『)』附(「间合」
于『』
于(「态射」授以(「整数」合「低层项」)授以「字符串」
于「分们」
于(会「分」而『〈』附(「整数表示」于(「分」中「零」))附『〉(』附(「低层项表示」于(「分」中「一」))附
『)』)))附『否则(』附(「低层项表示」于「缺」)附『)』
也。