2-ma’ruza. Dasturiy ta`minot ishlab chiqish bosqichlari. Algoritm va uning xossalari


Download 177.92 Kb.
Pdf ko'rish
bet15/17
Sana06.11.2023
Hajmi177.92 Kb.
#1751257
1   ...   9   10   11   12   13   14   15   16   17
Bog'liq
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:
1   ...   9   10   11   12   13   14   15   16   17




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