本仓库的使命已完成,请移步官方Tai-e教程:
仓库:https://github.com/pascal-lab/Tai-e-assignments
官方网站:http://tai-e.pascal-lab.net
知乎帖子:https://zhuanlan.zhihu.com/p/488957195
本仓库是早期作业的参考实现...
Bienvenue pour ajouter le groupe de développement d'outils d'analyse du programme (le code QR expire, reportez-vous au numéro 4)
https://canliture.github.io/imgs/group.jpg
Ceci est la mise en œuvre non officielle des devoirs expérimentaux du cours d'analyse logicielle de l'Université Nanjing
Remarque: Bamboo n'est pas open source pour les cours à l'Université Nanjing, alors pourquoi a-t-il cet entrepôt?
- J'ai donné le cours PDF pour mes devoirs, et l'API a également été donné; Selon l'API, je pouvais essentiellement le faire en fonction de ma propre compréhension.
État actuel
- Je n'ai pas encore subi beaucoup de tests (au moins, les exemples de conférence sont OK)
- La cinquième affectation est juste peu de temps pour remplir les blancs du dernier code OBJ / type sensible
- J'espère élever un bug / problème
最近挺忙的,先停更1/2个月吧.相信这份代码仍然能够给人一些帮助.(2021-11-08)
environnement
- Java 8
- Soot 4.2.1
- Idée intellij
- Maven Build / Junit Test
document
- Docs / Org est le sujet original du cours de l'Université de Nanyang.
- Docs / Soot est un matériau de référence de suie
- src / main / java / com / canliture / soot / Les travaux de chaque sous-répertoire ont un réadme comme une description simple du travail
Code
- com.canliture.soot.ass1
- Implémentation du code pour le premier emploi
- Propagation constante
- com.canliture.soot.ass2
- Implémentation de code pour le deuxième emploi
- Propagation constante + détection d'activité appliquée à l'élimination du code mort
- com.canliture.soot.ass3
- Implémentation du code pour le troisième emploi
- CHA est utilisé pour construire des graphiques d'appels
- com.canliture.soot.ass4
- Implémentation du code du quatrième emploi
- Analyse du pointeur insensible au flux
- com.canliture.soot.ass5
- Implémentation du code du cinquième emploi
- Analyse du pointeur sensible au flux
test
Code pour exécuter des tests unitaires: SRC / Test / Java / répertoire
- com.canliture.soot.ass {n}
Code testé: SRC / Test / Testcodes / ASS / *
Débogage et course
Lorsque vous utilisez Intellij Idea, marquez le répertoire SRC / Test / Testcodes / Ass comme Test sources root
- Cela compilera automatiquement le code testé dans le répertoire cible / test des classes pendant le débogage / l'exécution, ce qui facilite le test
Prenez le test de débogage / d'exécution d'Ass1 comme exemple
- Trouvez la classe com.canliture.soot.ass1.intraconstantPropagationtest et exécutez le test JUnit
- Chaque classe de test a une méthode getTransformrer (), et la méthode InternalTransform du transformateur retourné est l'entrée de l'analyse.
Comment exécuter l'ensemble du test, vous pouvez consulter les classes interbasettes et intrabasetest, encapsuler ici un petit cadre de test
- @Before Configurez Soot avant les tests
- @Test Exécuter le code de test
- @After Sortie Jimple Ir to SootOutput Directory
