Tai-e 目录是一个示例指针分析算法,基于太阿框架在 Tai-e/src/main/java/pku 目录下实现了 Trivial(输出全集)的指针分析。你需要实现一个完整的指针分析。我们保证对于所有测试用例,提供的 Trivial 实现都能输出 Sound 的结果,不会超时或崩溃。
judge 目录是评测机源码,可用于在本地测试自己的作业。judge/global/tests 下提供了两个公开的测试样例,对这两个样例给出精确的结果即可获得 60 分。
请实现一个指针分析算法。如果你选择基于太阿实现,请参考之前课上的演示,生成一个完整(无依赖)的 JAR 包,把分析结果输出到 result.txt。
你也可以选择基于其他的框架实现,此时请把所有文件打包成 ZIP,其中包括一个 run.sh 脚本用来运行你的指针分析算法。详见网站说明(https://sa2023-lab-1.xmcp.ltd/submit_hw)和评测机源码。
除了提供的两个公开测试用例之外,你可以在 https://github.com/secure-software-engineering/PointerBench/ 找到更多的测试用例。它们未必能代表评测实际使用的用例,但也可以帮助测试自己的算法。
另外请写一份不超过两页的报告,描述算法的主要设计思想和小组内分工。
每个组还可以贡献一个测试用例,用来凸显本组算法的亮点。详见网站说明(https://sa2023-lab-1.xmcp.ltd/submit_donation)。
- **指针分析工具(.jar 或 .zip):**请用自己小组的密码登录网站 https://sa2023-lab-1.xmcp.ltd/,点击【提交作业】,并在线评测。出现在排行榜上即表示提交成功。
- **测试用例:**请登录网站,点击【贡献测试用例】,并在线评测。出现在排行榜上即表示提交成功。
- **代码和报告:**将代码和报告打包发送到课程邮箱,标题为 “Lab1-” 加组长学号,(如
Lab1-2200012345)。