《程序静态分析》 - 南京大学 李樾、谭添

课后作业

<aside> ⚠️ 本文只简单记录作业求解的过程中有趣的地方,以及一些结果代码。不会针对 Tai-e 代码结构和特点进行详细分析。

</aside>

Environment setup and background

Code Repository

git clone [<https://github.com/pascal-lab/Tai-e-assignments>](<https://github.com/pascal-lab/Tai-e-assignments>)

Debug with VSCode

官方教程推荐使用 IntelliJ IDEA 来完成实验,限于我没有 Java 开发经验,且在 VScode 调试基于 Gradle 构建的 Java 代码同样方便。在此仅基于 ubuntu + VSCode 搭建调试环境。

  1. 自行安装 Java 17 和 Gradle 7.4+

    进入各个 Assignment 文件夹后,基于命令行的 Gradle 构建命令:

    安装 Gradle 后的命令行工具是 gradle,下述命令 gradlew 是 Gradle Wrapper,似乎作用是自动下载指定版本的 Gradle,确保所有用户使用相同版本。gradlew 在各个文件夹根目录,是一个 shell 脚本。

  2. 安装 Gradle for Java VSCode 扩展

    安装扩展后即可通过 Gradle Tab 下的 Tasks/application/run 来调试 Assignment.main,通过 Tasks/verification/test 来调试样例。

作业 1:活跃变量分析和迭代求解器

Alg

算法详见课程

Untitled