Ўзбекистон республикаси алоқА, ахборотлаштириш ва телекоммуникация технологиялари давлат қЎмитаси тошкент ахборот технологиялари университети


Download 1.45 Mb.
bet59/60
Sana18.03.2023
Hajmi1.45 Mb.
#1282705
1   ...   52   53   54   55   56   57   58   59   60
Bog'liq
ТДТ(Маъруза 2011) охирги

Маъруза №16.
Мавзе: Ички формалар.
Режа:
1. Тўртлик формаси.
2.Кодни генерациялашда «тўртлик»ни қўллаш
Калит сузлар.

  • Постфикс ёзув

  • Дастур коди

  • Генерация

  • Тўртлик



1. Тўртлик формаси.
Постфикс ёзувдан дастур кодини куриш мумкин, лекин бундай ёзув формасини оптималлаштириш мураккаб иш. Купгина компильяторлар дасурнинг объект кодини куриш учун оптималлаш учун кулай булган ички формалардан фойдаланадилар. Генерация килинаётган коднинг энг куп таркалган ички тасвирлашни формаларидан бири бу туртликдир.
Туртлик –бу туртта элементдан ташкил топган объектдир: амаллар, иккита операнд ва натижалар. Агар амал бажариш натижасида кандайдир узгарувчини киймати хисобланса, у холда бундай туртликни куриш унчалик мураккаб эмас. Масалан: Х:= Y+Z гап куйидаги туртлик оркали ифодаланади.
(PLUS_OP, Sy, Sz,Sx), бу ифода Sy белгилар жадвали билан ячейкада аникланган узгарувчини Sz ячейкада аникланган узгарувчи билан (PLUS_OP) кушиб ва натижани Sx ячейкада саклашни англатади. Энди бошлангич гап мустакил бирлик сифатида ифодаланади, уни код генератори жойлашиш манзилидан катьи назар кайта ишлай олади. Шундай килиб, оптимизатор амаллар кетма-кетлигини кодни генерациялаш жараёнини мураккаблаштирмасдан узгартириши мумкин.
2.Кодни генерациялашда «тўртлик»ни қўллаш
Унар операторлар учун туртликнинг иккинчи операндини майдонини игнорироват килиш мумкин, иккитадан ортик операндларни талаб киладиган амалларни эса бир неча туртликлардан ташкил топган кетма-кетликлар куринишида ифодалаш мумкин.
Масалан, куйидаги операторни X:= F(A,B,C,D) учта туртлик куринишидаги гурух сифатида ёзиш мумкин.

(F1,A,B, Т1)


(F2, Т1,С, Т2)
(F, Т2,D,Х)
F1 ва F2 функциялар оралик хисоблашларни амалга оширадилар, Т1 ва Т2 ячейкалар эса ушбу харакатларнинг натижаларини саклаш учун мулжалланган. Дастурни фактик куриш вактида код генератори объект кодида F1 ( бу амал учун F2 ва F амаллар оркали) амални тугри ифодалаши мумкин.
Яна оралик ячейкалардан фойдаланишга боглик мисол караймиз.
Фараз килайлик куйидаги постфикс ёзувли гап берилган булсин.
SxSxSySz*+:=
Бу гапга Y ва Z купайтириш амаллари, натижани Х билан кушувчи ва Х узгарувчига олинган суммани узлаштириувчи амаллар киради. Туртликни генерациялаш вактида купайтиришни амалга оширувчи учун ушбу оралик натижани сакловчи ячейка керак булади. Бу холатда, вактинчалик ва ички узгарувчи ташкил этилади деб фараз киламиз. Шундай килиб, каралаётган гап куйидаги кетма-кетликда ифодаланади.
(MULT_OP, Sy, Sz,T1)
(ADD_OP,Sx,T1,Sx),
Бу ерда биринчи туртлик Y ни Z га купайтириш ва натижани T1 ячейкага ёзишни, иккинчи туртлик эса X узгарувчини Y*Z амал натижасини сакловчи T1 узгарувчи билан кушишни ва суммани X га ёзувни аниклайди.



Download 1.45 Mb.

Do'stlaringiz bilan baham:
1   ...   52   53   54   55   56   57   58   59   60




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