静态分析:datalog

    Motivation

    • 命令式语言:每一步都写命令,告诉计算机怎么做,如 C++
    • 声明式语言:告诉计算机要做什么,更加精炼,简单,如 SQL 语言
    • 如果要以命令式语言来书写指针分析,需要考虑非常多细节,容易出错
    • 但是以声明式语言来书写指针分析就很简洁,易读...
    Read More

    数据流分析-原理

    Iterative Algorithm, Another View(换个视角看迭代)

    前向数据流分析过程

    • 给定一个有 k 个节点的 CFG(程序),迭代算法会在每次迭代中为每个节点 n 更新 OUT[n]
    • 假设数据流分析中的...
    Read More

    数据流分析-应用

    Overview of Data Flow Analysis(总览数据流分析)

    一句话:不同的数据流分析技术有不同的数据抽象和不同的数据流安全近似策略(即不同的转换函数和不同的控制流处理)

    Read More

    上下文敏感指针分析

    Introduction

    上下文不敏感指针分析(CI)

    • 在动态执行中,一个方法可能在不同的调用上下文中被多次调用
    • 在不同的调用上下文下,方法的变量可能指向不同的对象
    • 在 CI 指针分析中,不同上下文下的对象被混合并传...
    Read More

    二叉树

    2024-05-16

    二叉树理论基础

    二叉树种类

    满二叉树:如果一棵二叉树只有度为 0 的结点和度为 2 的结点,并且度为 0 的结点在同一层上,则这棵二叉树为满二叉树。深度为 k,有 2^k-1 个节点的二叉树。

    Read More

    回溯算法

    2024-05-16

    回溯算法理论基础

    什么是回溯法

    回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数

    回溯法的效率

    虽然回...

    Read More

    额外题目

    2024-05-16

    1365.有多少小于当前数字的数字

    给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的...
          
    Read More
    View: User: