Хелпикс

Главная

Контакты

Случайная статья





Трансляторлар



 

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

Жоғ ары дең гейлі тілдерді программа жасауда пайдалану 60-шы жылдары басталды. Содан бері бү гінгі кү нде дейін белгілі есептерді шешуге арналғ ан ә мбебап, сандай-ақ бағ дарланғ ан кө птеген ә ртү рлі тілдер жасалып пайдаланылып келеді.

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

Қ азіргі кезде жоғ ары дең гейлі программалау тілдері былай бө лінеді:

· процедуралы (кө птеген классикалық программалау тілдері, мысалы, FORTAN, PASCAL, BASIC, C);

· логикалық (ЛИСПЫ, ПРОЛОГ т. б. );

· объектік-бағ дарланғ ан (С++, Java т. б. ).

Қ ысқ а программаларды жасауда процедуралық программалау тілдерін пайдалану ың ғ айлы; логикалық программалау тілдерін алгоритмдерді теориялық зерттеуде жасанді интеллекті оқ ытып ү йрену жұ мыстарында деректер базасымен жасалатын операцияларда ө ндіріс объектілерін жә не ә скери бө лімдерді басқ ару жү йелерін басқ аруда, ал объектік-бағ дарланғ ан программалау тілдерін бә рінен де ү лкен жә не кү рделі программаларды (Мысалы, компьютерлік ойындарда), жасақ тауда пайдаланғ ан жө н.

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

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

Ассемблердің ендірілетін тілі мнемокод, макроассемблер-макротіл, ал компилятордікі-поцедуралы бағ дарланғ ан тілдер боып табылады. Осығ ан байланысты ендірілетін тілдерді транцлятордың тү рлеріне қ арай ассемблер тілі, макроассемблер тілі деп аталады т. с. с.

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

Трансляциялау кезең імен орындау кезең дері уақ ыт бойынша ығ ысып ауысып келіп отыратын транслятор интерпретатор деп аталады.

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

Транслятордың жұ мысын тө рт кезең ге бө луге болады:

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

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

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

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

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

 

 

 

 Трансляциялаудың жалпы схемасы мына тө мендегі суретте кө рсетілген.

 

Алғ ашқ ы модуль
Ендірілетін - - - -                                - - - - - Тө мендегі немесе

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

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

 

Транслятор
                                                  

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

                                                       тү рлендіру

 

 


Объектік программа
Шығ арылатын --                                        - - - Машина тіліндегі 

   тіл.                                                                 немесе тө менгі                                                                                              

                                                                          дең гейлі тілдегі

                                                                     программа.

 

 

Сонымен бастапқ ы модульді машина тілдегі немесе тө менгі дең гейлі тілдегі объектік программағ а тү рлендіретін программаны трансляциялау деп атайды.

Ендірілетін тілге, трансляциялау кезең дерінің ө ту ретіне жә не программа операторларының орындалуына байланысты транслятордың мынадай тү рлері болады:  

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

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

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

 

 

 

 




  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.