开始学习Static Program Analysis,跟着b站南京大学的《软件分析》开始,原来老师(有点帅)是西工大硕士毕业的呀。第一节课是Introduction。

背景

Program analysis是Programming Languages应用的一个分支,十分重要。近十年来,language cores很少有变化,由于需求,语用环境变了(语言没变,语言写的程序更大、更复杂)。保证大型、复杂软件的可靠性、安全性和其它性能,需要静态分析,静态分析就是程序运行之前,在编译时刻完成所有安全和可靠性的检验。

一些概念

1.Perfect static analysis(完美的静态分析)是要同时满足Sound&Complete的,Sound包含Truth,Truth包含Complete。
2.Useful static analysis,要么妥协soundness,即会产生漏报(false negatives);要么妥协completeness,即会产生误报(false positives)。
3.大多数情况下,会选择妥协completeness,可以产生误报,但是要保证soundness。静态分析就是要在保证soundness的前提下,在分析的精度和速度上做一个有效的平衡。
4.从技术上讲,静态分析用2个词概括:Abstraction抽象和Over-approximation近似(Transfer functions+Control flows)。

  • Abstraction即抽象,将具体域值转为抽象域值。
  • Transfer functions即转换规则,针对程序上每个语句给抽象值作转换;根据分析目标和程序当中每个statement的语义(semantics)来设计转换规则。补充:top是unknown,bottom是undefined。
  • Control Flows即控制流,flow merging是一种近似的方式,后面补充。

南京大学《软件分析》1--Introduction相关推荐

  1. 南京大学软件分析第九节——Pointer Analysis - Foundations I

    视频:南京大学<软件分析>课程09(Pointer Analysis - Foundations I)哔哩哔哩_bilibili 课程主页:Static Program Analysis ...

  2. [南京大学]-[软件分析]课程学习笔记(一)-introduction

    文章目录 南京大学 Static program analysis introduction 1. program language and static analysis 2. why we lea ...

  3. 南京大学《软件分析》课程课后作业(非Bamboo)

    南京大学软件分析课程作业参考实现,非官方代码. https://github.com/canliture/nju-software-analysis-homework 欢迎提bug/star/pr 文 ...

  4. 【软件分析】软件分析、设计与建模迭代式详解

    软件分析.设计与建模迭代式详解 1.introduction 1.1 OOA/D 1.2 Iterative, Evolutionary, and Agile 2.Case Study and Req ...

  5. 【静态分析】【系列1-南大软件分析】1.0 导论学习笔记

    文章目录 印象回顾 二刷复习 主要内容 课程说明 本节划重点 个人理解重点和扩展 理解并记忆内容 扩展信息:南大硕士招生信息 印象回顾 昨天看了南大<软件分析>的第一节导论,回忆一下还记得 ...

  6. 软件分析与设计:分析什么?如何设计?

    简介:分析与设计这两个词我们平时经常听到,也经常讲,那么分析与设计的本质究竟是什么呢?到底要分析什么?又到底要怎样去设计?这3个问题如果平时没有一些积累,突然被问到这些,一时也会显得不知所措.接下面在 ...

  7. 基于软件分析的智能化开发新型服务与技术

    摘要:从云服务厂商的角度来给大家介绍一下,当前业界围绕该领域要做哪些事情. 本文分享自华为云社区<基于软件分析的智能化开发新型服务与技术>,作者:敏捷的小智 . 本文以技术文章的方式回顾梁 ...

  8. 软件的接口设计图_面向服务架构(SOA)的汽车软件分析和设计

    --后台回复"资料",领取特斯拉专利技术解析报告-- 文章转自:联合电子 本文将先重温下SOA架构的核心要素与优势,并重点讨论话题"面向服务架构(SOA)的汽车软件分析和 ...

  9. [软件逆向]实战Mac系统下的软件分析+Mac QQ和微信的防撤回

      0x00  一点废话 最近因为Mac软件收费的比较多,所以买了几款正版软件,但是有的软件卖的有点贵,买了感觉不值,不买吧,又觉得不方便,用别人的吧,又怕不安全.于是我就买了正版的Hopper Di ...

最新文章

  1. android都图片mat_Android内存泄露整理
  2. Beyond Compare 出现“这个许可证密钥已被撤销”的解决办法(不会删除记录)
  3. pytorch学习笔记(1):开始一个简单的分类器
  4. Error opening data file Tesseract-OCR\tessdata/eng.traineddata问题解决
  5. ArcGIS Engine开发基础总结(一)
  6. [iOS]UIButton内、外边距设置
  7. 【保姆级手写理解——灰色预测理论以及python实现】
  8. YYText的介绍和使用
  9. win7局域网共享设置_win7系统打印机共享设置(详细图文步骤)
  10. VTM代码学习(1)CU划分
  11. 如何卸载Vmware Workstation虚拟机
  12. 关于MSP430单片机程序烧写的介绍
  13. 电脑桌面不显示此电脑或是计算机,电脑怎么显示出此电脑?此电脑显示的设置方法...
  14. bat批处理静默自动安装证书
  15. Vue3通透教程【十二】TS类型声明优势
  16. 专家鼓励住房、汽车等大宗商品消费
  17. 计算机技术属于全日制工程硕士吗,计算机技术全日制硕士培养方案
  18. 吴思《潜规则》:错把任性当志气
  19. 软件测试思想者 - “中华公网共图强”观后感
  20. MySQL快速生成大量测试数据(100万、1000万、1亿)

热门文章

  1. 共享终结者-ShareKiller
  2. 脸上长有黑痣(痦子)祛除和预防
  3. SDUT-3924 疯狂的bLue
  4. Linux Mint的常见设置修改
  5. 【行业研究】中国智能投顾行业
  6. 确定与不确定有限自动机DFA与NFA及子集法互相转换
  7. 二、为uniapp项目配置基于airbnb风格的Eslint代码检查规则
  8. C语言关键字 数据类型 格式符 修饰符 运算符一览
  9. 重庆邮电大学和重庆大学计算机学院,重庆拥有的这所实力派大学,具有很高的知名度,对此你了解多少...
  10. steam(wallpaperEngine)双屏,比较cool的桌面推荐