- 博客(2)
- 资源 (3)
- 收藏
- 关注
原创 静态分析之数据流分析与 SSA 入门 (二)
什么是静态单赋值 SSASSA 是 static single assignment 的缩写,也就是静态单赋值形式。顾名思义,就是每个变量只有唯一的赋值。以下图为例,左图是原始代码,里面有分支, y 变量在不同路径中有不同赋值,最后打印 y 的值。右图是等价的 SSA 形式,y 变量在两个分支中被改写为 y1, y2,在控制流交汇处插入 Ф 函数,合并了来自不同边的 y1, y2 值, 赋...
2018-11-21 01:57:14 15134 1
原创 静态分析之数据流分析与 SSA 入门 (一)
什么是数据流分析编译器的一个重要功能是分析和优化代码。编译时分析(或称静态分析)得到若干信息后,编译器可以确定在何处应用何种变换是安全并且有利可图的。而其中一种重要的分析技术就是数据流分析。顾名思义,数据流分析就是分析数据如何在程序执行路径上流动的技术,那么数据流分析的前提条件就是基于 IR (源代码经过编译得到的中间表示形式)构造 CFG 控制流图。基于数据流分析,可以实现多种全局...
2018-11-18 23:09:32 15808
自制脚本语言的LR(1)编译器与解释器
2015-12-22
LR(1) parser generator V0.1
2015-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人