• Sintaktik analizator
  • Dasturlash tillarining sintaksis va semantikasi




    Download 170.8 Kb.
    bet1/8
    Sana21.09.2023
    Hajmi170.8 Kb.
    #83196
      1   2   3   4   5   6   7   8
    Bog'liq
    Dasturlash tillarining sintaksis va semantikasi
    Mobiiiiiiiiiiiiiil majmua, Italiya, determinantlar-nazariyasi, 22749, HGJHG, bhhhg, 2-lab, 1-lab, 2023-2024 таянч ўқув режаси , E S 5-ish, D T 7-ISH, E S 4-ish, 1-amaliy mashgulot - Ermatov Sunnat, 1-ma’ruza. Ma’lumotlar bazasining maqsadi, vazifalari va asosiy

    Dasturlash tillarining sintaksis va semantikasi
    Har qanday dasturlash tili, har qanday tabiiy til singari, o'z sintaksisiga va semantikasiga ega.
    Sintaksis- ma'lum bir tilning elementlari shakllanishini belgilaydigan qoidalar to'plami. Boshqacha qilib aytganda, bu ma'lum bir tilda belgilarning semantik ahamiyatga ega ketma-ketligini shakllantirish qoidalari to'plamidir. Sintaksis ma'lum bir til tushunchalarini tavsiflovchi qoidalar yordamida aniqlanadi. Tushunchalarga misollar: o'zgaruvchan, ifoda, operator, protsedura. Tushunchalar ketma-ketligi va qoidalarda ulardan foydalanishda dasturlarni tashkil etuvchi sintaktik to'g'ri tuzilmalar aniqlanadi. Bu ob'ektlarning ierarxiyasi, ularning bir-biri bilan o'zaro ta'siri sintaksis orqali aniqlanmaydi. Masalan, bayonot faqat protsedurada, bayonotdagi ifoda, o'zgaruvchi nom va ixtiyoriy indekslardan va boshqalardan iborat bo'lishi mumkin. Sintaksis dasturdagi "turdagi mos kelmaslik" yoki "berilgan nom bilan o'zgaruvchi aniqlanmagan" kabi hodisalar bilan bog'liq emas. Bu semantikani qiladi.
    Semantik- til elementlari va ularning semantik ma'nolari o'rtasidagi munosabatni belgilaydigan qoidalar va shartlar, shuningdek tilning sintaktik tuzilmalarining mazmunli ma'nosini izohlash. Dasturlash tilining ob'ektlari nafaqat ma'lum bir ierarxiyaga muvofiq matnda joylashtirilgan, balki turli xil assotsiatsiyalarni tashkil etuvchi boshqa tushunchalar orqali bir-biri bilan qo'shimcha ravishda bog'langan. Masalan, sintaksis haqiqiy joylashishni faqat tavsiflarda belgilaydigan va ba'zi operatorlar ma'lum bir turga ega bo'lgan, cheklangan operatsiyalar to'plamida ishlatilishi mumkin bo'lgan, manziliga, o'lchamiga ega bo'lgan va dasturda ishlatilishidan oldin tavsiflanishi kerak bo'lgan o'zgaruvchi.
    Yuqori darajadagi tildagi manba kod matni odatdagi test fayli hisoblanadi. Uni "o'qish" va uni mashina ko'rsatmalarining ketma-ketligiga aylantirish uchun birinchi navbatda dastur matnini tahlil qilish amalga oshiriladi.
    Sintaktik analizator- dastlabki operatorlarning berilgan dasturlash tilining sintaktik qoidalari va semantikasiga muvofiqligini tekshiradigan kompilyator komponentasi. Nomiga qaramay, analizator sintaksis va semantikani tekshirish bilan shug'ullanadi. U bir nechta bloklardan iborat bo'lib, ularning har biri o'z muammolarini hal qiladi.
    Dasturlash tillari maqsadi, tuzilishi, semantik murakkabligi, amalga oshirish usullari jihatidan bir-biridan ancha farq qiladi. Bu aniq tarjimonlar rivojlanishiga o'ziga xos xususiyatlarni yuklaydi. Tilning tuzilishi sintaktik qoidalar bilan tavsiflangan uning tushunchalari o'rtasidagi ierarxik munosabatlarni tavsiflaydi. Dasturlash tillari individual tushunchalarni tashkil qilishda va ular o'rtasidagi munosabatlarda bir-biridan juda farq qilishi mumkin. Masalan, C ++ tili dasturning istalgan nuqtasida birinchi ishlatilishidan oldin o'zgaruvchilarni e'lon qilishga imkon beradi, Paskalda esa o'zgaruvchilar maxsus tavsiflash maydonida aniqlanishi kerak. Qabul qilingan qarorga qarab, tarjimon dasturni bir yoki bir nechta paslarda tahlil qilishi mumkin, bu esa eshittirish tezligiga ta'sir qiladi.
    Dasturlash tillarining semantikasi juda xilma-xil. Ular nafaqat alohida operatsiyalarni amalga oshirishning o'ziga xos xususiyatlari, balki dasturni ishlab chiqish usullarining tub farqlarini belgilaydigan dasturlash paradigmalarida ham farqlanadi. Amaliyotlarni amalga oshirishning o'ziga xos xususiyatlari ham qayta ishlanayotgan ma'lumotlar tuzilishi, ham bir xil ma'lumotlar turlarini qayta ishlash qoidalari bilan bog'liq bo'lishi mumkin. Ikkala butun sonni qo'shishni amalga oshirishda ham C va Paskal kabi tillar boshqacha yo'l tutishi mumkin.
    Xuddi shu tilni bir necha usullar bilan amalga oshirish mumkin. Buning sababi shundaki, rasmiy grammatikalar nazariyasi bir xil jumlalarni tahlil qilishning turli usullariga yo'l qo'yadi. Shunga ko'ra, tarjimonlar turli xil yo'llar bilan dastlabki manba kodidan bir xil natijani (ob'ekt dasturi) olishlari mumkin. Bir nechta Paskal kompilyatorlari mavjud: Turbo Paskal, MS Paskal, Ob'ektli Paskal, Delphi, Builder. Biroq, barcha dasturlash tillari bir qator umumiy xususiyatlar va parametrlarga ega. Ushbu umumiylik barcha tillar uchun o'xshash tarjimonlarni tashkil qilish tamoyillarini ham belgilaydi.
    Har qanday til uchun uning yaratuvchilari quyidagilarni belgilaydilar:
    To'g'ri dasturlarni yozish uchun ishlatilishi mumkin bo'lgan ko'plab belgilar (alifbo);
    Ko'plab to'g'ri dasturlar (sintaksis);
    - har bir to'g'ri dasturning "ma'nosi" (semantika).
    Keling, tahlil qilishning bir misolini ko'rib chiqaylik. Dasturning manba kodida a + (b + c) * d formulasi ko'rinsin. Ko'pgina dasturlash tillarida bunday formula daraxt sifatida namoyish etilishi mumkin bo'lgan dasturiy ta'minot ob'ektlarining iyerarxiyasini belgilaydi (17.1-rasm). Doiralar elementar qurilish sifatida ishlatiladigan belgilarni, to'rtburchaklar esa ierarxik va ehtimol rekursiv tuzilishga ega bo'lgan birikma tushunchalarni aks ettiradi.
    Bir til uchun to'g'ri bo'lgan sintaktik tuzilish boshqa til uchun noto'g'ri bo'lishi mumkin. Masalan, Lispda yuqoridagi ifoda tan olinmaydi. Ammo, bu til uchun (* (+ a b c) d) ifodasi to'g'ri bo'ladi.
    Shakl: 21.1. Daraxt daraxti.
    Barcha tillarning yana bir xarakterli xususiyati ularning semantikasidir. Bu til operatsiyalari ma'nosini, operandlarning to'g'riligini belgilaydi. Turli xil dasturlash tillarida bir xil sintaktik tuzilishga ega bo'lgan zanjirlar semantikasi jihatidan farq qilishi mumkin (masalan, arifmetik ifodaning yuqoridagi qismi uchun C ++, Paskal, Basic da kuzatilgan). Tilning semantikasini bilish sizni uni sintaksisidan ajratib, boshqa tilga o'tkazish uchun (kod yaratish uchun) ishlatishga imkon beradi. Semantikani tavsiflash va uning to'g'riligini tan olish odatda tarjimonning eng mashaqqatli va katta hajmli qismidir, chunki operatsiyalar va operandalarning qabul qilinadigan kombinatsiyasi variantlari to'plamini sanab chiqish va tahlil qilish zarur.


    • Dasturlash tili ikki jihatga ega:

      • Sintaksis (kodlash qoidalari, imlo, so'zlar tartibi)

    • Ba'zi dasturlash tillari o'xshash sintaksisga ega

    • Ba'zi tillarda ekzotik, g'ayrioddiy sintaksis mavjud

    • Semantikani ko'rish qiyin, yashirin


    Download 170.8 Kb.
      1   2   3   4   5   6   7   8




    Download 170.8 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Dasturlash tillarining sintaksis va semantikasi

    Download 170.8 Kb.