7-mavzu. SINTAKTIK TAHLIL
Ushbu mavzuda sintaktik tahlil qiluvchi konstruktorlar, matnli-erkin grammatika, kompilyatorlar yaratuvchilarning muammolari, ifodalarning sintaktik tahlili, leksik va sintaktik tahlil bosqichlari, sintaktik tahlillovchi sinflari, past sathlarga yo‘naltirilgan analizatorlar, LL grammatika, LR – grammatika, rekursiv kamayish usuli, rekursiv kamayish usulidan foydalanish sharti, parser sinfi. FIRST to‘plamning qurish algoritmi, chap rekursiv grammatikalar, qiymat qaytarish asosidagi rekursiv kamayish usuli, parser qurish vazifalari va usullari keltirilgan bo‘lib, nazariy bilimlarni asoslash uchun dasturlar tuzib ko‘rsatilgan. bilimlarni mustahkamlash uchun 35 ta nazariy savol va amaliy ko‘nikma va malakalarni rivojlantrish uchun 1 ta assisment topshirig‘i va har assismentda 6 ta topshiriq berilgan. Bu topshiriqlarni bajarish mavzuni mustahkamlash uchun xizmat qiladi.
Kalit so‘zlar. Oqim, satr, iterator, sinf, shablon, matematik amallar, fayl, EOF, rekursiya, iofda, qoida, grammatika.
Bilish shart bo‘lgan tushunchalar. Tip tushunchasi, sinf va sinf ob’ekti, oqim, kirish elementga murojaat, funksiya va ko‘rsatkich, ma’lumotlarni kirish va chiqishi, dasturlashga oid dastlabki tushunchalar va S++ tilini qo‘llab quvvatlovchi muhitda ishlashni bilish lozim.
Bilib olasiz. Sintaktik tahlillovchi vazifasi, turli grammatikalar, dasturlash tilini analizatorining ishlash tamoyili, past va yuqori sathlarga yo‘naltirilgan algoritmlar, rekursiv kamayish usuli, analizatorlarni qurishda ta’rif va shartlarni qurishni, parser sinfi, FIRST to‘plamning qurish algoritmi, chap rekursiv grammatikalar, chap rekursivlikni bartaraf etish algoritmi, qiymat qaytarish asosidagi rekursiv kamayish usuli, sintaktik analizatorni yaratish, Forward va Input iteratorlardan foydalanish, Strin – Stdin oqimlardan foydalanish, sintatik tahlillovchilarning bazaviy funksiyalarini o‘rganishingiz mumkin.
REJA
1.Ifodalarning sintaktik tahlili.
2.Parser sinfi.
3.Sintaktik analizatorni yaratish.
KIRISH
Bugungi kunga kelib dasturlash tillarining rivojlanishiga ularni sintaktik tahlil qiluvchi konstruktorlarning ko‘payib, ommalashganidir. Har bir dasturlash tili to‘g‘ri dastur tuzilishini belgilovchi qoidalar majmuasi yordamida tasvirlanadi. Dasturlash tilining sintaktik konstruksiyalarini tasvirlash uchun eng qulay formal usul matnli-erkin grammatikadir (masalan, Backus-Naur ning normal shakli keng qo‘llaniladi).
Grammatikalar tildan foydalanadigan dasturchilar va shu til uchun kompilyatorlar yaratuvchilarning muammolarini bir xilda hal qilishga yordam beradi:
-Grammatika dasturlash tilining aniq va oson tushunadigan sintaktik xususiyatlarini ta’minlaydi.
- Ba’zi grammatika sinflar uchun, avtomatik ravishda manba dasturi sintaktik to‘g‘ri yoki yo‘qligini aniqlaydigan samarali parser (analizator, tahlillovchi) qurish mumkin.
- Aniq qurilgan grammatika dasturlash tiliga manba dasturini to‘g‘ri ob’ekt kodiga tarjima qilish va xatolarni aniqlash uchun foydali bo‘lgan tuzilmani berishi mumkin.
- Grammatika asosida ishlab chiqilgan kompilyatorlar juda oson kengaytirilishi mumkin (bu til rivojlanishi natijasida paydo bo‘lgan yangi konstruksiyalarni qo‘shish uchun ayniqsa foydalidir).
YAna bir bor ta’kidlaymizki, matnli-erkin grammatikalar dasturlash tilining faqat matnli tarkibiy qismini, ya’ni muayyan til qurilishi qanday yozilganligini aniqlaydi. Dasturning sintaktik to‘g‘riligini aniqlashning yana bir muhim qismi - dasturda tiplardan foydalanishning to‘g‘riligini matnli-erkin grammatika yordamida aniqlab bo‘lmaydi. SHuning uchun, agar dastur grammatikasi to‘liq deb ishlansa, u butunlay sintaktik jihatdan to‘g‘ri degani emas.
Do'stlaringiz bilan baham: |