源代码转换成图-控制流图、数据流图
代码转换成图
graph:通常是控制流图(CFG)
- 节点覆盖:执行每个语句
- 边覆盖:执行每个分支
- 循环:循环结构,如for循环、while循环等。
数据流覆盖:增加CFG
- defs是为变量赋值的语句
- uses是使用变量的语句
控制流图
if Statement
Loops
switch
try-catch
数据流图
- def:一个值存储在内存中
x出现在赋值的左侧(x=44;)
x是调用中的实际参数,该方法更改其值
x是方法的形式参数(方法启动时的隐式定义)
x是程序的输入
- use:访问变量的值
x出现在赋值的右侧
x出现在条件测试中
x是方法的实际参数
x是程序的输出
x是return语句中方法的输出
如果def和use出现在同一个节点上,def发生在use之后并且该节点处于Loop中,那么def和use是DU-pair
Example
源代码转换成图-控制流图、数据流图相关推荐
- python 代码转程序_如何用pyinstaller把自己编写的python源代码转换成可执行程序?...
昨天慢步熬夜写了一篇干货满满的文章,不知道什么原因,文章并未被推荐. 今天再来换个方式写一次. 把自己编写的python源代码转换成可执行程序 笔者继续用自编的<货币兑换程序3.0>为例. ...
- python将源代码转换成在html可显示的格式,Python实现将HTML转换成doc格式文件的方法示例...
Python实现将HTML转换成doc格式文件的方法示例 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Python实现将HTML转换成doc格式文件的方法示例. ...
- iOS逆向:【代码混淆】1、基于编译器混淆静态库(StaticLib)2、字符串加密:使用clang-c接口将源代码转换成抽象语法树,并对抽象语法树进行遍历和分析,分析代码中的字符串,并进行加密处理。
文章目录 前言 I .LLVM编译一个源文件的过程 1.1.预处理 1.2.将符号化后的内容转化为一棵解析树 (parse tree) 1.3.将 AST 转换为更低级的中间码 (LLVM IR) 1 ...
- python list转换成array_一文掌握Python【不定期更新】
目录 一.Numpy 1 基本操作 2 随机数 3 打乱训练数据 4 得到元素的最值 5 拼接数组 6 得到函数的信息 7 得到累乘即各项相乘的结果 8 判断一个数是否在数组中 9 数组的变换 10 ...
- python文件转换成jar包_Python一键转Jar包,Java调用Python新姿势!
粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 今天的这篇文章,聊一个轩辕君之前工作中遇到的需求:如何在Jav ...
- 对Python控制流图生成器的一些探索
概要 本篇文章会介绍为什么需要控制流图,现存的一些开源实现和自己写的实现,以及实现中遇到的问题和解决方案. 为什么需要控制流图 控制流图清晰地表示了程序执行时的可能路径.它有很多应用,比如数据流分析. ...
- 【Python】递归绘制科赫曲线及科赫雪花及转换成可执行文件打包
科赫曲线 ----------- 绘制科赫曲线 import turtle def koch(size, n):if n == 0:turtle.fd(size)else:for angle in [ ...
- DateTool的简单使用(我是如何将绝对时间转换成相对时间的)
一.一个使用频繁.简单易用的第三方框架.dateTool.上代码:我的需求是将图一.转换成图二. 图一 图二 二.图一中的created_at是后台的数据.前端显示为 "几天前.几分钟前.几 ...
- 基于Flutter开发网站转换成APP源代码 网站生成APP源代码带控制端
这是一款输入域名直接把网站转换成APP的平台源码,App的开发语言使用Flutter,控制端(平台端)的开发语言是PHP,且附带有App开发工具,开发工具使用的是AndroidStudio. 部署本套 ...
- 文字图片转换成html,将图片转换成HTML格式的文字图程序源代码
将图片转换成HTML格式的文字图程序源代码 将图片转换成HTML格式的文字图程序源代码.txt喜欢我这是革命需要,知道不?! 你不会叠衣服一边呆着去!以后我来叠! 我一定要给你幸福,谁也别想拦着. ■ ...
最新文章
- JAVA时间日期处理类,主要用来遍历两个日期之间的每一天。
- Ubuntu 下搭建 NFS 服务
- [css] 你有使用过css的writing-mode属性吗?说说它有哪些应用场景?
- centos7如何安装cloud-init
- CentOS7.0下NTP时间同步服务
- 软件工程师面试学习指南
- 004商城项目:ssm框架的整合之后的调试
- 寻找自己的道路——与技术同胞共勉 一种划分为七个阶段的道路:自信=意志=布局=切入点=团队=渠道=产品...
- 我为NET狂~群福利:逆天书库
- C#/VB.NET 合并PDF页面
- 三极管电路限流电阻如何选择
- Liberal Arts:丧后即燃
- LintCode 661. 把二叉搜索树转化成更大的树
- 杭电AI学霸班:考研上岸3清北8浙大,还没毕业年薪拿百万
- linux基础(五)----linux命令系统学习----系统管理命令
- PostgreSQL不等于判断
- 4296. 【NOIP2015模拟11.2】有趣的有趣的家庭菜园
- 百度提前批-面试凉凉之-梯度下降
- Java中String转为Long
- 剑魂之刃登录显示服务器异常,剑魂之刃8月1日服务器维护 维护补偿公告
热门文章
- Quartz在QRTZ_JOB_DETAILS表中存储了什么
- CX水晶易表连接数据库的方法
- java实现蒲丰投针求,用程序模拟蒲丰投针试验
- [STL]priority_queue多种方式自定义排序
- python壁纸4k_Python爬虫练习:爬取高清4K桌面壁纸
- LIN总线、CAN总线、FlexRay总线和MOST总线
- html问号字符串,问号html
- 整体大于部分_康托尔集合论:无穷集合中,整体不一定大于部分
- 没基础,也可一文看懂 python 中的 csv 模块
- CAD中XCLIP命令的使用及图块和参照编辑