
إطار عمل تحليل ثابت سهل التعلم/الاستخدام لجافا وأندرويد
Tai-e (النطق: [ˈtaɪə:]) هو إطار عمل جديد لتحليل البرامج الثابتة للغة Java (يرجى الاطلاع على ورقة ISSTA 2023 للحصول على التفاصيل)، والذي يتميز بتصميمات "أفضل" مما لا شك فيه من كل من التصميمات الجديدة التي اقترحناها وتلك الموجودة في الأطر الكلاسيكية مثل Soot و WALA و Doop و SpotBugs. Tai-e سهل التعلم، سهل الاستخدام، فعال، وقابل للتوسع بشكل كبير، مما يسمح لك بتطوير تحليلات جديدة بسهولة فوقه.
حاليًا، يوفر Tai-e مكونات التحليل الرئيسية التالية (والمزيد من التحليلات قيد التطوير):
clone() غير الصحيحتم تطوير Tai-e بلغة Java، ويمكن تشغيله على أنظمة التشغيل الرئيسية بما في ذلك Windows و Linux و macOS.
كبادرة احترام للمطورين، نتوقع منك يرجى الاستشهاد بالورقة من ISSTA 2023 التي تصف إطار Tai-e في عملك البحثي:
Tian Tan and Yue Li. 2023. Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics. In Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA '23), July 17–21, 2023, Seattle, WA, USA (pdf, bibtex).
الطريقة الموصى بها هي تنزيل توزيعة ZIP من GitHub Releases. تحتوي التوزيعة على Tai-e، جميع التبعيات وقت التشغيل، التوثيق دون اتصال، ونصوص بدء التشغيل لنظامي Windows و Linux و macOS.
بدلاً من ذلك، يمكنك بناء أحدث إصدار من Tai-e بنفسك من الكود المصدري. يمكن القيام بذلك ببساطة عبر Gradle (تأكد من أن Java 17 (أو إصدار أعلى) متوفرة على نظامك):
./gradlew distZip
سيتم إنشاء توزيعة ZIP في tai-e/build/distributions/.
بعد استخراجها، قم بتشغيل Tai-e عبر نص بدء التشغيل:
# على Linux/macOS
./tai-e-<version>/bin/tai-e -h
# على Windows
.\tai-e-<version>\bin\tai-e.bat -h
من أجل التوافق مع الإصدارات القديمة والبرامج النصية، لا يزال Tai-e يوفر JAR شاملة قديمة:
./gradlew fatJar
java -jar build/tai-e-all-<version>.jar -h
تم تصميم Tai-e كأداة مستقلة، ولكن لديك أيضًا خيار تضمينه في مشروعك كاعتمادية. وهو متوفر في مستودعات Maven، مما يسمح لك بدمجه بسهولة في مشاريع Java الخاصة بك باستخدام أدوات البناء مثل Gradle و Maven. نحافظ على كل من الإصدارات المستقرة والأحدث من Tai-e، وفيما يلي الإحداثيات المقابلة بتنسيقات نصوص Gradle و Maven:
لـ Gradle:
dependencies {
implementation("net.pascal-lab:tai-e:0.5.4")
}
لـ Maven:
<dependencies>
<dependency>
<groupId>net.pascal-lab</groupId>
<artifactId>tai-e</artifactId>
<version>0.5.4</version>
</dependency>
</dependencies>
لـ Gradle:
repositories {
mavenCentral()
maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") }
}
dependencies {
implementation("net.pascal-lab:tai-e:0.5.5-SNAPSHOT")
}
لـ Maven:
<repositories>
<repository>
<id>snapshots</id>
<name>Sonatype snapshot server</name>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>net.pascal-lab</groupId>
<artifactId>tai-e</artifactId>
<version>0.5.5-SNAPSHOT</version>
</dependency>
</dependencies>
يمكنك استخدام هذه الإحداثيات في نصوص Gradle أو Maven الخاصة بك لتضمين الإصدار المطلوب من Tai-e في مشروعك.