- Әр түрлі программалау тілдерінің жалпы қасиеті мен заңдылықтары осы тілдердің трансляторларына да тән. Оларда берілген текстерді түрлендірудің ұқсас процестері жүреді. Бұл процестердің өзара әрекеті әр түрлі жолмен ұйымдастырылғанына қарамастан орындалу процесі бірдей нәтиже әкелетін функцияларды ерекше белгілеуге болады. Мұндай функцияларды трансляциялау процесінің фазасы деп атайды.
Компилятор мен интерпретатордың ұқсастығын ескере отырып, компиляторда бар фазаларды қарастырсақ. Онда
- Лексикалық анализдің фазасы.
- Синтаксистік анализдің фазасы. Ол мыналардан тұрады.
- синтакситік құрылымды танып білу.
- таблицамен жұмыс істеуді жеке асыратын, семантикалық
бейнелерді немесе объектілі моделін тудыратын семантикалық талдау.
- Кодты генерациялау фазасы. Ол мыналарды іске асырады:
- аралық бейнелердің немесе тілдің объектілі моделі
компонентінің семантикалық анализі.
- Аралық берілгендерді немесе объектілі модельдерді
объектілі кодқа өткізу.
Трансляциялау процесінің негізгі фазалар мен қатар қосымша фазалары бар:
— аралық берілгендердің анализінің дұрыстығынан
— аралық берілгендердің оптимизациялаудан тұратын.
- Аралық берілгендерді зерттеу және оптимизациялау фазасы.
- Объектілі кодты оптимизациялау фазасы.
Интерпретатордағы айырмашылық, кодты генерациялау фазасы.
Аралық берілгендердің немесе тілдің объектілі моделінің элементтерінің эмуляция фазасымен ауыстырылған.
Сондай-ақ интерпретаторда әдетте аралық берілгендерді оптимизациялау жүрмейді, бірден оларда эмуляциялау жүреді.
- Программаның өңделетін текстінде бар барлығына бірдей фаза-анализ процесі мен қателерді жөндеу компилятордың фазалары есепке алынған жалпыланған құрылымы төмендегі суреттегідей:
Ол лексикалық анализатордан, синтакситік анализатордан, код генераторынан, қателер анализаторынан тұрады.
Интерпретаторда код генераторының орнына эмулятор қолданылады, онда аралық берілгендерден басқа алғашқы берілгендер беріледі. Эмулятор шығысында есептеулер нәтижесі беріледі.
Интерпретатордың жалпыланған құрылымы: