2.Кодни генерациялаш усуллари.
Кодни ички ёзувларининг бир хил фрагментлари (постфикс ёзувлари амаллари, туртлик ва бошкалар) машина тилининг бир хил буйрукларини ифодалайди. Масалан, код генерацияланаётган PLUS_OP туртлик, агар процессорда барча амаллар регистр-аккумлятор устида бажарилса, хар доим куйидаги кодни генерациялайди:
LOAD регистр , операнд 1
ADD регистр, операнд 2
STORE регистр, натижа
Машина командаларининг бу кетма-кетлиги коррект, лекин оптимал эмас. Масалан, куйидаги гап
X:=X+Y*Z олтита команда оркали амалга оширилади:
LOAD регистр, Y (туртлик (MULT_OP,Sy,Sz,T1))
MUL регистр, Z
STORE регистр, T1
LOAD регистр, X (туртлик ( ADD_OP,Sx,T1,Sx))
ADD регистр, T1
STORE регистр, X
Худди шунингдек, ушбу натижага келтирувчи куидаги дастурни куриш мумкин.
LOAD регистр, Y
MUL регистр, Z
ADD регистр, X
STORE регистр, X
Ушбу усул билан генерацияланаётган код хар доим тугри хисобланади, лекин хар доим хам оптимал эмас. Шунинг учун кодни хисоблашларни аниклигига таъсир курсатмай туриб, узгартириш имконини берувчи курилмаларга эга булиш керак.
Хар бир туртликка купгина холларда ягона машина командалари кетма-кетлиги мос келади, код генератори купинча хар бир туртлик буйича кисмдастурлар туплами мос келади.
Назорат саволлари.
Семантик тахлил босқичининг вазифаси нмалардан иборат?
Семантик тахлил босқичлари хақида маълумот беринг.
Кодни оптималлашнинг қандай усулларини биласиз?
Фойдаланилган адабиётлар
Молчанов А.Ю. Системное программное обеспечение: Учебник для вузов. –СПб: Питер, 2003.-396 с.
Афанасьев А.Н. Формальные языки и грамматики: Учебная школа: УлГТУ, 1997. – 84 с
Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции -: Мир, 1979.-487с.
А.Левин. Самоучитель полезных программ. Питер. Санкт-Петербург, 2002.
Карпов Б.И. Delphi: Специальный справочник. – СПб: Питер, 2001-648с.
Карпов Б.И. Visual Basic Специальный справочник. – СПб: Питер, 2000-415с.
Карпов С.Ю. Теория автоматов. Учебные пособия для вузов. –СПб: Питер, 2003.-201с.
WWW.codecrojekt.ru
WWW. master.ru
WWW.bdn_borland.com
http://microsofft.com
Do'stlaringiz bilan baham: |