豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 54 行 · 8556 字节 · UTF-8
§
寻观「标准库」之书。
寻观「编译器核心」之「编译步骤」之「求值正则变换」之「统一正则数据」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「网页汇编栈表示证明」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「网页汇编栈调用图」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「网页汇编线性栈基础」之书。
寻观「编译器核心」之「网页汇编核心」之「回收模块」之书。
寻观「编译器核心」之「网页汇编核心」之「回收文本」之书。
「:文言:验诸体,不信空签;有一不合,全包不生。汉语:覆盖可达子图、互递归、未知与动态调用、宿主重入、额外分配、根回边、数组逃逸和签名欺骗。正例最后输出完整自动函数包作为执行夹具。:」
「子」乃化「字符串」而化「正则操作」而化(「列」于「正则原子」)而化「正则原子」而「正则函数」也。
「子」者会「名」而会「术」而会「参」而会「果」而「名」与「阴」与(「列」【「零」,「一」】)与(「正则段」于(「列」【「正则运算」于「二」于「正则通用值」于「术」于「参」】)于(「正则产出」于「果」))与「三」也。
「调子」乃化「字符串」而化「字符串」而「正则函数」也。
「调子」者会「名」而会「往」而「子」于「名」于「正则调用」于(「列」【「正则函数引用」于「往」,「正则局部」于「零」,「正则局部」于「一」】)于(「正则局部」于「二」)也。
「根」乃化「字符串」而「正则函数」也。
「根」者会「往」而『根』与「阴」与(「列」【「零」】)与(「正则段」于(「列」【
 「正则运算」于「一」于「正则通用值」于(「正则原语」于『豫言_新建引用数组』)于(「列」【「正则整数」于「七」,「正则局部」于「零」】),
 「正则运算」于「二」于「正则通用值」于「正则调用」于(「列」【「正则函数引用」于「往」,「正则局部」于「一」,「正则局部」于「零」】)】)于(「正则产出」于(「正则局部」于「二」)))与「三」也。
「候」乃化「正则函数」而「栈表示签」也。
「候」者会「函」而若「串相等」于(「函」中「零」)于『根』则(「列」【「一」】)与「一」否则(「列」【「四」,「一」】)与「一」也。
「叶」者「子」于『叶』于(「正则原语」于『豫言_读取引用数组』)于(「列」【「正则局部」于「零」,「正则整数」于「零」】)于(「正则局部」于「二」)也。
「宿主」者「子」于『宿主』于(「正则原语」于『豫言_打印行』)于(「列」【「正则字符串」于『不传数组亦有重入』】)于(「正则整数」于「零」)也。
「验」乃化「字符串」而化「正则模块」而化「爻」而「有」也。
「验」者会「名」而会「诸函」而会「期」而
 虑「实」者鉴(「造栈模块索引」于「诸函」于「候」)而有「可无」则「阴」或有(「可有」于「境」)则(鉴(「求栈调用图」于「境」于『根』)而有「可无」则「阴」或有(「可有」于「诸号」)则「阳」)而
 若「爻相等」于「实」于「期」则「元」否则(「打印行」于「名」;(「发生事故」授以「有」于『调用图测试失败』))也。
「验」于『简单闭图』于(「列」【「根」于『叶』,「叶」】)于「阳」。
「验」于『忽略不可达宿主』于(「列」【「根」于『叶』,「叶」,「宿主」】)于「阳」。
「验」于『间接调用链』于(「列」【「根」于『中』,「调子」于『中』于『叶』,「叶」】)于「阳」。
「验」于『封闭互递归』于(「列」【「根」于『甲』,「调子」于『甲』于『乙』,「调子」于『乙』于『甲』】)于「阳」。
「验」于『可达宿主』于(「列」【「根」于『中』,「调子」于『中』于『宿主』,「宿主」】)于「阴」。
「验」于『未知调用』于(「列」【「根」于『未知』,「叶」】)于「阴」。
「验」于『动态调用』于(「列」【「根」于『动态』,「子」于『动态』于「正则调用」于(「列」【「正则局部」于「零」】)于(「正则整数」于「零」)】)于「阴」。
「验」于『子数组创建』于(「列」【「根」于『新』,「子」于『新』于(「正则原语」于『豫言_新建引用数组』)于(「列」【「正则整数」于「零」,「正则局部」于「一」】)于(「正则整数」于「零」)】)于「阴」。
「验」于『数组逃逸』于(「列」【「根」于『逃』,「子」于『逃』于(「正则原语」于『豫言_读取引用数组』)于(「列」【「正则局部」于「零」,「正则整数」于「零」】)于(「正则局部」于「零」)】)于「阴」。
「验」于『根回边』于(「列」【「根」于『中』,「子」于『中』于「正则调用」于(「列」【「正则函数引用」于『根』,「正则局部」于「一」】)于(「正则局部」于「二」)】)于「阴」。
「验」于『签名谎称整数返回』于(「列」【「根」于『假』,「子」于『假』于(「正则原语」于『豫言_写入引用数组』)于(「列」【「正则整数」于「零」,「正则整数」于「零」,「正则局部」于「零」】)于(「正则局部」于「二」)】)于「阴」。
「验」于『引用写入数值栈』于(「列」【「根」于『藏』,「子」于『藏』于(「正则原语」于『豫言_写入引用数组』)于(「列」【「正则局部」于「零」,「正则整数」于「零」,「正则局部」于「零」】)于(「正则整数」于「零」)】)于「阴」。
「验」于『重复函数名』于(「列」【「根」于『叶』,「叶」,「叶」】)于「阴」。
「验」于『空模块』于「罄」于「阴」。
「验」于『无根函数』于(「列」【「叶」】)于「阴」。
「包」者鉴(「造栈模块索引」于(「列」【「根」于『叶』,「叶」,「宿主」】)于「候」)而有「可无」则「发生事故」授以「回收项串」于『夹具索引失败』或有(「可有」于「境」)则(鉴(「生成栈函数包」于「境」于『根』于『$stackfn』于『$entry』于『$old』)而有(「可有」于「项」)则「项」或有「可无」则「发生事故」授以「回收项串」于『夹具函数包失败』)也。
「:文言:公门以名引 $t1,故其型项与包同书,打印器乃得书参之名;诸型先后不改。汉语:公开入口按名字引用 $t1,因此把 $t1 类型项与函数包放进同一个项串打印,打印器才能写出带名参数;显式类型的先后顺序不变。:」
「一参型」乃「回收模块项」也。
「一参型」者「回收类型项」于『$t1』于(「回收函数型」于(「列」【「回收等引用」】)于(「列」【「回收等引用」】))也。
「打印行」于(『(module
(type $ints (array (mut i64))) (type $big (struct (field i64)))
(func $box (param $n i64) (result (ref null eq)) local.get $n struct.new $big)
(func $unbox (param $v (ref null eq)) (result i64) local.get $v ref.cast (ref $big) struct.get $big 0)
(func $old (type $t1) (param $n (ref null eq)) (result (ref null eq)) (local $len i64)
 local.get $n call $unbox local.tee $len i64.const 4294967295 i64.gt_u if unreachable end
 i64.const 7 local.get $len i32.wrap_i64 array.new $ints i32.const 0 array.get $ints call $box)
』附(「回收项串转文」于(「回收项并」于(「列」【「回收单项」于「一参型」,「线性栈基础」,「包」】)))附『
(func (export "run") (param $n i64) (result i64) local.get $n call $box call $entry call $unbox)
(func (export "reference") (param $n i64) (result i64) local.get $n call $box call $old call $unbox)
)』)。