Tizimli dasturiy ta’minot


Tilning sintaksisi va semantikasi


Download 251.71 Kb.
bet4/5
Sana06.11.2021
Hajmi251.71 Kb.
#171054
1   2   3   4   5
Bog'liq
kurs ishi

Tilning sintaksisi va semantikasi.

Shunday qilib, biz til biror alfavit simvollari asosida qurilgan zanjirlarning to‘plami ekanligini bilamiz. Lekin til nafaqat alfavit bilan aniqlanadi, ya’ni aniqroq aytganda alfavit simvollari asosida qurilgan har qanday zanjir ham tilga tegishli bo‘lavermaydi. Simvollar asosida tilning elementar konstruksiyalari (tuzilmalari) – so‘zlar (yoki leksemmalar) quriladi. Leksemmalar asosida tilning boshqa murakkabroq konstruksiyalari tashkil etiladi. Leksemmalar ham, undan murakkaboq bo‘lgan konstruksiyalar ham alfavit simvollari asosida qurilgan zanjir bo‘lishi bilan birga ular muayyan qurish qoidalari taqozo etadi. Boshqacha aytganda tilni aniqlash uchun bu qoidalarni ko‘rsatib o‘tish lozim. Masalan, Pascal tilining alfaviti simvollari asosida qurilgan har qanday zanjir ham Pascal tilidagi to‘g‘ri dastur bo‘lib hisoblanmaydi.

Umuman olganda tilni uch xil usulda aniqlash mumkin:

Tilga tegishli barcha zanjirlarni sanab o‘tish orqali;

Tilga tegishli zanjirlarni qurish qoidalarini keltirish orqali (grammatikani berish orqali);

Tilga tegishli zanjirlarni farqlash (tanish) metodini berish orqali.

Birinchi usul formal bo‘lib, amalda deyarli qo‘llanilmaydi, chunki aksariyat tillarga tegishli zanjirlar cheksiz to‘plamni tashkil etadi. Masalan, Pascal tiliga tegishli barcha zanjirlarni (ya’ni to‘g‘ri dasturlarni) sanab o‘tish mumkin emas.

Ikkinchi usul tilga tegishli joiz zanjirlarni qurishning biror qoidalarini tavsiflab berishni nazarda tutadi. Masalan, Pascal algoritmik tilini o‘rganganimizda bunday qoidalar bilan tanishganmiz albatta.

Uchinchi usul kirishida tilga tegishli zanjirlarni qabul qilib, chiqishida ushbu zanjir tilga tegishli yoki tegishli emasligi haqida xulosa beruvchi mantiqiy qurilma (farqlovchi), ya’ni avtomatni ishlab chiqishni nazarda tutadi. Masalan Pascal tilining kompilyatori ma’lum ma’noda aynan shunday avtomat sifatida qaralishi mumkin.

Til haqida gapirganda uning sintaksisi va semantikasi, shuningdek tilning elementar konstruksiyalari leksemmalar haqida alohida to‘xtalish mumkin. Tildagi joiz konstruksiyalar (zanjirlarni) aniqlovchi qoidalar tilning sintaksisi deyiladi. Odatda tilning sintaksisini qat’iy qoidalar shaklida berish mumkin, lekin bu tasdiq sof formal tillar uchun to‘liq ma’noda o‘rinlidir. Deyarli barcha dasturlash tillarida sintaksis qat’iy qoidalari aksariyat hollarda qo‘shimcha tushuntirishlarni talab etadi.

Tildagi konstruksiyalarga beriladigan ma’noni belgilovchi qoidalar tilning semantikasi deyiladi. Semantika tilning mazmunini – tilga tegishli konstruksiyalarning ma’nosini aniqlaydi. Deyarli barcha tillarda (shu jumladan dasturlash tillarida ham) semantika noformal tarzda aniqlanadi.

Tilning leksemmasi (yoki leksik birligi) deb, tilning alfaviti asosida qurilgan va o‘z tarkibiga tilning boshqa konstruksiyalari olmagan (minimal) konstruksiya tushuniladi. Masalan dasturlash tillarida leksemmalar qatoriga identifikatorlar, kalit so‘zlar, literallar, arifmetik va boshqa amal belgilari va hakozolar kiradi. Tildagi leksemmalar to‘plami leksika deyiladi.

Demakki leksik analizatorlar uchun asos regulyar grammatikalar va chekli avtomatlar hisoblanadi.

Istalgan regulyar grammatika uchun, ushbu grammatika qoidaalari asosida hosil qilingan zanjirlarni taniydigan avtomat qurish qoidalari (algoritmi) mavjud.



  1. MUAMMONI YECHISH USULLARI, YO’LLARI.

    1. Masalaning sharti va Grammatikasi.

Bizga Pascal muhitida e’lon qilingan o’zgaruvchi to’g’ri elon qilinganligini tekshiruvchi sintaksis tahlillovchini qurish masalasi qo’yilgan. Birinchi ishni masala uchun joiz grammatikani qurishdan boshlaymiz. U quyidagicha bo’ladi:

A: float;

G(VT,VN,P,S);
VT={A,B,C,D,E,F,G,H,J,I,K,L,M,N,O,P,Q,R,S,T,U,V,Y,W,X,Z,a,b,d,c,q,w,e,r,t,y,u,o,p,s,f,g,h,j,k,l,z,x,v,n,m,0,1,2,3,4,5,6,7,8,9, :, , ;}
VN={tip, Idn, sp, L, D, nv}

P={;



float;

L;

;

;

A/B/C/D/E/F/I/G/H/J/K/L/M/N/O/P/Q/R/S/T/U/V/Y/W/X/Z/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z;

0/1/2/3/4/5/6/7/8/9;



;, :, ,}

S=.

Misol A: float;

A

A:

A:

A: float


Download 251.71 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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