2-ma’ruza. Dasturiy ta`minot ishlab chiqish bosqichlari. Algoritm va uning xossalari
Download 177.92 Kb. Pdf ko'rish
|
2-ma\'ruza
Sintaksis
Sintaksis - bu algoritmik tilni tavsiflashning eng sodda va rivojlangan qismidir. Grammatika sintaktik qoidalar tizimi bilan belgilanadi (ko'pincha til tavsiflarida oddiygina qoidalar deb yuritiladi). Grammatika darajasida tushunchalar belgilanadi, ularning ketma-ket ochilishi, xulosa deb ataladi, oxir- oqibat ularga belgilar ketma-ketligi ko'rinishida vakolat beradi. Sintaksis odatda ikki qismga bo'linadi: - tilning kontekstual-erkin grammatikasi (KE-grammatikasi); - kontekstli bog'liqliklarni o'rnatish qoidalari (masalan, tavsiflar va nomlar o'rtasidagi mosliklar). Kontekstual-erkin grammatika tushunchasi amaliy algoritmik tillarning tavsifidagi birinchi qat'iy tushuncha hisoblanadi. KE-grammatika tushunchasi negizida tashqi soddaligi bilan bog'liq jiddiy nazariya mavjud. Ushbu grammatika ko'plab shakllarda taqdim etilgan (sintaktik diagrammalar, Bekus-Naur metalingvistik formulalari yoki kengaytirilgan metallingvistik formulalar) va odatda, ma'lum bir tilning muntazam taqdimotiga hamroh bo'ladi. KE grammatikasining har bir o'ziga xos vakili juda sodda va har qanday dasturlash darsligidan bilib olish mumkin. Kontekstga bog'liqlik ko'plab to'g'ri dasturlarni toraytiradi. Masalan, "barcha identifikatorlar (o’zgaruvchilar) dasturda tavsiflarga ega bo'lishi kerak" qoidasi, ta'riflanmagan nomlari bo'lgan dastur berilgan tilga tegishli emasligini ko'rsatadi (garchi u kontekst-erkin sintaksis nuqtai nazaridan tegishli bo'lsa). Tillarni aniqlashda kontekstga bog'liqliklarni rasmiy ravishda tavsiflashga qaratilgan takroriy urinishlar bu vazifani kontekstsiz sintaksisni ko'rsatishdan ko'ra ancha qiyin ekanligini ko'rsatdi. Buning ustiga, hattoki hozirda keltirilgan bunday tabiiy qoidalar ham noqulay bo'lib, odamga rasmiy ta'rif berilganda uni tushunish juda qiyin bo'ladi. Shu sababli qo'llanmalar kamdan-kam hollarda kontekstual bog'liqliklarning tavsiflarini rasmiylashtirishga murojaat qilishadi (istisnolardan biri ALGOL 68). 1-misol. Har bir nomni ta'riflash (e’lon qilish zarurligi (xususan, Paskal va C tillarida) quyidagi shaklda konkretlashtirilgan. – Har bir nom uchun u paydo bo'lgan tavsif bo'lishi kerak. – Ushbu tavsif bu yerda yoki uning blokida paydo bo'lishi va dastur nomida ushbu nomdan oldin bo'lishi kerak. – Xuddi shu blokdagi bir xil nomdagi ikkita tavsif faqatgina birinchisi oldindan eslatilgan bo'lsa, ikkinchisi to'liq tavsiflangan bo'lsa, xato deb hisoblanmaydi. – Agar turli xil bloklarda bir xil nomdagi bir nechta tavsiflar mavjud bo'lsa, ichki blokning o'zi haqiqiy deb hisoblanadi. – Agar haqiqiy tavsif nomni global deb ta'riflasa, u boshqa dastur bloklarida joylashgan bir xil nomdagi boshqa global tavsifga zid bo'lmasligi kerak. Bunday talablar to'plami odamga matnda ushbu ismning qanday tushunilganligini tekshirishi uchun yetarli. Download 177.92 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling