本仓库的使命已完成,请移步官方Tai-e教程:
仓库:https://github.com/pascal-lab/Tai-e-assignments
官方网站:http://tai-e.pascal-lab.net
知乎帖子:https://zhuanlan.zhihu.com/p/488957195
本仓库是早期作业的参考实现...
ยินดีต้อนรับสู่การเพิ่มกลุ่มพัฒนาเครื่องมือวิเคราะห์โปรแกรม (หมดอายุรหัส QR อ้างถึงปัญหา #4)
https://canliture.github.io/imgs/group.jpg
นี่คือการใช้งานอย่างไม่เป็นทางการของการบ้านทดลองของหลักสูตรการวิเคราะห์ซอฟต์แวร์ของมหาวิทยาลัยหนานจิง
หมายเหตุ: ไม้ไผ่ไม่ใช่โอเพ่นซอร์สสำหรับการเรียนการสอนที่มหาวิทยาลัยหนานจิงดังนั้นทำไมจึงมีคลังสินค้านี้?
- ฉันให้หลักสูตร PDF สำหรับการบ้านของฉันและ API ก็ได้รับ; จากข้อมูลของ API ฉันสามารถทำได้ตามความเข้าใจของฉันเอง
สถานะปัจจุบัน
- ยังไม่ผ่านการทดสอบจำนวนมาก (อย่างน้อยตัวอย่างในการบรรยายก็โอเค)
- การมอบหมายที่ห้าเป็นเพียงเวลาสั้น ๆ ในการกรอกข้อมูลในช่องว่างของรหัส OBJ/ชนิดที่ไวต่อการพิมพ์ครั้งสุดท้าย
- หวังว่าจะเพิ่มข้อผิดพลาด/ปัญหา
最近挺忙的,先停更1/2个月吧.相信这份代码仍然能够给人一些帮助.(2021-11-08)
สิ่งแวดล้อม
- Java 8
- เขม่า 4.2.1
- Intellij Idea
- การทดสอบ maven build/junit
เอกสาร
- DOCS/org เป็นหัวข้อต้นฉบับของหลักสูตร Nanyang University
- เอกสาร/เขม่าเป็นวัสดุอ้างอิงเขม่า
- src/main/java/com/canliture/เขม่า/งานในแต่ละไดเรกทอรีย่อยมี readme เป็นคำอธิบายง่าย ๆ ของงาน
รหัส
- com.canliture.soot.ass1
- การใช้งานรหัสสำหรับงานแรก
- การแพร่กระจายอย่างต่อเนื่อง
- com.canliture.soot.ass2
- การใช้รหัสสำหรับงานที่สอง
- การแพร่กระจายอย่างต่อเนื่อง + การตรวจจับกิจกรรมที่ใช้กับการกำจัดรหัสตาย
- com.canliture.soot.ass3
- การใช้รหัสสำหรับงานที่สาม
- Cha ใช้เพื่อสร้างกราฟการโทร
- com.canliture.soot.ass4
- การใช้งานรหัสของงานที่สี่
- การวิเคราะห์ตัวชี้แบบไม่ไวต่อการไหล
- com.canliture.soot.ass5
- การใช้งานรหัสของงานที่ห้า
- การวิเคราะห์ตัวชี้ที่ไวต่อการไหล
ทดสอบ
รหัสเพื่อเรียกใช้การทดสอบหน่วย: SRC/TEST/JAVA/DIRECTORY
- com.canliture.soot.ass {n}
รหัสทดสอบ: SRC/Test/TestCodes/Ass/*
การดีบักและวิ่ง
เมื่อใช้ Idea Intellij ให้ทำเครื่องหมายไดเรกทอรี SRC/Test/TestCodes/Ass เป็น Test sources root
- สิ่งนี้จะรวบรวมรหัสที่ทดสอบโดยอัตโนมัติไปยังไดเรกทอรีเป้าหมาย/การทดสอบคลาสระหว่างการดีบัก/รันทำให้ง่ายต่อการทดสอบ
ใช้การทดสอบการดีบัก/เรียกใช้ของ ASS1 เป็นตัวอย่าง
- ค้นหา com.canliture.soot.ass1.intraconstantpropagationtest คลาสและเรียกใช้การทดสอบ Junit
- แต่ละคลาสทดสอบมีวิธีการ getTransformer () และวิธีการ internalTransform ของหม้อแปลงที่ส่งคืนคือทางเข้าสู่การวิเคราะห์
วิธีเรียกใช้การทดสอบทั้งหมดคุณสามารถตรวจสอบคลาส interbasetest และ intrabasetest ได้ที่นี่ห่อหุ้มกรอบการทดสอบขนาดเล็ก
- @Before กำหนดค่าเขม่าก่อนการทดสอบ
- @test รหัสทดสอบดำเนินการ
- @after เอาต์พุต jimple ir ไปยังไดเรกทอรี sootoutput
