编译步骤/代码生成/底层后端/底层模块。豫
yuyan · 634 行 · 35287 字节 · 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 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「标准库」之「操作系统」之「环境变量」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「网页汇编核心」之「模块结构」之书。
寻观「编译器核心」之「网页汇编核心」之「存储模块」之书。
寻观「编译器核心」之「网页汇编核心」之「状态模块」之书。
寻观「编译器核心」之「网页汇编核心」之「状态二进制」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「底层后端」之「底层中间式」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「底层后端」之「底层读取」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「底层后端」之「底层求值」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「底层后端」之「底层化简」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「底层后端」之「底层提升」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「底层后端」之「底层生成」之书。
「:文言:合诸文之定义,自导出者起,按需成一模块。汉语:底层模块的总装:把依赖序的各文件闭包前优化形式定义转成简树;求顶层常量;自导出函数(定义名以〈导出:〉开头)出发,沿调用图逐个化简、提升、整理;再生成 Wasm 指令,附导入、导出、内存与数据段,装成状态模块。:」
「低层文件定义」即「字符串」
合(「列」于(「字符串」合「爻」合「表达式」))
也。 「:文件路径、其定义列:」
「已转定义」立「元类型」也。
「构造已转定义」立化「字符串」而化「字符串」而化「低层定义结果」而「已转定义」也。 「:文件、名、转换结果:」
「低层键」乃化「字符串」而
化「字符串」而
「字符串」
也。
「低层键」者会「文件」而会「名」而
「文件」附『#』附「名」
也。
「低层转全部」乃化(「列」于「低层文件定义」)而(「列」于「已转定义」)也。
「低层转全部」者会「文们」而
「串联」授以「已转定义」于(「态射」授以「低层文件定义」授以(「列」于「已转定义」)
于「文们」
于(会「文」而
「态射」授以(「字符串」合「爻」合「表达式」)授以「已转定义」
于(「文」中「一」)
于(会「项」而
「构造已转定义」
于(「文」中「零」)
于(「项」中「零」)
于(「低层转定义」于(「文」中「零」)于(「项」中「零」)于(「项」中「二」)))))
也。
「低层值定义们」乃
化(「列」于「已转定义」)而
(「列」于(「字符串」合「低层项」))
也。
「低层值定义们」者会「们」而
「串联」授以(「字符串」合「低层项」)
于(「态射」授以「已转定义」授以(「列」于(「字符串」合「低层项」))
于「们」
于(会「定」而
鉴「定」而
有「构造已转定义」于「文件」于「名」于「结果」则(
鉴「结果」而
有「构造定义结果」于「主」于「附」则(
鉴「主」而
有「定义值」于「项」则
「列」【((「低层键」于「文件」于「名」)与「项」)】
或有「定义函数」于「形们」于「体」则
「罄」授以(「字符串」合「低层项」)
)
)))
也。
「低层函数们」乃化(「列」于「已转定义」)而(「列」于「低层函数」)也。
「低层函数们」者会「们」而
「串联」授以「低层函数」于(「态射」授以「已转定义」授以(「列」于「低层函数」)
于「们」
于(会「定」而
鉴「定」而
有「构造已转定义」于「文件」于「名」于「结果」则(
鉴「结果」而
有「构造定义结果」于「主」于「附」则(
鉴「主」而
有「定义函数」于「形们」于「体」则
「缀」
于(「构造低层函数」于(「低层键」于「文件」于「名」)于「形们」于「体」)
于「附」
或有「定义值」于「项」则「附」
)
)))
也。
「:文言:值定义含声明者,先求之。汉语:判断简树里是否有 `声明:` 开头的外部调用(内存或数据区声明)。:」
「低层含声明」乃化「低层项」而「爻」也。
「低层含声明」者会「项」而
虑「自身」者
(「爻」也(鉴「项」而
有「项外」于「名」于「参们」则「串开头是它吗」于『声明:』于「名」
或有「余项」则「阴」))而
若「自身」则
「阳」
否则
「存在吗」授以「低层项」于「低层含声明」于(「低层子项们」于「项」)
也。
「低层调用们」乃化「低层项」而(「列」于「字符串」)也。
「低层调用们」者会「项」而
虑「自身」者
((「列」于「字符串」)也(
鉴「项」而
有「项调」于「名」于「参们」则「列」【「名」】
或有「余项」则「罄」授以「字符串」
)
)
而
「附加」
于「自身」
于(「串联」授以「字符串」
于(「态射」授以「低层项」授以(「列」于「字符串」)于(「低层子项们」于「项」)于「低层调用们」))
也。
「低层导入们」乃化「低层项」而(「列」于「字符串」)也。
「低层导入们」者会「项」而
虑「自身」者
((「列」于「字符串」)也(
鉴「项」而
有「项外」于「名」于「参们」则
(若「串开头是它吗」于『导入:』于「名」则「列」【「名」】否则「罄」授以「字符串」)
或有「余项」则「罄」授以「字符串」
)
)
而
「附加」
于「自身」
于(「串联」授以「字符串」
于(「态射」授以「低层项」授以(「列」于「字符串」)于(「低层子项们」于「项」)于「低层导入们」))
也。
「:文言:一函数之整理:化简、提升、尾环、成派。汉语:对一个未处理的函数依次做化简、提升(含尾自调化环)、分派整理,返回它自己与提升产生的全局函数。:」
「低层整理函数」乃化「低层函数」而(「列」于「低层函数」)也。
「低层整理函数」者会「函」而
鉴「函」而
有「构造低层函数」于「全名」于「形们」于「体」则(
虑「简」者
「低层化简」于(「罄」授以(「字符串」合「低层项」))于「体」而
虑「提升后」者
「低层提升函数」于(「构造低层函数」于「全名」于「形们」于「简」)
而
「态射」授以「低层函数」授以「低层函数」
于「提升后」
于(会「升」而鉴「升」而
有「构造低层函数」于「升名」于「升形」于「升体」则
「构造低层函数」于「升名」于「升形」于(「低层成派」于「升体」))
)
也。
「低层查函数」乃
化(「列」于「低层函数」)而
化「字符串」而
(「或可有」于「低层函数」)
也。
「低层查函数」者会「们」而会「名」而
鉴「们」而
有「罄」则「可无」
或有「缀」于「首」于「尾」则(
鉴「首」而
有「构造低层函数」于「首名」于「首形」于「首体」则
(若「串相等」于「首名」于「名」则「可有」于「首」否则「低层查函数」于「尾」于「名」)
)
也。
「低层已含」乃化(「列」于「低层函数」)而化「字符串」而「爻」也。
「低层已含」者会「们」而会「名」而
鉴「低层查函数」于「们」于「名」而
有「可有」于「函」则「阳」
或有「可无」则「阴」
也。
「:文言:自根而起,沿所调者次第整理,得可达之诸函数。汉语:从根函数名出发,按调用关系收集所有可达函数(先整理再扫描调用)。返回按发现顺序的已整理函数列表。:」
「低层可达函数」乃
化(「列」于「低层函数」)而
化(「列」于「字符串」)而
(「列」于「低层函数」)
也。
「低层可达函数」者会「原们」而会「根们」而
虑「已处理」者
「新引用」授以(「列」于「低层函数」)于(「罄」授以「低层函数」)而
虑「待办」者「新引用」授以(「列」于「字符串」)于「根们」而
递归虑「循环」其化「有」而「有」者会「无」而
鉴「读引用」授以(「列」于「字符串」)于「待办」而
有「罄」则「元」
或有「缀」于「首」于「尾」则(
虑「无」者
「写引用」授以(「列」于「字符串」)于「待办」于「尾」而
若「低层已含」
于(「读引用」授以(「列」于「低层函数」)于「已处理」)于「首」则
「循环」于「元」
否则
(
鉴「低层查函数」于「原们」于「首」而
有「可无」则
「发生事故」授以「有」
于(『底层编译错误:调用了未定义的函数〈』附「首」附『〉』)
或有「可有」于「函」则(
虑「产出」者「低层整理函数」于「函」
而
虑「无」者
「写引用」授以(「列」于「低层函数」)
于「已处理」
于(「附加」授以「低层函数」于(「读引用」授以(「列」于「低层函数」)于「已处理」)于「产出」)
而
虑「新调」者
「串联」授以「字符串」
于(「态射」授以「低层函数」授以(「列」于「字符串」)
于「产出」
于(会「产」而鉴「产」而
有「构造低层函数」于「产名」于「产形」于「产体」则「低层调用们」于「产体」))
而
虑「无」者
「写引用」授以(「列」于「字符串」)
于「待办」
于(「附加」授以「字符串」于(「读引用」授以(「列」于「字符串」)于「待办」)于「新调」)
而
「循环」于「元」
)
)
)
而
虑「无」者「循环」于「元」而
「读引用」授以(「列」于「低层函数」)于「已处理」
也。
「:文言:求某函数所需之签。汉语:签名去重表:(参数个数,结果个数)。:」
「低层去重签」乃
化(「列」于(「整数」合「整数」))而
(「列」于(「整数」合「整数」))
也。
「低层去重签」者会「们」而
「反转」授以(「整数」合「整数」)于(「从左折叠」授以(「整数」合「整数」)授以(「列」于(「整数」合「整数」))
于(会「项」而
会「累」而
若「存在吗」授以(「整数」合「整数」)
于(会「他」而
「且」
于(「等于」于(「他」中「零」)于(「项」中「零」))
于(「等于」于(「他」中「一」)于(「项」中「一」)))
于「累」则「累」
否则
「缀」于「项」于「累」
)
于(「罄」授以(「整数」合「整数」))
于「们」)
也。
「低层签号」乃
化(「列」于(「整数」合「整数」))而
化(「整数」合「整数」)而
「整数」
也。
「低层签号」者会「们」而
会「项」而
递归虑「寻」其化(「列」于(「整数」合「整数」))而化「整数」而「整数」者会「余」而会「序」而
鉴「余」而
有「罄」则「发生事故」授以「整数」
于『底层编译错误:签名缺失』
或有「缀」于「首」于「尾」则
若「且」
于(「等于」于(「首」中「零」)于(「项」中「零」))
于(「等于」于(「首」中「一」)于(「项」中「一」))则「序」
否则
「寻」于「尾」于(「加」于「序」于「一」)
而
「寻」于「们」于「零」
也。
「:文言:局部之数,取诸指令之最大下标。汉语:扫描指令得到使用的局部下标上界(下标加一)。:」
「低层局部上界」乃化(「列」于「网页指令」)而「整数」也。
「低层局部上界」者会「们」而
「从左折叠」授以「网页指令」授以「整数」
于(会「令」而会「累」而
鉴「令」而
有「网页局部读取」于「号」则(
若「大于」于(「加」于「号」于「一」)于「累」则「加」于「号」于「一」否则「累」)
或有「网页局部写入」于「号」则
(若「大于」于(「加」于「号」于「一」)于「累」则「加」于「号」于「一」否则「累」)
或有「网页局部暂存」于「号」则
(若「大于」于(「加」于「号」于「一」)于「累」则「加」于「号」于「一」否则「累」)
或有「其他」则「累」
)于「零」于「们」
也。
「:文言:去其无用之常与弃。汉语:窥孔:删去紧邻的 `常量 弃值`(求值后立即丢弃的单元值)。:」
「低层窥孔」乃化(「列」于「网页指令」)而(「列」于「网页指令」)也。
「低层窥孔」者会「们」而
鉴「们」而
有「罄」则「罄」授以「网页指令」
或有「缀」于「首」于「尾」则(
鉴「首」而
有「网页常量」于「数」则(
鉴「尾」而
有「缀」于「次」于「余」则
(鉴「次」而
有「网页弃值」则「低层窥孔」于「余」
或有「余次」则「缀」于「首」于(「低层窥孔」于「尾」))
或有「罄」则「缀」于「首」于「尾」
)
或有「余首」则
「缀」于「首」于(「低层窥孔」于「尾」)
)
也。
「:文言:一函数之生成:形参占前,体后成,得局部数与指令。汉语:生成一个函数的 `网页函数`(类型号、额外局部数、指令)。:」
「低层生成函数」乃
化「生成上下文」而
化(「列」于(「整数」合「整数」))而
化「低层函数」而
「网页函数」
也。
「低层生成函数」者会「上下」而会「签们」而会「函」而
鉴「函」而
有「构造低层函数」于「全名」于「形们」于「体」则(
虑「个」者「长度」授以「字符串」于「形们」而
虑「局表」者
「态射」授以「整数」授以(「字符串」合「整数」)
于(「整数范围」于「零」于「个」)
于(会「序」而((「第N个」授以「字符串」于「序」于「形们」)与「序」))而
虑「本上下」者
鉴「上下」而
有「构造生成上下文」于「旧局」于「旧环」于「函表」则
「构造生成上下文」于「局表」于「旧环」于「函表」而
虑「指令们」者
「低层窥孔」于(「低层生成」于「本上下」于「个」于「零」于「体」)而
虑「上界」者「低层局部上界」于「指令们」而
(「低层签号」于「签们」于(「个」与「一」))
与(若「大于」于「上界」于「个」则「减」于「上界」于「个」否则「零」)与「指令们」
)
也。
「:文言:导出之名,去其前缀〈导出:〉;名后可缀〈:参数数:结果数〉,以定导出之签,总装时为之造包装函数:形参多于所定者补零,结果所定为零者弃之。汉语:定义名以〈导出:〉开头的函数是导出函数,导出名是其后的部分。导出名后面可以再加〈:参数数:结果数〉指定导出函数的 Wasm 签名,例如〈导出:启动:0:0〉:总装时生成一个包装函数,多出的形参补 0,所定结果数为 0 时丢弃返回值。豫言里“有 → 有”的函数据此导出成无参无果的入口。:」
「低层导出前缀」乃「字符串」也。
「低层导出前缀」者『导出:』也。
「低层导出根」乃
化(「列」于「已转定义」)而
(「列」于(「字符串」合「字符串」))
也。 「:(函数全局名、导出名):」
「低层导出根」者会「们」而
「串联」授以(「字符串」合「字符串」)
于(「态射」授以「已转定义」授以(「列」于(「字符串」合「字符串」))
于「们」
于(会「定」而
鉴「定」而
有「构造已转定义」于「文件」于「名」于「结果」则(
若「串开头是它吗」于「低层导出前缀」于「名」则(
鉴「结果」而
有「构造定义结果」于「主」于「附」则(
鉴「主」而
有「定义函数」于「形们」于「体」则
「列」【((「低层键」于「文件」于「名」)与(「去除串开头」于「低层导出前缀」于「名」))】
或有「定义值」于「项」则
「罄」授以(「字符串」合「字符串」)
)
)
否则
「罄」授以(「字符串」合「字符串」)
)))
也。
「低层函数名」乃化「低层函数」而「字符串」也。
「低层函数名」者会「函」而
鉴「函」而
有「构造低层函数」于「名」于「形们」于「体」则「名」
也。
「低层函数形数」乃化「低层函数」而「整数」也。
「低层函数形数」者会「函」而
鉴「函」而
有「构造低层函数」于「名」于「形们」于「体」则
「长度」授以「字符串」于「形们」
也。
「低层函数体」乃化「低层函数」而「低层项」也。
「低层函数体」者会「函」而
鉴「函」而
有「构造低层函数」于「名」于「形们」于「体」则「体」
也。
「低层必解导入」乃
化「字符串」而
(「字符串」合「字符串」合「整数」合「整数」)
也。
「低层必解导入」者会「名」而
鉴「低层解导入名」于「名」而
有「可有」于「解」则「解」
或有「可无」则
「发生事故」授以(「字符串」合「字符串」合「整数」合「整数」)
于(『底层编译错误:导入名格式不对(应为 导入:模块:字段:参数数:结果数):』附「名」)
也。
「:文言:解导出名之签:名〈甲:三:零〉得(甲、三、零);无签者为(原名、负一、负一)。汉语:解析导出名可能带的签名后缀〈:参数数:结果数〉,返回(导出名、参数数、结果数);没有签名则参数数与结果数为 -1。:」
「低层解导出签」乃化「字符串」而(「字符串」合「整数」合「整数」)也。
「低层解导出签」者会「名」而
虑「缺省」者(「减」于「零」于「一」)而
鉴「按段拆」于『:』于「名」而
有(「列」【「前」,「参」,「果」】)则(
鉴「低层解自然数」于「参」而
有「可有」于「参数数」则(
鉴「低层解自然数」于「果」而
有「可有」于「结果数」则(「前」与「参数数」与「结果数」)
或有「可无」则(「名」与「缺省」与「缺省」)
)
或有「可无」则(「名」与「缺省」与「缺省」)
)
或有「其他」则(「名」与「缺省」与「缺省」)
也。
「:文言:据全局名查函数之形参数。汉语:在可达函数里按全局名查形参个数;找不到为 -1。:」
「低层查函形数」乃化(「列」于「低层函数」)而化「字符串」而「整数」也。
「低层查函形数」者会「们」而会「全名」而
鉴「们」而
有「罄」则(「减」于「零」于「一」)
或有「缀」于「首」于「尾」则
若「串相等」于(「低层函数名」于「首」)于「全名」则「低层函数形数」于「首」否则「低层查函形数」于「尾」于「全名」
也。
「:文言:总装,得状态模块。汉语:`文们` 是依赖序的(文件路径、闭包前优化形式定义列)。返回可直接编码的状态模块。:」
「:文言:调试之开关:环境变量 YY_底层导出全部 非空者,凡可达之函数皆以〈名:〉加其名另行导出,供降级器书调试之符号、剖析之器示函数之名;不设则所生之模块不变。汉语:调试开关:环境变量 YY_底层导出全部 非空时,把所有可达函数以“名:函数名”额外导出,供降级器写调试符号、剖析工具显示函数名;不设时生成的模块不变。编译缓存不区分此开关,开启时请换用单独的编译器副本(缓存按编译器路径分开)。:」
「低层要全导出」乃化「有」而「爻」也。
「低层要全导出」者会「无」而
虑「值」者「获取环境变量」于『YY_底层导出全部』而
「且」于(「值」中「零」)于(「大于」于(「串长度」于(「值」中「一」))于「零」)
也。
「编译底层模块」乃化(「列」于「低层文件定义」)而「网页状态模块」也。
「编译底层模块」者会「文们」而
虑「无」者「低层重置状态」于「元」而
虑「已转们」者「低层转全部」于「文们」而
虑「值们」者「低层值定义们」于「已转们」而
虑「无」者「写引用」于「底层值定义表」于「值们」而
「:文言:值定义若径引他定义(总集之重出口),记为别名,调之即调其本。汉语:把形如“值=引用 原定义”的顶层值登记为别名;求值只对含声明者主动进行,其余按引用惰性求值。:」
虑「别名们」者
「串联」授以(「字符串」合「字符串」)
于(「态射」授以(「字符串」合「低层项」)授以(「列」于(「字符串」合「字符串」))
于「值们」
于(会「对」而鉴「对」中「一」而
有「项引」于「文」于「名」则
「列」【((「对」中「零」)与(「低层键」于「文」于「名」))】
或有「余项」则
「罄」授以(「字符串」合「字符串」)))而
虑「无」者「写引用」于「底层别名表」于「别名们」而
「:文言:先求声明,次求余者。汉语:内存与数据区的声明须先于静态串的分配,故先求含声明的值定义,再求其余值定义。:」
虑「无」者
「态射」授以(「字符串」合「低层项」)授以「整数」
于(「滤」授以(「字符串」合「低层项」)于(会「对」而「低层含声明」于(「对」中「一」))于「值们」)
于(会「对」而「低层取常量」于(「对」中「零」))而
虑「原们」者「低层函数们」于「已转们」而
虑「根们」者「低层导出根」于「已转们」而
虑「无」者
若「等于」于(「长度」授以(「字符串」合「字符串」)于「根们」)于「零」则
「发生事故」授以「有」于(『底层编译错误:没有任何导出函数(定义名须以〈』附「低层导出前缀」附『〉开头)』)
否则
「元」
而
虑「可达」者
「低层可达函数」
于「原们」
于(「态射」授以(「字符串」合「字符串」)授以「字符串」于「根们」于(会「对」而「对」中「零」))
而
虑「根签们」者
「态射」授以(「字符串」合「字符串」)授以(「字符串」合「字符串」合「整数」合「整数」)
于「根们」
于(会「对」
而
虑「解」者「低层解导出签」于(「对」中「一」)而
((「对」中「零」)与(「解」中「零」)与(「解」中「一」)与(「解」中「二」)))而
虑「有签们」者
「滤」授以(「字符串」合「字符串」合「整数」合「整数」)
于(会「根」而「大于」于(「根」中「二」)于(「减」于「零」于「一」))
于「根签们」
而
虑「导入名们」者
「低层去重」于(「串联」授以「字符串」
于(「态射」授以「低层函数」授以(「列」于「字符串」)
于「可达」
于(会「函」而「低层导入们」于(「低层函数体」于「函」))))
而
虑「导入解们」者
「态射」授以「字符串」授以(「字符串」合「字符串」合「整数」合「整数」)
于「导入名们」
于「低层必解导入」
而
虑「导入数」者「长度」授以「字符串」于「导入名们」而
虑「函号表」者
「附加」授以(「字符串」合「整数」)
于(「态射」授以「整数」授以(「字符串」合「整数」)
于(「整数范围」于「零」于「导入数」)
于(会「序」而((「第N个」授以「字符串」于「序」于「导入名们」)与「序」)))
于(「态射」授以「整数」授以(「字符串」合「整数」)
于(「整数范围」于「零」于(「长度」授以「低层函数」于「可达」))
于(会「序」而((「低层函数名」于(「第N个」授以「低层函数」于「序」于「可达」))
与(「加」于「导入数」于「序」)
)))
而
虑「导入签们」者
「态射」授以(「字符串」合「字符串」合「整数」合「整数」)授以(「整数」合「整数」)
于「导入解们」
于(会「解」而((「解」中「二」)与(「解」中「三」)))
而
虑「函数签们」者
「态射」授以「低层函数」授以(「整数」合「整数」)
于「可达」
于(会「函」而((「低层函数形数」于「函」)与「一」))
而
虑「包装签们」者
「态射」授以(「字符串」合「字符串」合「整数」合「整数」)授以(「整数」合「整数」)
于「有签们」
于(会「根」而((「根」中「二」)与(「根」中「三」)))
而
虑「签们」者
「低层去重签」于(「附加」授以(「整数」合「整数」)
于(「附加」授以(「整数」合「整数」)于「导入签们」于「函数签们」)
于「包装签们」)
而
虑「网页导入们」者
「态射」授以(「字符串」合「字符串」合「整数」合「整数」)授以「网页导入」
于「导入解们」
于(会「解」而((「解」中「零」)与(「解」中「一」)
与(「低层签号」于「签们」于((「解」中「二」)与(「解」中「三」)))
))
而
虑「上下」者
「构造生成上下文」
于(「罄」授以(「字符串」合「整数」))
于(「罄」授以(「字符串」合「整数」合(「列」于「整数」)))于「函号表」
而
虑「原网页函数们」者
「态射」授以「低层函数」授以「网页函数」
于「可达」
于(会「函」而「低层生成函数」于「上下」于「签们」于「函」)
而
虑「包装们」者
「态射」授以(「字符串」合「字符串」合「整数」合「整数」)授以「网页函数」
于「有签们」
于(会「根」
而
虑「目标号」者
(
鉴「低层查串整」于「函号表」于(「根」中「零」)而
有「可有」于「号」则「号」
或有「可无」则
「发生事故」授以「整数」于(『底层编译错误:导出函数不可达:』附(「根」中「一」))
)而
虑「形数」者「低层查函形数」于「可达」于(「根」中「零」)而
虑「参令们」者
「串联」授以「网页指令」于(「态射」授以「整数」授以(「列」于「网页指令」)
于(「整数范围」于「零」于「形数」)
于(会「序」
而
若「大于」于(「根」中「二」)于「序」则
「列」【「网页局部读取」于「序」】
否则
「列」【「网页常量」于「零」】
))
而
((「低层签号」于「签们」于((「根」中「二」)与(「根」中「三」)))与「零」
与(「串联」授以「网页指令」于(「列」【
「参令们」,
「列」【「网页调用」于「目标号」】,
若「等于」于(「根」中「三」)于「零」则「列」【「网页弃值」】否则「罄」授以「网页指令」
】))
))而
虑「网页函数们」者
「附加」授以「网页函数」于「原网页函数们」于「包装们」
而
虑「包装号表」者
「态射」授以「整数」授以(「字符串」合「整数」)
于(「整数范围」于「零」于(「长度」授以(「字符串」合「字符串」合「整数」合「整数」)于「有签们」))
于(会「序」而(((「第N个」授以(「字符串」合「字符串」合「整数」合「整数」)于「序」于「有签们」)中「一」)
与(「加」于(「加」于「导入数」于(「长度」授以「低层函数」于「可达」))于「序」)
))
而
虑「导出们」者
「态射」授以(「字符串」合「字符串」合「整数」合「整数」)授以「网页导出」
于「根签们」
于(会「根」
而
若「大于」于(「根」中「二」)于(「减」于「零」于「一」)
则
(
鉴「低层查串整」于「包装号表」于(「根」中「一」)而
有「可有」于「号」则((「根」中「一」)与「号」)
或有「可无」则
「发生事故」授以「网页导出」
于(『底层编译错误:导出包装缺失:』附(「根」中「一」))
)
否则
(
鉴「低层查串整」于「函号表」于(「根」中「零」)而
有「可有」于「号」则((「根」中「一」)与「号」)
或有「可无」则
「发生事故」授以「网页导出」
于(『底层编译错误:导出函数不可达:』附(「根」中「零」))
))
而
虑「内存们」者
((「列」于「网页内存声明」)也(
鉴「读引用」于「底层内存声明」而
有(「列」【「初」,「大」】)则
「列」【(「初」与「大」)】
或有「其他」则
「罄」授以「网页内存声明」
)
)
而
虑「数据们」者
「态射」授以(「整数」合「字符串」合「字节串」)授以「网页数据声明」
于(「反转」授以(「整数」合「字符串」合「字节串」)于(「读引用」于「底层静态段们」))
于(会「段」而「网页主动数据」于「零」于(「段」中「零」)于(「段」中「二」))
而
虑「调试导出们」者
若「低层要全导出」于「元」则
「附加」授以「网页导出」
于「导出们」
于(「滤」授以(「字符串」合「整数」)
于(会「项」而「非」于(「小于」于(「项」中「一」)于「导入数」))
于(「态射」授以(「字符串」合「整数」)授以(「字符串」合「整数」)
于「函号表」
于(会「项」而((『名:』附(「项」中「零」))与(「项」中「一」)))))
否则
「导出们」
而
虑「模」者
(「签们」与「网页导入们」与「网页函数们」与「调试导出们」)
而
((「模」与「内存们」与「数据们」)与(「罄」授以「网页全局声明」))
也。
「:文言:一步而成模块之字节。汉语:编译并编码为标准 Wasm 二进制(编码时会验证模块)。:」
「生成底层模块」乃化(「列」于「低层文件定义」)而「字节串」也。
「生成底层模块」者会「文们」而
「生成状态二进制」于(「编译底层模块」于「文们」)
也。