Лекция Тақырыбы: Алфавиттер, тізбектер және тілдер


Лекция 10 Таќырыбы: Тьюринг машинасы



бет5/13
Дата14.06.2016
өлшемі1.44 Mb.
#135164
түріЛекция
1   2   3   4   5   6   7   8   9   ...   13

Лекция 10

Таќырыбы: Тьюринг машинасы


  1. Тьюринг машинасы ұғымы

  2. Тьюринг машинасының формальді ұғымы



Лекция 11

Таќырыбы: Тақырыбы: Транслятордың жалпылама құрылымы



1. Транслятор. Компилятор. Компилятор фазалары

2. Транслятордың жалпыланған құрылымы
1. Транслятор. Компилятор. Компилятор фазалары

Транслятор-қандай да бір программалау тілінде жазылған программалары объектілі тілде бейнеленген жұмыс істейтін программаға айналдыратын арнайы программа. Бұл анықтама трансляцияланатын программалардың барлық түрлеріне қатысты. Мұндай программалардың трансляциялау процесі бойынша өз ерекшелігі бар. Қазіргі уақытта трансляторлар негізгі 3 топқа бөлінеді:

1. Ассемблер. 2. Компилятор. 3. Интерпритатор.



Компилятор-программалау тілдерінің бірінде жазылған программаны машиналық тілдегі программаға трансляциялауды орындайтын қызмет көрсетуші программа. Ассемблер сияқты программаның бір тілден екінші тілге айналдыруды қамтамасыз етеді. Берілген тілдің командаларының машиналық тілдің командаларынан әжептеуір айырмашылығы бар. Мысалы: кейбір тілдердің бір командасы машиналық тілдің 7-10 командасына сәйкес келеді. Программалау тілдерінде алдын-ала сипатталатын берілгендердің типтері қолданылады. Себебі, программалау алгоритмдерді кодтауға емес берілгендер мен кластардың мұқият ойластырылған құрылымына сүйенеді. Мұндай тілдерден трансляциялау процесі компиляция деп, ал берілген тілдер жоғары программалау тілдері деп аталады.

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

Компилятор мен интерпретатордың ұқсастығын ескере отырып, компиляторда бар фазаларды қарастырсақ. Онда

1. Лексикалық анализдің фазасы. Лексемаларды аралық көріністерге келтіру (мысалы,идентификаторлар мен аиыру белгілерін сандармен ауыстыру.)

2. Синтаксистік анализдің фазасы. Ол мыналардан тұрады.


    • синтакситік құрылымды танып білу.

    • таблицамен жұмыс істеуді жеке асыратын, семантикалық

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

3. Кодты генерациялау фазасы. Ол мыналарды іске асырады:



    • аралық бейнелердің немесе тілдің объектілі моделі

компонентінің семантикалық анализі.

объектілі кодқа өткізу.

Трансляциялау процесінің негізгі фазалар мен қатар қосымша фазалары бар:

- аралық берілгендердің анализінің дұрыстығынан

- аралық берілгендердің оптимизациялаудан тұратын.

1. Аралық берілгендерді зерттеу және оптимизациялау фазасы. Бұл этапта барлық идентификатор және басқа операндалардың түрлері мен типтері не контроль жасалады.Мұнда әдетте бастапқы программаны арлық жазу формасына (көрінісіне)түрлендіру (мысалы,польски формасына )синтаксистік анализбен бір мезгілде жүзеге асады.

2. Объектілі кодты оптимизациялау фазасы.

Бұл этаптардың барлығында да түрлі кестелермен жұмыс жүргізіледі.Дербес жағдаида әрбір блок үшін (егер тілде мұндаилар бар болса) ішкі сипатталған аинымалылар өз атрибуттарымен бірге есте сақталады. Шартты түрде бұл этаптарды келесі түрде беинелеуге болады.





Интерпретатордағы айырмашылық, кодты генерациялау фазасы.

Аралық берілгендердің немесе тілдің объектілі моделінің элементтерінің эмуляция фазасымен ауыстырылған.

Сондай-ақ интерпретаторда әдетте аралық берілгендерді оптимизациялау жүрмейді, бірден оларда эмуляциялау жүреді.


2. Транслятордың жалпыланған құрылымы

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




Лекция 12.

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


1. Лексикалық және синтаксистік анализатор функциялары

2. Синтаксистік анализатордың жалпыланған құрылымы


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   13




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет