Транслятор фазаларының функциялары

  1. Лексикалық анализатор (сканер деген атпен белгілі) лексемалар деп аталатын, кіретін символдар тізбегінің оқылуын және олардың элементар конструкцияларға бірігуін қамтамассыз етеді. Әрбір лексеманың классы және мәні бар. Әдетте лексемалар роліне тілдің элементар констукциялары, мысалы идинтификатор, нақты сандар, коментарилер кіреді. Алынған лексемалар синтаксистік анализаторға беріледі. Лексикалық анализатор транслятордың міндетті бөлігі болып есептелмейді. Бірақ ол трансляциялау процесінің тиімділігін жоғарылатады.

Синтаксистік анализатор, түсіп жатқан лексемаларды, программаның

синтаксистік құрылымы және тілдің объектілі моделін қалыптастыру арқылы семантикалық анализді пайдаланып берілген программаны жолдауды жүзеге асырады. Объектілі модель, ұғымдар мен семантикалық байланыстар арасындағы байланыстармен толықтырылған синтаксистік құрылымды көрсетеді. Бұл байланыстар:

— айнымалыларға сілтеме, берілгендер типтері және процедура аттары.

— командалардың орындалу ретін анықтайтын байланыстар.

— тілдің объектілі моделінің элементтерінің енгенін анықтайтын және басқа байланыстар.

Осылайша синтаксистік анализатор транслятордың күрделі блогы болып саналады. Сондықтан оны мынадай бөліктерге бөлуге болады:

— танушы (распознователь)

— семантикалық анализ блогы

— аттар таблицасынан және синтаксистік құрылымынан тұратын объектілі моделі немесе аралық берілгендер.

  1. Синтаксистік анализатордың жалпыланған құрылымы төмендегі суретте көрсетілген:

Танушы лексемалартізбегінқабылдап, соның негізінде қолданылатынережелерге сәйкесайқындауды жүзегеасырады.

Ережелердің айқындаупроцессі дұрыс өткен лексемалар семантикалық анализаторға беріледі. Ол атауларкестесінқұрады жәнесинтаксистікқұрылым фрагменттерін белгілепфиксируетқояды.

Бұдан бөлекатаулар кестесімен синтаксистікқұрылымарасында қосымшасемантикалықбайланыстар да фиксация жасалынадынәтижедепрограммалау тілініңсинтаксискебайланыспағанпрограмманың обьектті модель құрылады.

Тіл обьекттерінің толығыменкөшіретін синтаксистікқұрылымның орнына,оның ықшамдалған

аналогын құру жиі кездеседі.Оныаралық көрініс деп атайды.

Қателеранализаторы транслятордың әртүрліблоктарындатуындаған қателер

туралымәліметалып отырады. Алынғанмәліметті пайдаланыппайдаланушыға берілетінхабарламаныдайындайды.

Бұдан басқа бұлблокайқындау разборжұмысыәрі қарайжалғасу үшін қатенідұрыстап көругетырысуымүмкін.

Оғантранслянушыны әріқарайжалғастыру мүмкінболмаған жағдайларда программаныңкоррект аяқталуына тиістіәрекеттер дежүктеледі.

Код генераторыобьектілі моделіне аралық көрініснегізінде обьектілі машинаныңкодын құрады.Кодтықұру барысыжалпыланған командаларды конкретесептеуіш машинакодынатүрлендіруқажеттілігімен байланысты қосымша семантикалық анализбенқатар жүреді.

Мұндай анализбарысында түрлендірумүмкіндіктері түпкілікті анықталып,ең тиімді вариантытаңдалады

Кодты генерациялаудың өзікомандалардыбіртүрденбасқатүрінекодтау болыптабылады.