Тақырыбы: Транслятор блоктарыныњ µзараєрекеттесу т‰рлері
-
Транслятор блоктарының өзараәрекеттерінің ұйымдастырылуы
-
Транслятор блоктарының көп өтпелі өзараәрекеттесуі
-
Көпөтпелі варианттың артықшылықтары мен кемшіліктері
1. Негізге фазалардыњ ж‰зеге асырылуын аныќтайтын трансиляция процесстерін ±йымдастыру т‰рліше жолдармен орындалуы м‰мкін. Б±л трансиялятор блоктарыныњ т‰рліше µз ара єрекеттесуімен аныќталады: лексикалыќ анализатордыњ жєне код генераторыныњ. Бірдей нєтиже алуына ќарамастан, трамслятор блоктарыныњ µзара єрекеттесуініњ т‰рлі вариянттарында аралыќ берілгендерді саќтау т‰рліше орындалады. Трансилятор блоктарыныњ µзара єрекеттесуініњ 2 негізгі вариантын ерекше атауѓа болады:
-
кµп өтпелі ±йымдастыру. М±нда єрбір фаза тєуелсіз болып,басќаруды µзініњ берілгендер толыќ µњделіп біткен соњ ѓана келесі фаза береді.
-
Бір өтпелі ±йымдастыру. М±нда барлыќ фаза бір ѓана процесс болып, берілгендерді бір – біріне ‰лкен емес ‰зінділер ( фрагмент) мен беріп отырады. Екі негізгі варианттыќ негізінде олардыњ єр т‰рлі ‰йлесімдерін ќ±руѓа болады.
-
Транслятор блоктарыныњ кµп өтпелі µзара єрекеттесуініњ ±йымдастырылуы.
Блоктардыњ µзараєрекеттесуініњ б±л т‰рі тµмендегі суретте келтірілген.
Лексикалыќ анализатор бастапќы тексті толыќ µњдеп, барлыќ алынѓан лексикалардан т±ратын тізбеті шыѓарады. Б±дан соњѓана басќару синтаксистік анализаторѓа беріледі. Синтаксистік анализтор лексикалар тізбегін ќабылдап алып, оныњ негізінде аралыќ кµріністі не обьектіні модеьді т‰зеді. Обьектілі модельді т‰гел т‰зіп болѓан соњ, ол басќаруды код генераторына береді. Код генераторы тілдіњ обьектісі моделі негізінде машинаныњ кодтыи т‰зеді.
3. Көпөтпелі варианттыњ артыќшылыќтары деп мынаны айтуѓа болады:
-
Жеке фазалардыњ ерекшеленгендігі, б±л олады бір – бірінетєуелсіз ж‰зеге асыруѓа, ќолдануѓа м‰мкіндік береді.
-
Єрбір фаза ж±мысыныњ нєтижесінде алынѓан берілгендерді сыртќы есте сќтау ќ±рылѓыларында саќтау жєне керек кезде ќолдану м‰мкіндігі.
-
Фазаларды шаќыру шыѓын транслятор ж±мысына кеткен оперативті жады кµлемін азайту м‰мкіндігі.
Кемшіліктері деп мыналарды жатќызуѓа болады.
-
Аралыќ мєлімет кµлемініњ ‰лкен болуы, бірнеше уаќытта олардыњ тек аз бµлігі таллап еттіледі.
-
Фазалардыњ біртіндеп орындалуы жєне опертивті жадын ‰немдеу маќсатында сыртќы ќ±рылѓыларды ќолдану есебімен трансляция жылдамдыѓыныњ баяулауы.
М±ндай вариант к‰рделі синтаксис жєне синтатикалыќ ќ±рылымѓа ие программлау тілдері трансляторын ќ±руда ыњѓайлы болады.М±ндай жаѓдайларда транслятцияны бір µту мен ж‰зеге асыру ќиын, алдыњѓы нєтижелер арќылы берілгендер ретіњнде алу жењіл болады. Тілдердіњ к‰рделі синтаксистік жєне семнтикалыќ ќ±рылымы талап етілетін тєуелділіктерді орнату ‰шін ќосымша µтулерді керек ету м‰мкін. Жалпы µтулердіњ саны 10 – нан артыќ болуы м‰мкін µтулер санына программада тілдіњ конкрет м‰мкіндігі пайдалануѓа есер етеді : айнымалылар мен процедураларды ќолдаанылѓаннан кейінгі сипатталу, ‰нсіз келісім бойынша сипаттау ережесін пайдалану т.с.с.
Лекция 8 Тақырыбы: Транслятор блоктарының өзараәрекетінің бірөтпелі ұйымдастырылуы.
Т ранслятор блоктарының өзараәрекетінің бірөтпелі ұйымдастырылуы.
-
Артықшылықтары мен кемшіліктері
1. Компилятор блоктарының өзара әрекеттесуін бірөтпелі етіп ұйымдастырудың бір түрі суретте көрсетілген.
Мұнда трансляция процесі келесі түрде өтеді. Лексикалық анализатор бір лексеманы алуға қажетті бастапқы текст бөлігін оқиды. Лексеманы құрып болған соң, синтаксистік анализаторды шақырып,оған құрылған лексеманы береді. Егер синтаксистік анализатор аралық көріністің кезектегі элементін түзе алса, онда оны түзген соң, құрылған фрагментті код генераторына береді. Кері жағдайда синткасистік анализаторбасқаруды сканерге (лексикалық анализ-р)береді. Бұл кезектегі лексеманың орындалып болғаны және жаңа берілгендердің керек екендігін білдіреді.
Код генераторы аралық көріністің фрагментін алып, сәйкес обьектті код фрагментін құрады. Бұдан соң басқару синтаксистік анализаторға беріледі.
Бастапқы текст біткен соң және аралық берілгендер әрбір блок бойынша өңделіп болған соң лексикалық анализатор программа аяқталу процесін инициализация жасайды.
Бір өтімді трансляторларда көбірек басқарудың басқаша схемасы қолданылады. Мұнда негізгі блок рөлін синткасистік анализатор атқарады. (сур. көрс)
Лексикалық анализатор және код генераторы шақырылатын көмекші программалар рөлінде болады. Синткасистік анализаторға кезекті лексема қажет болса, ол сканерді шақырады. Аралық көрініс фрагментін түзген соң, код генераторын шақырады. Трансляция процесінің аяқталуы соңғы лексеманы өңдеп болған соң синткасистік анализатор арқылы инициализация жасалынады.
2. Бір өтімді схеманың артықшылықтарына аралық берілгендердің көлемі үлкен болмауы,фазаларды бір процеске үйлестіру есебінен өңдеу жылдамдығының жоғары болуы және сыртқы есте сақтау құрылғыларын пайдаланбауды жатқызуға болады.
Кемшілігіне мыналар жатады: трансляцияның мұндай схемасынкүрделі құрылымды тілдер үшін іске асырудың мүмкін болмауы,комплексті анализ және оптимизация үшін қолдануға болатын аралық берілгендердің болмауы.
Мұндай схема компилятор, сол сияқты интерпретаторларда да семантикалық және синткасистік құрылымы қарапайым тілдер үшін қолданылады. Мысал ретінде Basic, Pascal тілдерін атауға болады.
Классикалық интерпретатор әдетте бір өтімді схема бойынша құрылады. Өйткені тікелей ( непосредственно) орындау аралық көріністердің жекеленген фрагменттері деңгейінде жүзеге асады.
М ұндай интерпретатор блоктарының өзара әрекеттесуінұйымдастыру суретте көрсетілген.
Достарыңызбен бөлісу: |