代码转换成图

graph:通常是控制流图(CFG)

  • 节点覆盖:执行每个语句
  • 边覆盖:执行每个分支
  • 循环:循环结构,如for循环、while循环等。

数据流覆盖:增加CFG

  • defs是为变量赋值的语句
  • uses是使用变量的语句

控制流图

if Statement



Loops



switch

try-catch

数据流图

  • def:一个值存储在内存中
  1. x出现在赋值的左侧(x=44;)

  2. x是调用中的实际参数,该方法更改其值

  3. x是方法的形式参数(方法启动时的隐式定义)

  4. x是程序的输入

  • use:访问变量的值
  1. x出现在赋值的右侧

  2. x出现在条件测试中

  3. x是方法的实际参数

  4. x是程序的输出

  5. x是return语句中方法的输出

如果def和use出现在同一个节点上,def发生在use之后并且该节点处于Loop中,那么def和use是DU-pair

Example



源代码转换成图-控制流图、数据流图相关推荐

  1. python 代码转程序_如何用pyinstaller把自己编写的python源代码转换成可执行程序?...

    昨天慢步熬夜写了一篇干货满满的文章,不知道什么原因,文章并未被推荐. 今天再来换个方式写一次. 把自己编写的python源代码转换成可执行程序 笔者继续用自编的<货币兑换程序3.0>为例. ...

  2. python将源代码转换成在html可显示的格式,Python实现将HTML转换成doc格式文件的方法示例...

    Python实现将HTML转换成doc格式文件的方法示例 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Python实现将HTML转换成doc格式文件的方法示例. ...

  3. iOS逆向:【代码混淆】1、基于编译器混淆静态库(StaticLib)2、字符串加密:使用clang-c接口将源代码转换成抽象语法树,并对抽象语法树进行遍历和分析,分析代码中的字符串,并进行加密处理。

    文章目录 前言 I .LLVM编译一个源文件的过程 1.1.预处理 1.2.将符号化后的内容转化为一棵解析树 (parse tree) 1.3.将 AST 转换为更低级的中间码 (LLVM IR) 1 ...

  4. python list转换成array_一文掌握Python【不定期更新】

    目录 一.Numpy 1 基本操作 2 随机数 3 打乱训练数据 4 得到元素的最值 5 拼接数组 6 得到函数的信息 7 得到累乘即各项相乘的结果 8 判断一个数是否在数组中 9 数组的变换 10 ...

  5. python文件转换成jar包_Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 今天的这篇文章,聊一个轩辕君之前工作中遇到的需求:如何在Jav ...

  6. 对Python控制流图生成器的一些探索

    概要 本篇文章会介绍为什么需要控制流图,现存的一些开源实现和自己写的实现,以及实现中遇到的问题和解决方案. 为什么需要控制流图 控制流图清晰地表示了程序执行时的可能路径.它有很多应用,比如数据流分析. ...

  7. 【Python】递归绘制科赫曲线及科赫雪花及转换成可执行文件打包

    科赫曲线 ----------- 绘制科赫曲线 import turtle def koch(size, n):if n == 0:turtle.fd(size)else:for angle in [ ...

  8. DateTool的简单使用(我是如何将绝对时间转换成相对时间的)

    一.一个使用频繁.简单易用的第三方框架.dateTool.上代码:我的需求是将图一.转换成图二. 图一 图二 二.图一中的created_at是后台的数据.前端显示为 "几天前.几分钟前.几 ...

  9. 基于Flutter开发网站转换成APP源代码 网站生成APP源代码带控制端

    这是一款输入域名直接把网站转换成APP的平台源码,App的开发语言使用Flutter,控制端(平台端)的开发语言是PHP,且附带有App开发工具,开发工具使用的是AndroidStudio. 部署本套 ...

  10. 文字图片转换成html,将图片转换成HTML格式的文字图程序源代码

    将图片转换成HTML格式的文字图程序源代码 将图片转换成HTML格式的文字图程序源代码.txt喜欢我这是革命需要,知道不?! 你不会叠衣服一边呆着去!以后我来叠! 我一定要给你幸福,谁也别想拦着. ■ ...

最新文章

  1. JAVA时间日期处理类,主要用来遍历两个日期之间的每一天。
  2. Ubuntu 下搭建 NFS 服务
  3. [css] 你有使用过css的writing-mode属性吗?说说它有哪些应用场景?
  4. centos7如何安装cloud-init
  5. CentOS7.0下NTP时间同步服务
  6. 软件工程师面试学习指南
  7. 004商城项目:ssm框架的整合之后的调试
  8. 寻找自己的道路——与技术同胞共勉 一种划分为七个阶段的道路:自信=意志=布局=切入点=团队=渠道=产品...
  9. 我为NET狂~群福利:逆天书库
  10. C#/VB.NET 合并PDF页面
  11. 三极管电路限流电阻如何选择
  12. Liberal Arts:丧后即燃
  13. LintCode 661. 把二叉搜索树转化成更大的树
  14. 杭电AI学霸班:考研上岸3清北8浙大,还没毕业年薪拿百万
  15. linux基础(五)----linux命令系统学习----系统管理命令
  16. PostgreSQL不等于判断
  17. 4296. 【NOIP2015模拟11.2】有趣的有趣的家庭菜园
  18. 百度提前批-面试凉凉之-梯度下降
  19. Java中String转为Long
  20. 剑魂之刃登录显示服务器异常,剑魂之刃8月1日服务器维护 维护补偿公告

热门文章

  1. Quartz在QRTZ_JOB_DETAILS表中存储了什么
  2. CX水晶易表连接数据库的方法
  3. java实现蒲丰投针求,用程序模拟蒲丰投针试验
  4. [STL]priority_queue多种方式自定义排序
  5. python壁纸4k_Python爬虫练习:爬取高清4K桌面壁纸
  6. LIN总线、CAN总线、FlexRay总线和MOST总线
  7. html问号字符串,问号html
  8. 整体大于部分_康托尔集合论:无穷集合中,整体不一定大于部分
  9. 没基础,也可一文看懂 python 中的 csv 模块
  10. CAD中XCLIP命令的使用及图块和参照编辑