Amaliy ish 1 Mavzu: Loyixaviy takliflar va jamoalar. Biznes ilovalarni ulashish buyicha misollar. Ishdan maqsad: topshiriq


Abstrakt sintaksis daraxtini tekshirish



Download 2,24 Mb.
bet52/89
Sana11.04.2022
Hajmi2,24 Mb.
#542710
1   ...   48   49   50   51   52   53   54   55   ...   89
Bog'liq
Dasturiy injiniringga kirish

Abstrakt sintaksis daraxtini tekshirish- kodning asosiy sintaksisi va tuzilishini tekshirish.

  • Kod yo'lini tahlil qilish- kodni bajarish yo'lining ma'lum bir nuqtasida dastur ma'lumotlari ob'ektlarining holatini tushunishga bog'liq bo'lgan to'liqroq tahlil qilish.

    Abstrakt sintaksis daraxtlari


    Mavhum sintaksis daraxti oddiygina kompilyatordan oldingi bosqichlarda yaratilishi mumkin bo'lgan manba kodining daraxt strukturasi tasviridir. Daraxt kod strukturasining batafsil birma-bir parchalanishini o'z ichiga oladi, bu asboblarga anomal sintaksis nuqtalarini oddiy qidirishni amalga oshirish imkonini beradi.
    Nomlash konventsiyalari va funktsiya chaqiruvlari cheklovlari bilan bog'liq standartlarni tekshiradigan tekshiruvchini yaratish juda oson, masalan, xavfli kutubxonalarni tekshirish. AST tekshiruvlarini o'tkazishdan maqsad odatda kodning bajarilishi paytida qanday harakat qilishini bilmasdan kodning o'zidan qandaydir xulosa chiqarishdir.
    Ko'pgina vositalar turli tillar uchun AST asosidagi tekshiruvlarni taklif qiladi, jumladan Java uchun PMD kabi ochiq manbali vositalar. Ba'zi vositalar dasturlarni boshqarish uchun qiziq bo'lgan shartlarni aniqlash uchun X-yo'l grammatikasidan yoki X-yo'ldan olingan grammatikadan foydalanadi. Boshqa vositalar foydalanuvchilarga o'zlarini yaratishga imkon beradigan ilg'or mexanizmlarni taqdim etadi o'z dasturlari AST asosidagi tekshiruvlar. Ushbu turdagi ko'rib chiqishni bajarish nisbatan oson va ko'plab tashkilotlar korporativ kodlash standartlari yoki sanoat tomonidan tavsiya etilgan eng yaxshi amaliyotlarga muvofiqligini tekshirish uchun ushbu turdagi yangi ko'rib chiqish dasturlarini yaratmoqda.

    Kod yo'lini tahlil qilish


    Keling, murakkabroq misolni ko'rib chiqaylik. Endi biz dasturlash uslubini buzish holatlarini qidirish o'rniga, biz ko'rsatgichni o'zgartirishga urinish to'g'ri yoki muvaffaqiyatsiz ishlashini tekshirmoqchimiz:
    If(x & 1) ptr = NULL; *ptr = 1;
    Fragmentni yuzaki tadqiq qilish, agar x o'zgaruvchisi toq bo'lsa, ptr o'zgaruvchisi NULL bo'lishi mumkinligi haqidagi aniq xulosaga olib keladi va bu shartga murojaat qilinganda, muqarrar ravishda null sahifaga olib keladi. Biroq, AST asosida test dasturini yaratishda, bunday dastur xatosini topish juda muammoli. Yuqoridagi kod parchasi uchun yaratiladigan AST daraxtini (aniqlik uchun soddalashtirilgan) ko'rib chiqing:
    Bayonot bloki If-iborani tekshirish-ifoda Ikkilik-operator & x 1 Toʻgʻri-tarmoqli ifoda-iborani tayinlash-operator = ptr 0 Ifoda-iborani tayinlash-operator = Dereference-pointer - ptr 1 Bunday hollarda hech qanday daraxt qidirish yoki oddiy roʻyxat boʻlmaydi. tugunlar ko'rsatgichni o'zgartirishga urinishni (hech bo'lmaganda ba'zan noto'g'ri) oqilona umumlashtirilgan shaklda aniqlay olmaydi. Shunga ko'ra, tahlil qilish vositasi sintaksis modelini shunchaki qidira olmaydi. Shuningdek, ma'lumotlar ob'ektlarining hayot aylanishini ular paydo bo'lishi va bajarilishi davomida boshqaruv mantiqi doirasida ishlatilishini tahlil qilish kerak.
    Kod yo'li tahlili bajarilish yo'llaridagi ob'ektlarni kuzatib boradi, shunda validatorlar ma'lumotlardan to'g'ri va to'g'ri foydalanilganligini aniqlashlari mumkin. Kod yo'li tahlilidan foydalanish statik tahlil jarayonida javob berilishi mumkin bo'lgan savollar doirasini kengaytiradi. Kod yo'lini tahlil qilish dastur kodining to'g'riligini oddiygina tahlil qilish o'rniga, kodning "niyatlarini" aniqlashga va kodning ushbu niyatlarga muvofiq yozilganligini tekshirishga harakat qiladi. Bu quyidagi savollarga javob berishi mumkin:

    • Yangi yaratilgan ob'ekt unga barcha havolalar ko'lamdan olib tashlanishidan oldin ozod qilinganmi?

    • Ob'ektni OT funktsiyasiga o'tkazishdan oldin ba'zi ma'lumotlar ob'ekti uchun ruxsat etilgan qiymatlar diapazoni tekshirilganmi?

    • Qatorni SQL so'rovi sifatida o'tkazishdan oldin belgilar qatorida maxsus belgilar mavjudligi tekshirildimi?

    • Nusxalash operatsiyasi bufer to'lib ketishiga olib keladimi?

    • Ayni paytda bu funksiyani chaqirish xavfsizmi?

    Kodni bajarish yo'llarini shu tarzda tahlil qilib, hodisa boshlanishidan maqsad skriptga o'tish va hodisani ishga tushirishdan kerakli ma'lumotlarni ishga tushirishgacha, vosita savollarga javob bera oladi va agar maqsadli skript yoki ishga tushirishlar bajarilgan bo'lsa, xato hisobotini chiqaradi. yoki kutilganidek bajarilmaydi.
    Bunday qobiliyatni amalga oshirish ilg'or manba kodini tahlil qilish uchun zarurdir. Shu sababli, ishlab chiquvchilar xotira oqishini, noto'g'ri ko'rsatgichga murojaat qilishlarini, xavfli yoki noto'g'ri ma'lumotlarni uzatishni, parallellik buzilishini va boshqa ko'plab muammoli vaziyatlarni aniqlash uchun ilg'or kod yo'li tahlilidan foydalanadigan vositalarni izlashlari kerak.

    Download 2,24 Mb.

    Do'stlaringiz bilan baham:
  • 1   ...   48   49   50   51   52   53   54   55   ...   89




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish