Фанидан бажарди: Qirg’izboyev O. O



Download 364,93 Kb.
bet3/3
Sana31.05.2022
Hajmi364,93 Kb.
#622323
1   2   3
Bog'liq
QirgizboyevOqiljon

Чикиш дарахтини куриш
Бошлангич берилганлар.
Чикиш дарахтини куришни дастурий реализациясини амалга ошириш учун кирувчи дастур матнини лексик тахлилини бажарувчи, лексема кодлари жадвалини ташкил этувчи ва дастур матнини синтаксис тахлил килувчи дастурни ёзиш талаб килинади. Кирувчи тил матни белгили файл куринишида берилади. Дастур кирувчи матндаги учрайдиган хатоликлар хакида маълумот бериши керак.


Синтаксис тахлилчи
Бошлангич грамматика:
G ({ program, end., if, then, else, endif, begin, end, repeat, until, and, or, not, <<, >>, =, <, >, <>, (, ), -, +, a, c, ;, :=}, {S, L, O, B, C, K, D, H, E, T}, P, S)
Sprogram L end.
LO | O ; O | L ;
Oif B then O else O endif | if B then O endif | begin L end | repeat O until B | a := E
BB or C | C
CC and D | D
Dnot D | H
HE < E | E > E | E = E | E <> E | (B) | E << E | E >> E
EET | E + T | T
T → (E) | a | c

Грамматиканинг барча нотерминал белгиларга нисбатан энг четки чап ва энг четки унг белгилар туплами L(U), R(U) 2 жадвалда келтирилган. 3 жадвалда эса грамматиканинг барча нотерминал белгиларга нисбатан энг четки чап ва энг четки унг белгилар тупламининг йигинди тупламлари L(U), R(U) келтирилган.


2 жадвал


U

L(U)

R(U)

T

(, a, c

), a, c

E

E, T

T

H

(, E

E, )

D

not, H

D, H

C

C, D

D

B

B, C

C

O

if, begin, repeat, a

endif, E, end, B

L

L, O

O, ;

S

program

end.

3 жадвал

U

L(U)

R(U)

T

(, a, c

), a, c

E

E, T, (, a, c

T, ), a, c

H

(, E, T, a, c

E, ), T, a, c

D

not, H, (, E, T, a, c

D, H, E, ), T, a, c

C

not, H, (, E, T, a, c

D, H, E, ), T, a, c

B

B, C

C, D, H, E, ), T, a, c

O

if, begin, repeat, a

endif, E, end, B

L

L, O, if, begin, repeat, a

O, ;, endif, E, end, B

S

Program

end.

Грамматиканинг барча нотерминал белгиларга нисбатан энг четки чап ва энг четки унг терминал белгилар туплами Lt(U), Rt(U) ва грамматиканинг барча нотерминал белгиларга нисбатан энг четки чап ва энг четки унг терминал белгилар тупламининг йигинди тупламлари Lt(U), Rt(U) 4 ва 5 жадвалларда келтирилган.


4 жадвал

U

Lt(U)

Rt(U)

T

(, a, c

), a, c

E

-, +

-, +

H

<, >, =, <>, (, <<

<, >, =, <>, ), >>

D

not

not

C

and

and

B

or

or

O

if, begin, repeat, a

endif, end, :=, until

L

;

;

S

program

end.

5 жадвал


U

Lt(U)

Rt(U)

T

(, a, c

), a, c

E

-, +, (,a, c

-, +, ), a, c

H

<, >, =, <>, (, <<, -, +, a, c

<, >, =, <>, ), >>, -, +, a, c

D

not, <, >, =, <>, (, <<, -, +, a, c

not, <, >, =, <>, ), >>, -, +, a, c

C

and, not, <, >, =, <>, (, <<, -, +, a, c

and, not, <, >, =, <>, ), >>, -, +, a, c

B

or, and, not, <, >, =, <>, (, <<, -, +, a, c

or, and, not, <, >, =, <>, ), >>, -, +, a, c

O

if, begin, repeat, a

endif, end, :=, until, or, and, not, <, >, =, <>, ), >>, -, +, a, c

L

;, if, begin, repeat, a

;, endif, end, :=, until, or, and, not, <, >, =, <>, ), >>, -, +, a, c

S

program

end.

Бошлангич грамматика асосида олинган асосий грамматика:


G' ({ program, end., if, then, else, endif, begin, end, repeat, until, and, or, not, <<, >>, =, <, >, <>, (, ), -, +, a, c, ;, :=}, {E}, P, S)
Eprogram E end.
EE | E ; E | E ;
Eif E then E else E endif | if E then E endif | begin E end | repeat E until E | a := E
EE or E | E
EE and E | E
Enot E | E
EE < E | E > E | E = E | E <> E | (B) | E << E | E >> E
EEE | E + E | E
E → (E) | a | c

