程序分析介绍

本贴最后更新于 2022 天前,其中的信息可能已经渤澥桑田

原文链接 程序分析介绍

课程背景

随着用户对软件的需求越来越高,大多数程序变得越来越大,越来越复杂,越来越难分析。对于一般的软件,会存在以下几个问题:

对于研究者来说,程序也是数据,我们可以使用工具来对其进行:

  • 分析
  • 转换
  • 合成

综上,程序就像普通的数据一样,只是数据一种存在的形式。对程序的表示,分析,转换,合成等技术就叫做程序分析技术(program analysis)。

课程目标

使用程序分析技术解决实际应用场景中出现的问题,程序分析的任务包括:

  • 剖析(Profiling)
    Speed, Potential Concurrency, Memory.

  • 测试(Testing)
    More effective tests. Bridge testing & verification.

  • 调试(Debugging)
    Explaining or locating the causes of bugs.

  • 并发(Concurrency)
    How to explain race conditions?
    Atomicity violations?
    How to find 'Heisenbugs'?

  • 安全(Security)
    How to find vulnerabilities before attackers?

  • 验证(Verification)
    How to prove the absence of behaviors?

指导性问题

  • These problems are impossible to precisely solve in general. What are the compromises?

    • What cornercases make them fail?
    • Why do these cornercases exist?
  • How do authors present their work? Why?

    • What is highlighted? What is hidden?
    • How is it evaluated?

课程结构

>> 回到课程主目录

  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    567 引用 • 3532 回帖
  • 软件工程
    29 引用 • 81 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...