
技术评论
文章平均质量分 63
nklofy
compiler, vm, code obfuscator
展开
-
call/cc应该是什么类型
这篇来自我在某问答网站上的一个回答。但我觉得这个问题很有价值,我思考和写作的时间花费了很久。所以我觉得有价值保存起来。 问题是,call/cc的类型是什么。我们知道,(call/cc (lambda (k) p))有两种用法,一种是(call/cc (lambda (k) (k a))),例如(+ 1(call/cc (lambda (k) (k 2))));一种是(call/cc原创 2015-10-09 14:24:37 · 1389 阅读 · 0 评论 -
编程杂感两篇
编程杂感两篇原创 2017-04-28 22:08:55 · 665 阅读 · 1 评论 -
静态分析之数据流分析与 SSA 入门 (一)
什么是数据流分析编译器的一个重要功能是分析和优化代码。编译时分析(或称静态分析)得到若干信息后,编译器可以确定在何处应用何种变换是安全并且有利可图的。而其中一种重要的分析技术就是数据流分析。顾名思义,数据流分析就是分析数据如何在程序执行路径上流动的技术,那么数据流分析的前提条件就是基于 IR (源代码经过编译得到的中间表示形式)构造 CFG 控制流图。基于数据流分析,可以实现多种全局...原创 2018-11-18 23:09:32 · 17394 阅读 · 0 评论 -
静态分析之数据流分析与 SSA 入门 (二)
什么是静态单赋值 SSASSA 是 static single assignment 的缩写,也就是静态单赋值形式。顾名思义,就是每个变量只有唯一的赋值。以下图为例,左图是原始代码,里面有分支, y 变量在不同路径中有不同赋值,最后打印 y 的值。右图是等价的 SSA 形式,y 变量在两个分支中被改写为 y1, y2,在控制流交汇处插入 Ф 函数,合并了来自不同边的 y1, y2 值, 赋...原创 2018-11-21 01:57:14 · 17168 阅读 · 1 评论