Семантик тахлил босқичлари. - - дастурда хар бир ўзгарувчи ишлатилишидан олдин эълон қилиниши керак
- - функциянинг натижаси уни исталган пайтда чақирилган аниқланиши керак
- - дастурдаги хар бир оператор хеч бўлмаганда бир марта бажарилиш имконига эга бўлиши керак
- - Танлаш ва шарт операторлари ўзининг шохлари бўйича дастур бажарилиши имконини кўриб чиқишлари керак
- - цикл оператори циклнинг тугалланиш имконини бериши керак.
- Семантик тахлилчининг қиладиган яна бир иши бу маълумотлар объектларини уларнинг номланиши билан боғлиқлигини ўрнатиш. Дастурлаш тилларида лексик бирликларнинг номи калит сўзлар билан устма-уст тушмаслиги керак ва лексик бирликлар харакат қилиши мумкин бўлган семантик чегаралар хам мавжуд, масалан локал ўзгарувчилар тушунчаси.
- Тахлилчи ўзгарувчилар, константа, функцияларни идентификациялаш учун қиладиган ишлари рўйхати:
- Локал ўзгарувчилар номлари улар эълон қилинган блок номлари билан тўлдирилади
- Функция ва ўзгарувчилар номлари агар улар биронта классга тегишли бўса, шу класс номи билан тўлдирилади
- Функция ва процедураларнинг номлари уларнинг формал аргументлари типларига боғлиқ холда модификацияланади
-
Поляк ёзувлари. Постфикс ва префикс ёзув. - Кундалик амалиётда учрайдиган кавсларни уз ичига олган оддий арифметик ифодаларни инфекс ифодалар деб аталади, чунки амал ишораси операндлар орасида жойлашади. a=b+c
- Харакатларнинг бажарилиш тартиби бундай ифодаларда амалларнинг катталик даражаси ва кавслар билан белгиланади. Бундай ифодаларни хисоблаш ва компиляциялаш уларни аввалдан амалларни бажарилиш тартибини аниклаш максадиди тахлил килишни англатади. Арифметик ифодаларни кавсларсиз ёзиш усуллари мавжудки, уларда харакатлар тартиби ифодадаги амал белгилари тартиби билан берилади.
(1+2)*4+3 ифодани постфикс поляк ёзуви кўринишда ифодалайдиган бўлсак: 1 2 + 4 × 3 + кўринишда бўлади. - (1+2)*4+3 ифодани постфикс поляк ёзуви кўринишда ифодалайдиган бўлсак: 1 2 + 4 × 3 + кўринишда бўлади.
- Бу кириш қаторини стек билан хисобланишини кўриб чиқамиз:
- Кириш амал Стек
- 1 стекка жойлаш 1
- 2 стекка жойлаш 1, 2
- + қўшиш 3
- 4 стекка жойлаш 3, 4
- * кўпайтириш 12
- 3 стекка жойлаш 12, 3
- + қўшиш 15
- Натижа 15, хисоблаш охирида натижа стекда ётган бўлади.
Do'stlaringiz bilan baham: |