Арифметик ва мантикий амалларни приоритетини аникловчи кавсларни фарклаш учун асосий грамматикага кушимча нотерминал белги В ни кушамиз, ва у мантикий ифодаларни белгилайди.


Кетириб чикарилган асосий грамматика куйидаги куринишни олади:


G' ({ program, end., if, then, else, endif, begin, end, repeat, until, and, or, not, <<, >>, =, <, >, <>, (, ), -, +, a, c, ;, :=}, {E, B}, P, S)
Eprogram E end.
EE | E ; E | E ;
Eif B then E else E endif | if B then E endif | begin E end | repeat E until B | a := E
BB or B | B
BB and B | B
Bnot B | B
BE < E | E > E | E = E | E <> E | (B) | E << E | E >> E
EEE | E + E | E
E → (E) | a | c


Натижалар
Синтаксис тахлилчининг дастурий реализацияси SynAnalyser модули ва SynTab график модул куринишида берилган. SynAnalyser модул асосий грамматика коидалари асосида лексик тахлилчидан келиб тушаётган кетма-кет лексемалар тупламини синтаксис тахлилини утказади. Унинг иш натижаси булиб синтаксис чикиш дарахтини акс эттирувчи структура хисобланади. Хатолик юз берган холда экранда синтаксис хатолик хакидаги маълумот ва хато катор кизил рангда чикади. График модуль SynTab чикиш дарахтини график куриниши учун жавоб беради ва синтаксис тахлилчи томонидан амалга оширилган харакатлар кетма-кетлиги хакидаги ва уларнинг натижалари хакидаги тулик хисоботни экранга чикаради.
Куйидаги файлни кайта ишлаш жараёнидаги синтаксис тахлилчи ишини караб чикамиз:
program
(* Это
комментарий * (* *
*)
begin
c:= c - b +d;
repeat
if a>3 then a :=3 else i:=0 endif
until i= 0
end ;
end.
Дастур матни
main.cpp
#include
#include "MainDialog.h"
#include

int main(int argc, char *argv[])


{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("CP1251"));
a.setStyle("windowsxp");
MainDialog w;
w.show();
a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
return a.exec();
}
Чикиш дарахтининг график натижалари 5 расмда келтирилган.



5 расм – Чикиш дарахтини куриш натижалари


Дастур ишини ифодаланиши
Синтаксис тахлилчининг дастурий реализацияси

Синтаксис тахлил реализацияси лексик тахлилчининг реализациясига ухшашдир.


"Синтаксис" вкладкасида чикиш дарахти яъни синтаксис тахлил ишининг натижалари чикарилади (6 расм). Ушбу вкладкада яна унинг мантикий иш алгоритмни чикарилади.

6- расм – "Синтаксис" вкладкаси

Худди лексик тахлил хатоликлари каби синтаксис тахлил хатоликлари хакидаги махълумотлар хам чикиши амалга оширилиши керак.



Dastur kodi.


R asmda dastur foydalangan belgi va raqamlarni massivi keltirilgan agar dasturda bundan bosshqa belgilar qatnashsa dastur xato xaqida ma’lumot beradi.






Bu qismida dasturdagi belgilar ni tekshiradi va agar belgilar to’g’ri kelmasi xato xabar chiqaradi aks xolda kiritilgan ma’lumotlarga qaram dasturni to’g’ri taxlil qiladi va dastur ishini bajaradi.


=>


Agar dastur to’g’ri ishlasa yuqoridagi tenglikni ishlab beradi.

Хулоса
Тажриба ишининг бажарилиш жараёнида берилган Паскаль тилининг кисмтуплами учун синтаксис тахлилни амалга оширувчи дастур ишлаб чикилди. Ушбу дастурни ишлаб чикаришиш учун Microsoft Visual Studio .NET 2003 дастурлаш мухитининг кушимча Trolltech Qt v4.0.1.интеграллашган кутубхоналари классларидан фойдаланилди.


Фойдаланилган адабиётлар руйхати
1. Системное программное обеспечение: Учебник для вузов/ А.Ю. Молчанов- СПб.: Питер, 2003.- 396 с.
2. Системное программное обеспечение. Лабораторный практикум/ А.Ю. Молчанов- СПб.: Питер, 2005.- 284 с.
3. Разработка графического интерфейса с помощью библиотеки Qt3/ Дж. Бланшетт, М. Саммерфелд, 2003.
4. http://www.fi.ru/~mill/ Личная страничка А.Ю. Молчанова.

Download 364,93 Kb.

Do'stlaringiz bilan baham:
1   2   3




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish