本仓库的使命已完成,请移步官方Tai-e教程:
仓库:https://github.com/pascal-lab/Tai-e-assignments
官方网站:http://tai-e.pascal-lab.net
知乎帖子:https://zhuanlan.zhihu.com/p/488957195
本仓库是早期作业的参考实现...
Selamat Datang untuk Menambahkan Grup Pengembangan Alat Analisis Program (Kode QR berakhir, lihat Edisi #4)
https://canliture.github.io/imgs/group.jpg
Ini adalah implementasi tidak resmi dari pekerjaan rumah eksperimental dari kursus analisis perangkat lunak dari Universitas Nanjing
Catatan: Bambu bukan open source untuk kursus di Universitas Nanjing, jadi mengapa memiliki gudang ini?
- Saya memberikan kursus PDF untuk pekerjaan rumah saya, dan API juga diberikan; Menurut API, pada dasarnya saya bisa melakukannya berdasarkan pemahaman saya sendiri.
Status saat ini
- Belum menjalani banyak pengujian (setidaknya, contoh dalam kuliah baik -baik saja)
- Penugasan Kelima hanyalah waktu yang singkat untuk mengisi kekosongan kode OBJ/tipe-sensitif terakhir
- Berharap untuk menaikkan bug/masalah
最近挺忙的,先停更1/2个月吧.相信这份代码仍然能够给人一些帮助.(2021-11-08)
lingkungan
- Java 8
- Soot 4.2.1
- Ide Intellij
- Tes Maven Build/Junit
dokumen
- Docs/org adalah topik asli dari kursus Universitas Nanyang.
- Docs/Soot adalah materi referensi jelaga
- src/main/java/com/canliture/jelaga/pekerjaan di setiap subdirektori memiliki readme sebagai deskripsi sederhana dari pekerjaan tersebut
Kode
- com.canliture.soot.ass1
- Implementasi kode untuk pekerjaan pertama
- Perambatan konstan
- com.canliture.soot.ass2
- Implementasi kode untuk pekerjaan kedua
- Propagasi Konstan + Deteksi Kegiatan Diterapkan pada Penghapusan Kode Mati
- com.canliture.soot.ass3
- Implementasi kode untuk pekerjaan ketiga
- Cha digunakan untuk membangun grafik panggilan
- com.canliture.soot.ass4
- Implementasi kode dari pekerjaan keempat
- Analisis penunjuk yang tidak sensitif
- com.canliture.soot.ass5
- Implementasi Kode dari Pekerjaan Kelima
- Analisis pointer yang sensitif terhadap aliran
tes
Kode untuk menjalankan tes unit: src/test/java/direktori
- com.canliture.soot.ass {n}
Kode Tes: SRC/Test/TestCode/Ass/*
Debugging dan berlari
Saat menggunakan ide intellij, tandai direktori src/test/testcodes/ass sebagai Test sources root
- Ini akan secara otomatis menyusun kode yang diuji ke direktori target/kelas uji selama debugging/berjalan, membuatnya lebih mudah untuk diuji
Ambil tes debugging/running Ass1 sebagai contoh
- Temukan kelas com.canliture.soot.ass1.intraconstantpropagationTest dan jalankan tes junit
- Setiap kelas tes memiliki metode getTransformer (), dan metode internalTransform dari transformator yang dikembalikan adalah pintu masuk ke analisis.
Cara menjalankan seluruh tes, Anda dapat memeriksa kelas Interbasetest dan Intrabasetest, di sini merangkum kerangka tes kecil
- @Before Konfigurasikan jelaga sebelum pengujian
- @TEST Jalankan kode uji
- @Output output Jimple IR ke direktori sootoutput
