![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理
文章平均质量分 91
Canliture
hello, 程序分析!
展开
-
控制流的支配者关系分析以及Soot中的实现
由于仍然有些概念不是很清晰,这里仅当学习记录。1. 支配关系我们说d dom i,节点d支配节点i,如果从entry到节点i的所有可能执行路径都包含d。所以dom关系是自反的,传递的,反对称的自反性:a dom a,每个节点都支配它自己传递性:a dom b, b dom c, 则a dom c反对称性:a dom b, b dom a, 则a与b相等根据自反偏序集的定义,dom关系是自反偏序(简称偏序)的。那么我们可以用Hasse图(哈塞图)表示支配关系,也叫支配树。2. 立即支配.原创 2021-07-26 00:35:52 · 779 阅读 · 1 评论 -
程序分析技术栈-测试/辅助证明/模型检验/保守静态分析/bug-finding
做静态Bug查找工具/漏洞检查器等等,需要静态分析的知识,而静态分析从大的技术门类来讲可置身软件工程基础技术:程序分析技术大类。这里先概述日常工作中接触比较多的静态分析技术(如IDE的代码补全,定义跳转等等),然后再站在高层地视角将静态分析技术置身于程序分析这一软件工程基础领域,让我们清楚地知道静态分析在软件基础技术中的作用域/适用范围及其特点/局限性。静态程序分析(简称静态分析),主要是在不运行程序的情况下,找到程序的语义属性。它最初在70年代在编译优化技术中引入,用于生成高效的机器码。随着对静态分.原创 2021-05-04 15:29:43 · 1029 阅读 · 1 评论 -
LLVM IR / LLVM指令集入门
本文基于LLVM 12官方文档的LLVM Language Reference Manual。以学习笔记为主。所以本文会摘录一些常见/常用的指令。对于一些更加深层次的指令属性/特性,待我对LLVM有更深的理解再单独写文章记录。1. LLVM IR简介LLVM IR可以理解为LLVM平台的汇编语言,所以官方也是以语言参考手册(Language Reference Manual)的形式给出LLVM IR的文档说明。既然是汇编语言,那么就和传统的CUP类似,有特定的汇编指令集。但是它又与传统的特定平台相关.原创 2021-03-28 02:25:03 · 7257 阅读 · 1 评论 -
认真读文档!
认真读文档!认真读文档!认真读文档!血的教训....// ignored some codes ...Map options = JavaCore.getOptions();JavaCore.setComplianceOptions(JavaCore.VERSION_1_5, options);parser.setCompilerOptions(options);Which ...原创 2019-12-04 10:51:29 · 172 阅读 · 0 评论 -
extended operands——递归数据结构的一种处理方式
AST中有关extended operands最近遇到Java语言的AST中,eclipse对于中缀表达式InfixExpression的AST一个解析后的表示方式:下面是org.eclipse.jdt.core.dom.InfixExpression#extendedOperands方法的注释:/*** Returns the live list of extended operands...原创 2019-11-28 18:56:59 · 158 阅读 · 0 评论 -
体验Clang对C语言的编译
体验Clang对C语言的编译使用Clang来分析如下的简单C语言的函数,文件名为 larger_number.c (这算不上是一个程序,只能算是一个函数模块)// larger_number.cint larger(int a, int b) { if(a <= b) return b; else return a;}在本文中,我们体验一下Clan...原创 2019-10-28 03:45:04 · 5505 阅读 · 0 评论 -
Windows下LLVM环境配置
Windows下LLVM环境配置1. 命令行下载并构建VS 2017项目git clone https://github.com/llvm/llvm-project.gitcd llvm-projectmkdir buildcd build## download cmake (这里我下的是Windows版地最新稳定版msi包)## ↓## https://cmake....原创 2019-10-28 03:28:08 · 7575 阅读 · 0 评论 -
静态语义分析构建
静态语义分析构建静态语义处理;学习笔记,仅供个人知识导航用处,不作其它用途部分段落翻译自博客中列出的 参考文献1. JDT(Java开发工具, Java development tools)了解JDT是啥,了解其工具集1.1 JDT插件的组件内容JDT APTAnnotation Processor Tool(注解处理工具)JDT Core非UI的基础设施...原创 2019-10-21 16:28:41 · 990 阅读 · 0 评论