随笔分类 -  Compiler

摘要:【输入】控制流图<N, E> G,回边m—>n 【输出】循环子图<N, E> loop 【流程】 1. 将m、n加入loop的结点集合,及m—>n加入loop的边集合,若m不等于n即不为自环,则加入m到queue(先进先出队列) 2. 若queue非空,则其从头出队得结点q;否则结束 3. 在G中遍 阅读全文
posted @ 2023-09-06 22:59 cq12yue 阅读(17) 评论(0) 推荐(0)
摘要:【命题1】控制流图G中若a dom n,且b dom n,则a dom b 或b dom a 【证明】设G入口为s,假设结论不成立,即a 不dom b且b 不dom a,或a dom b且b dom a。根据支配结点定义,如果是前者,则从s有全部路径经a(或b)到n但不经过b(或a),这与题设b(或 阅读全文
posted @ 2023-09-06 22:57 cq12yue 阅读(12) 评论(0) 推荐(0)
摘要:1. 迭代算法在什么情况下是正确的 数据流值满足半格的定义,以及数据流方程中的传递函数满足单调性 2. 迭代算法在什么情况下必定收敛 在满足正确性的前提下,当数据流值对应的半格高度有限时,必定收敛。以最小元为初值的迭代收敛于最小不动点,以最大元为初值的迭代收敛于最大不动点 3. IDEAL、MOP、 阅读全文
posted @ 2023-09-06 22:53 cq12yue 阅读(47) 评论(0) 推荐(0)
摘要:为什么要加宽算子?因为当格的偏序集合L不满足升链条件,从最小元迭代计算最小不动点的过程是不收敛的,即迭代序列(fⁿ(⊥))ₙ不保证最终稳定,且其最小上界不保证等于最小不动点,因此需要一种近似lfp(f)的方法。引入加宽算子fw:L×L—>L, fw(x)=x▽f(x),可以将L上的一个序列转为收敛的 阅读全文
posted @ 2023-09-06 22:45 cq12yue 阅读(22) 评论(0) 推荐(0)
摘要:【性质】 1. 判定两个完全格L和M能否构成伽罗瓦连接,即抽象化函数α: L—>M是否完全加性的,或具体化函数γ: M—>L是否完全乘性的 2. 构造抽象化函数和具体化函数,即对于一个Galois连接(L, α, γ, M),给定α可通过γ(m) = ⊔{l | α(l) ⊑ m}确定γ,这对于所有 阅读全文
posted @ 2023-09-06 22:42 cq12yue 阅读(63) 评论(0) 推荐(0)