南京大学《软件分析》1--Introduction
开始学习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相关推荐
- 南京大学软件分析第九节——Pointer Analysis - Foundations I
视频:南京大学<软件分析>课程09(Pointer Analysis - Foundations I)哔哩哔哩_bilibili 课程主页:Static Program Analysis ...
- [南京大学]-[软件分析]课程学习笔记(一)-introduction
文章目录 南京大学 Static program analysis introduction 1. program language and static analysis 2. why we lea ...
- 南京大学《软件分析》课程课后作业(非Bamboo)
南京大学软件分析课程作业参考实现,非官方代码. https://github.com/canliture/nju-software-analysis-homework 欢迎提bug/star/pr 文 ...
- 【软件分析】软件分析、设计与建模迭代式详解
软件分析.设计与建模迭代式详解 1.introduction 1.1 OOA/D 1.2 Iterative, Evolutionary, and Agile 2.Case Study and Req ...
- 【静态分析】【系列1-南大软件分析】1.0 导论学习笔记
文章目录 印象回顾 二刷复习 主要内容 课程说明 本节划重点 个人理解重点和扩展 理解并记忆内容 扩展信息:南大硕士招生信息 印象回顾 昨天看了南大<软件分析>的第一节导论,回忆一下还记得 ...
- 软件分析与设计:分析什么?如何设计?
简介:分析与设计这两个词我们平时经常听到,也经常讲,那么分析与设计的本质究竟是什么呢?到底要分析什么?又到底要怎样去设计?这3个问题如果平时没有一些积累,突然被问到这些,一时也会显得不知所措.接下面在 ...
- 基于软件分析的智能化开发新型服务与技术
摘要:从云服务厂商的角度来给大家介绍一下,当前业界围绕该领域要做哪些事情. 本文分享自华为云社区<基于软件分析的智能化开发新型服务与技术>,作者:敏捷的小智 . 本文以技术文章的方式回顾梁 ...
- 软件的接口设计图_面向服务架构(SOA)的汽车软件分析和设计
--后台回复"资料",领取特斯拉专利技术解析报告-- 文章转自:联合电子 本文将先重温下SOA架构的核心要素与优势,并重点讨论话题"面向服务架构(SOA)的汽车软件分析和 ...
- [软件逆向]实战Mac系统下的软件分析+Mac QQ和微信的防撤回
0x00 一点废话 最近因为Mac软件收费的比较多,所以买了几款正版软件,但是有的软件卖的有点贵,买了感觉不值,不买吧,又觉得不方便,用别人的吧,又怕不安全.于是我就买了正版的Hopper Di ...
最新文章
- android都图片mat_Android内存泄露整理
- Beyond Compare 出现“这个许可证密钥已被撤销”的解决办法(不会删除记录)
- pytorch学习笔记(1):开始一个简单的分类器
- Error opening data file Tesseract-OCR\tessdata/eng.traineddata问题解决
- ArcGIS Engine开发基础总结(一)
- [iOS]UIButton内、外边距设置
- 【保姆级手写理解——灰色预测理论以及python实现】
- YYText的介绍和使用
- win7局域网共享设置_win7系统打印机共享设置(详细图文步骤)
- VTM代码学习(1)CU划分
- 如何卸载Vmware Workstation虚拟机
- 关于MSP430单片机程序烧写的介绍
- 电脑桌面不显示此电脑或是计算机,电脑怎么显示出此电脑?此电脑显示的设置方法...
- bat批处理静默自动安装证书
- Vue3通透教程【十二】TS类型声明优势
- 专家鼓励住房、汽车等大宗商品消费
- 计算机技术属于全日制工程硕士吗,计算机技术全日制硕士培养方案
- 吴思《潜规则》:错把任性当志气
- 软件测试思想者 - “中华公网共图强”观后感
- MySQL快速生成大量测试数据(100万、1000万、1亿)