Statik kodni tahlil qilish-o'rganilayotgan dasturlarning haqiqiy bajarilishisiz ishlab chiqarilgan dasturiy ta'minotni tahlil qilish. Ko'pgina hollarda, tahlil manba kodining ba'zi versiyalari ustida amalga oshiriladi.
Statik kod tahlili yordamga keladi
Plyus Minuslar Kodni tekshirishni boshlashdan oldin nuqsonlarni aniqlaydi
Analizator charchamaydi va istalgan vaqtda ishlashga tayyor.
Bunday patterna (naqsh) haqida bilmasdan ham xatolarni topishingiz mumkin.
Ko'rib chiqish paytida siz sezish juda qiyin bo'lgan xatolarni topishingiz mumkin
Yuqori darajadagi xatolarni aniqlab bo'lmaydi. Noto'g'ri ishga tushirish
10
Ma'lumotlar oqimini tahlil qilish (data-flow analysis)
Ramziy ijro (symbolic execution)
Statik analizator arxitekturasi haqida bir oz
Deyarli barcha statik analizatorlar qandaydir tarzda kompilyatorlar printsipi asosida qurilgan, ya'ni ularning ishlarida manba kodini o'zgartirish bosqichlari mavjud — kompilyator bajaradigan qadamlar bilan bir xil. Hammasi leksik tahlildan boshlanadi (tokenizatsiya), bu dastur matnini kirish uchun yuqori darajadagi tilda oladi va chiqish uchun leksemalar oqimini beradi(so'zlardagi harflarni guruhlash kabi). Bundan tashqari, olingan leksemalar oqimi kirish joyiga tahlil qiluvchi analizatorga (tahlil qilish) uzatiladi, u til konstruktsiyalarini tahlil qiladi va tahlil natijasini semantik analizatorga (sintaksis daraxti) uzatadi, u o'z ishi natijasida ichki tasvirni yaratish uchun tayyorgarlikni amalga oshiradi. Ushbu ichki ko'rinish har bir statik analizatorning o'ziga xos xususiyati. Analizatorning samaradorligi uning qanchalik muvaffaqiyatli bo'lishiga bog'liq.
1) leksik analizator
2) Sintaktik analizator
Masalan, quyidagi satrning manba kodi
quyidagi token oqimiga aylantirilishi mumkin:
uning tuzilishini chiziqli va ierarxik aylantirish bilan ifodani tahlil qilish misoli