Tizimli dasturiy ta’minot


A: float; Masalaning chekli avtomati loyihasi(diagrammaviy,jadvaliy ifodasi)


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

A: float;


    1. Masalaning chekli avtomati loyihasi(diagrammaviy,jadvaliy ifodasi).

Regulyar grammatika tomonidan aniqlangan chekli avtomat deb quyidagi 5 likni tushunamiz.

M(Q,V,δ,q0,F)

Q-avtomat holatlariningchekli to’plami.

V-avtomat qabul qiladigan kirish simvollarining chekli to’plami

δ- o’tish funksiyasi.

Kirish simvoli va holatlardan tashkil topgan juftlikka avtomatning bir yoki ko’proq holatini mos qo’yadi.

q0- avtomatning boshlang’ich holati q0ЄQ q0 Q ning bir qismi

F- yakuniy holatlar to’plami.



Masalaning diagrammasi(o’zaro bog’lanish).

Chekli avtomatning o’tish funksiyasi diagrammasini qurishni boshlaymiz.




Q0



Qe

QL





QD

Qtip



Qnv

Chekli avtomatning jadvaliy ko’rinishini ifodalaymiz bu quyidagicha bo’ladi:

M=M(Q,V,, Q0, F)

Q=(Q0,Qerr, Qsp,Qw,Qh,Qi,Ql,Qe,Qqo,Qs,Qm,Qqy,Qb,Qo,Qd,Qy);



V\Q

Q0

QL

QD

Qnv

Qsp

Qtip

Qe

L

QL

QL

Qe

Qe

Qe

Qe

Qe

D

Qe

QD

QD

Qe

Qe

Qe

Qe

nv

Qe

Qnv

Qnv

Qnv

Qe

Qnv

Qe

sp

Qe

Qe

Qsp

Qsp

Qsp

Qe

Qe

tip

Qe

Qe

Qe

Qe

Qtip

Qe

Qe

2.3 Pascal tilida o’zgaruvchi to’g’ri e’lon tekshiruvchi sintaksis tahlillovchining dasturi.

(C++ dasturlash tilida)
#include

#include

using namespace std;

int vs=0;

enum TState {Q0,Qv,Quz,Qin,Qi,Qn,Qt,Qe,Qg,Qsp,Qee,Qr,Qnv,Qerr};

char NextSymbol(string&S)

{

char ch=S[0];



S.erase(0,1);

return ch;

} ;

TState NewState(TState Q,char ch)



{

TState newstate;

switch(Q)

{

case Q0:if(ch>='A'&& ch<='Z')



newstate=Quz;

else if(ch==' ')newstate=Qsp;

else newstate=Qerr;

break;


case Qsp:if (ch=='i')newstate=Qi;

else if (ch>='A'&& ch<='Z')

{newstate=Quz;vs=0;}

else if(ch==','){newstate=Qv;vs=1;}

else if(ch==':'&&vs==0)newstate=Qin;

else if(ch==' ') newstate=Qsp;

else newstate=Qerr;

break;


case Quz:if (ch==',') {newstate=Qv;vs=1;}

else if (ch>='A'&& ch<='Z')

{newstate=Quz;vs=0;}

else if (ch==' ') newstate=Qsp;

else if (ch==':'&&vs==0)newstate=Qin;

else newstate =Qerr;

break;

case Qv: if (ch>='A'&& ch<='Z')



{newstate=Quz;vs=0;}

else if (ch==' ') newstate=Qsp;

else newstate=Qerr;

break;


case Qin: if(ch=='f')newstate=Qi;

else if(ch==' ') newstate=Qin;

else newstate=Qerr;

break;


case Qi: if (ch=='l')newstate=Qn;

else newstate=Qerr;

break;

case Qn: if(ch=='o') newstate=Qt;



else newstate=Qerr;

break ;


case Qt: if (ch=='a') newstate=Qe;

else newstate=Qerr;

break;

case Qe:if (ch=='t')newstate=Qg;



else newstate=Qerr;

break;


case Qg: if (ch==';') newstate=Qnv;

else newstate=Qerr;

break;

}

return newstate;



}

bool TerminalState(TState Q)

{

return Q==Qnv;



}

int main()

{

string S;



TState Q;

char ch;


Q=Q0;

cout<

getline(cin,S);

while (S.length()>0)

{

ch=NextSymbol(S);



Q=NewState(Q,ch);

}

if (TerminalState(Q))



cout<

else


cout<int k;


cin>>k;

return 0;

}

III. OLINGAN NATIJALAR.

3.1. Olingan natijalar tahlili.

Masalaning shartiga muvofiq zanjirni kiritamiz va tuzgan dasturimizning to’g’riligini analiz qilamiz.







Xulosa

Xulosa qilib shuni aytishimiz mumkinki bu kurs ishini bajarish davomida TDT fanidan olgan bilimlarimizni mustahkamladik. Qo’yilgan masalaga ko’ra gramatika, chekli avtomat va so’nggina dasturini tuzdim.

Kurs davomida olgan bilimlarimizni umumlashtirib bilmaganlarimizni o’rganib oldik.

Dastur tuzish jarayonida leksik analiz va sintaktik analiz ishi bilan tanishdim. Tuzilgan dastur sharti oldin tekshiriladigan sikl operatorining to’g’riligini tekshiradi. Natija olishda While kalit so’z va yakunlovchi qavsdan keyin probel tashlansa to’g’ri aks holda noto’g’ri javob qaytaradi.

Kurs ishini bajarish davomida turli dastur operatorlari bilan ishlashni va kompilyator ishining tavsifini mazkur loyiha ishim orqali mukammal o’rgandim .

Foydalanilgan adabiyotlar ro’yxati.


  1. G.V. Galisev. Programirovaniye v srede Delfi 7.0. Samouchitel 246 ct.

  2. Молчанов А.Ю. Системное программное обеспечение: Учебник для вузов.

СПб: Питер, 2003.-396 с.

  1. Афанасьев А.Н. Формальные языки и грамматики.: Учебная школа:

УлГТУ, 1997. – 84 с.

  1. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и

компиляции -.: Мир, 1979.-487с.

  1. “Tizimli dasturiy ta’minot fanidan ma’ruzalar matni”

Qayumova M. Toshkent 2011

Internet manbalari.

http://www.ziyonet.uz

http://www.tuit.uz



http://www.adttuit.uz


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