本仓库的使命已完成,请移步官方Tai-e教程:
仓库:https://github.com/pascal-lab/Tai-e-assignments
官方网站:http://tai-e.pascal-lab.net
知乎帖子:https://zhuanlan.zhihu.com/p/488957195
本仓库是早期作业的参考实现...
مرحبًا بك لإضافة مجموعة تطوير أدوات تحليل البرنامج (انتهاء صلاحية رمز الاستجابة السريعة ، راجع العدد رقم 4)
https://canliture.github.io/imgs/group.jpg
هذا هو التنفيذ غير الرسمي للواجب المنزلي التجريبي لدورة تحليل البرمجيات لجامعة نانجينغ
ملاحظة: الخيزران ليس مفتوح المصدر للدورات الدراسية في جامعة نانجينغ ، فلماذا لديها هذا المستودع؟
- أعطيت دورة PDF لواجبي المنزلي ، وتم منح واجهة برمجة التطبيقات أيضًا ؛ وفقًا لواجهة برمجة التطبيقات (API) ، يمكنني أن أفعل ذلك بشكل أساسي بناءً على فهمي.
الوضع الحالي
- لم تخضع الكثير من الاختبارات حتى الآن (على الأقل ، الأمثلة في المحاضرة على ما يرام)
- المهمة الخامسة هي مجرد وقت قصير لملء الفراغات من آخر رمز OBJ/النوع الحساس
- نأمل في رفع الخلل/القضية
最近挺忙的,先停更1/2个月吧.相信这份代码仍然能够给人一些帮助.(2021-11-08)
بيئة
- جافا 8
- السخام 4.2.1
- فكرة Intellij
- Maven Build/Junit Test
وثيقة
- DOCS/ORG هو الموضوع الأصلي لدورة جامعة نانيانغ.
- المستندات/السخام هو مادة مرجعية السخام
- SRC/MAIN/JAVA/COM/CANLUIDAN
شفرة
- 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/*
تصحيح الأخطاء والجري
عند استخدام فكرة Intellij ، حدد الدليل SRC/Test/TestCodes/ASS Test sources root
- سيؤدي ذلك تلقائيًا إلى تجميع الرمز الذي تم اختباره إلى دليل الفئات الهدف/الاختبار أثناء تصحيح الأخطاء/التشغيل ، مما يسهل الاختبار
خذ اختبار التصحيح/التشغيل الخاص بـ ASS1 كمثال
- ابحث عن com.canliture.sot.ass1.intraconstantPropagationTest فئة وقم بإجراء اختبار Junit
- كل فئة اختبار لها طريقة getTransformer () ، وطريقة التحويل الداخلي للمحول الذي تم إرجاعه هي مدخل التحليل.
كيفية إجراء الاختبار بأكمله ، يمكنك التحقق من فئات interbasetest و intrabasetest ، هنا تغلف إطار اختبار صغير
- @قبل تكوين السخام قبل الاختبار
- Test تنفيذ رمز الاختبار
- efter إخراج Jimple IR إلى دليل SootOutput
