Қазақстан республикасы білім және ғылым министрлігі аймақтық Әлеуметтік инновациялық



бет26/130
Дата06.02.2022
өлшемі18,61 Mb.
#55921
түріЛекция
1   ...   22   23   24   25   26   27   28   29   ...   130
Байланысты:
6. leksia

Аударғыш — бұл арнайы программа бастапқы мәтіндерді автоматты түрде жұмыс істейтін программаларға айналдырады. Аударғыштардың екі түрі бар: компиляторлар және интерпретаторлар.
Компилятор бастапқы кодты машиналыққа айналдырады. Нөтижесінде аталмыш объектілі модуль пайда болады. Ол машиналық кодта жазылған, бірақ ол да әлі жүмыс істей алмайды-оған программист қолданған стандарттық процедураларды қосу керек. Бұл процедуралар программалар тіліне қоса тіркелген кітапханалардан таңдалады.
Процедураларды кітапханалардан таңдау және оларды объектілі кодқа қосу операциясын арнайы программа — құрастырушы (байланыстар редакторы) орындайды. Содан кейін ғана жүмыс істейтін программа пайда болады, оны жүмыс коды немесе атқарылушы код деп атайды.
Транслятор арқылы өңделіп алынған программа тікелей компьютерде орындалады немесе оны басқа транцлятордың өңдеуіне тура келеді. Трансляциялау мен программаның орындалуы уақыт жағынан бөлінген болады. Интерпретатордан басқа трансляторларда алдымен барлық программа трансляцияланады содан кейін орындалады. Осы режімде жұмыс істейтін трансляторлар компиляциялаушы типті трансляторлар деп аталады. Егер мұндай транслятордың ендірілетін тілі процедуралы-бағдарланған тіл болса, онда транслятор компилятор деп аталады.
Трансляциялау кезеңімен орындау кезеңдері уақыт бойынша ығысып ауысып келіп отыратын транслятор интерпретатор деп аталады.
Машина тілінде немесе жүктелуші тілде ұсынылған программа транслятор жұмысының нәтижесі болып табылады.
Транслятордың жұмысын төрт кезеңге бөлуге болады:

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

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

  • объктік программаны жасау. Бұл кезеңде шын тілдің баламалы сөйлемдерінің мәні зерттеліп, симантикалық талдау жасалады;

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

Шығарылатын есептің сипатына және пайдаланушылардың категориясына байланысты трансляторларға әртүрлі талаптар қойылады. Мысалы, берілген программалау тілін игергісі келетін жаңадан бастаушыларға транслятордың ең маңызды сипаттамасы диагностикалық хабарларының толық әрі қарапайым болуы болып табылады. Егер компьютерде сплыстырмалы түрде алғанда көп уақыт есептеуді қажет етпейтін көптеген майда есептер шығарылатын болса, онда сол есептерді шығару үшін алынған программаның сапасына айтарлықтай мән берілмейді. Транслятордың жұмыс істеу жылдамдығы үлкен рол атқарады.
Ұзақ есептелетін күрлелі есептер үшін талап етілетін машиналық уақытты және программаның орындалуы үшін қажетті жадтың көлемін ескере отырып транслятордың жасаған программаның ұтымдылығы ең маңызды рол атқарады. Мұндай ұтымды программалар алу трансляциялау алгоритмдерін күрделендіре түсуді талап етеді, ол трансляторды күрделендіре түсуге және оның жұмыс істеу уақытын арттыруға алып келеді. Осыған байланысты программалау жүйесінің өзінде тіптен бір программалау тілі үшін де бірнеше әртүрлі трансляторлар қарастырылады, ал пайдаланушы өзіне ең керекті трансяторларды таңдап алады.
Трансляциялаудың жалпы схемасы мына төмендегі суретте көрсетілген.
Е
Алғашқы модуль
ндірілетін - - - - - - - - Төмендегі немесе
тіл жоғары деңгейлі
тілдегі программа

Транслятор



- - - - - - - - - Алғашқы модульді
түрлендіру

Ш
Объектік программа


ығарылатын -- - - - Машина тіліндегі
тіл. немесе төменгі
деңгейлі тілдегі
программа.
Сонымен бастапқы модульді машина тілдегі немесе төменгі деңгейлі тілдегі объектік программаға түрлендіретін программаны трансляциялау деп атайды.
Ендірілетін тілге, трансляциялау кезеңдерінің өту ретіне және программа операторларының орындалуына байланысты транслятордың мынадай түрлері болады:

  1. ассамблер;

  2. компилятор;

  3. интерпретатор.

Компиляторлар программалаудың барлық танымал тілдері, соның ішінде Бейсик үшін де құрылған.
Компилятордан басқа интерпрекаторлар да қолданылады. Бұл мәтінді алдын-ала емес, программаның тікелей жұмысы барысында өңдейтін аударғыштар. Интерпретатор дегеніміз бастапқы файлдан командаларды оқып процессор тіліне «жол-жөнекей» (тікелей программаның жұмысы барысында) аударатын программа-делдал.
Программалау тілдерінің көпшілігі үшін (бәріне деуге болмас) компиляторлар да, интерпретаторлар да жасалған. Программалау тілінің бір стандартын қолданған сайын программаның интерпретатор басқаруымен орындалуының нәтижесі мен компилятормен жасалған атқарылушы файлды іске қосу нәтижесі толық сәйкес келеді.
Жоғары деңгейлі тілдің трансляторы трансляциялау кезеңдерінің өту реттілігіне және программа операторының орындалуына байланысты интерпретатор немесе компилятор деп аталады. Интерпретатор әрбір жеке операторды трансляциялаған соң, оның тікелей тез орындалуын қамтамасыз етеді, яғни трансляция кезеңі мен орындалу кезеңі кезекпен қайталанады. Программаны интерпретациялау схемасы мына суретте көрсетілген.

Интерпретатор



Жоқ Иә

Программа операторын ендіру

Операторды ішкі пішінде көрсету

Алғашқы модуль

Операторды трансляциялау


Операторды орындау


Жоғарғы деңгейлі


тілдегі программа







Компилятор программаның барлық операторларын трансляциялайды, ал программаның орындалуы жалпы алғанда оның қатынасуынсыз өтеді, яғни жеке операторларды трансляциялау кезеңдері тікелей бірінен соң бірі өтеді және программаның орындалуынан толық оқшауланған болады. Программаны компиляциялаудың қысқартылған схемасы мына суретте көрсетілген.
Компилятор

Жоқ Иә




Программа операторын іздеу


Объектік программа

Кезектегі операторды трансляциялау

Объектік модуль


немесе төменгі
деңгейлі тілдегі
программа


Жоғарғы деңгейлі тілдердің көпшілігі үшін комбиляторлар жасалған. Интерпретаторлар жасалған тілдердің мысалына BASIC және FOCAL тілдерін атауға болады. Компьютерлердің программалау жүйесінде комбилятордың екі түрі бар. Бірінші түрдегі комбиляторлар бастапқы модульді машина тіліндегі объектік программаға түрлендіреді, яғни объектік модульді ассемблар тіліндегі объектік программаға түрлендіреді. Екінші түрдегі комбилятор қалыптастырған осы программадан объектік модульді алу үшін қосымша ассемблерді пайдалану қажет болады.






Достарыңызбен бөлісу:
1   ...   22   23   24   25   26   27   28   29   ...   130




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

    Басты бет