摘要: 一个 context-insensitive 的 Andersen 风格的分析算法: 定义: \(N\) 是变量和 new 的总数量 \(D(x)\) 是解引用变量 \(x\) 的 statements 数量 \(G\) 是 flow graph \(E\) 是 flow graph 到达不动点时边 阅读全文
posted @ 2025-09-28 22:54 sysss 阅读(7) 评论(0) 推荐(0)
摘要: Subtyping 提到的规则并不适合实现,原因在于 T-SUB 和 S-Trans 规则推导中的项 \(t\) 没有任何约束的元变量(没有对形状作出限制)。 这意味着对于任意一个项 \(t\),无法确定在什么时机使用什么规则做类型推导。 S-Trans 的另一个问题是,\(U\) 的搜索空间近乎无 阅读全文
posted @ 2025-09-09 10:29 sysss 阅读(7) 评论(0) 推荐(0)
摘要: (因为最近在搓类型系统,发现 tapl 也就学了个皮毛,再回来补充一下知识) Subtyping 关系满足:自反性,传递性 对于 record 类型有宽度和深度两个规则: 宽度对应的子类型关系有点难以理解,具备更多的 field 的 record 反而是“更小”的子类型。但是从类型对应的值集来看,更 阅读全文
posted @ 2025-09-08 08:52 sysss 阅读(6) 评论(0) 推荐(0)
摘要: Background 在构建一个自顶向下的语法分析器时,很多情况下需要处理复杂的模式匹配来完成解析。比如对于文法: E ::= '[' A ']' | '(' B ')' 需要写出如下 OCaml 代码: let parseE input = match input with | '[' :: re 阅读全文
posted @ 2025-08-23 08:59 sysss 阅读(8) 评论(0) 推荐(0)
摘要: ![](https://img2024.cnblogs.com/blog/3382471/202508/3382471-20250816142718004-537610382.png)![](https://img2024.cnblogs.com/blog/3382471/202508/3382471-20250816142717935-183801977.png)![](https://img2 阅读全文
posted @ 2025-08-16 14:27 sysss 阅读(5) 评论(0) 推荐(0)
摘要: Introduction 之前的一些 JS 的 callgraph 相关的工作忽略了动态属性访问(比如 Field-based Analysis)。最近的 ECOOP'22 的工作显示动态属性访问是最主要的 unsoundness 的来源。这篇文章主要关注动态属性访问,使用 dynamic pre- 阅读全文
posted @ 2025-08-03 22:53 sysss 阅读(11) 评论(0) 推荐(0)
摘要: Efficient Construction of Approximate Call Graphs for JavaScript IDE Services Introduction 文章提出了 a field-based flow analysis for constructing call gra 阅读全文
posted @ 2025-07-25 23:04 sysss 阅读(10) 评论(0) 推荐(0)
摘要: JavaScript 的特点 JavaScript 的语言特点 “动态”特性,使得静态分析不好进行(难以找到合适的抽象) 动态类型的(dynamically typed)并且支持广泛的隐式类型转换的使用 基于原型的面向对象(Prototype-based OOP),可以动态增减实例上的属性 动态生成 阅读全文
posted @ 2025-07-22 21:26 sysss 阅读(14) 评论(0) 推荐(0)
摘要: 因为一些学习任务需要在本地使用 SVF 构建某个项目的 CallGraph,中间遇到一点问题 wLLVM 参考 https://blog.csdn.net/weixin_47778392/article/details/141107768 SVF 编译时终端 exited with code 1 需 阅读全文
posted @ 2025-07-15 19:23 sysss 阅读(17) 评论(0) 推荐(0)
摘要: Hw1 toDigits :: Integer -> [Integer] toDigits n | n <= 0 = [] | otherwise = toDigits (n `div` 10) ++ [n `mod` 10] toDigitsRev :: Integer -> [Integer] 阅读全文
posted @ 2025-07-12 17:18 sysss 阅读(5) 评论(0) 推荐(0)