7.2-сурет – Синтаксис және семантика
Семантиканың формальды анықтамасы бүгінгі күнге дейін анықталмаған, сондықтан нақты қорытынды жоқ.
Формальды тілдердің семантикасын сипаттауда көптеген модельдердің түрлері мен әдістері құрастырылған (7.1-кесте).
7.1-кесте – Формальды тілдердің семантикасын сипаттаудың модельдері
Модельдер
|
Спецификациялар моделі, тілдің түрлі функциялары арасындағы қатынастар сипаттайды және де, егер бағдарлама осы қатынастарды жүзеге асырса онда ол спецификацияға қатысты дұрыс болып табылады
|
Аппликативты модельдер, осы тілде жазылған әрбір программа есептейтін функциялардың қолданылуы
|
Грамматикалық модельдер, грамматикаға кеңейтілулерді енгізуге негізделеді
|
Семантикаларды сипаттаудағы аталған әдістердің барлығы белгілі бір типті бөліп қарастыру көзделген – мәндер категориясы (семантикалық категориялар, примитивтер), сол арқылы және соның негізінде белгілі бір семантикалық тілде одан да күрделі ұғым беріледі.
Семантиканы сипаттау әдістері
Программалау тілдерінің семантикасын сипаттауда үш әдіс кеңінен тараған:
1) Операциялық (абстрактілі машинаның бір күйден екінші күйге өтуі), мысалы, П.Лендин машинасы;
2) Аксиоматикалық (программаны құрайтын объектілер жиынтығы), мысалы, Хоардың аксиоматикалық әдісі мен Флойдтың индуктивты тұжырымдау әдісі;
3) Денотациялық (программаға қатысты абстракциялар функциясы), мысалы, Д.Скоттың семантикалық домендер теориясы.
Транслятор - қандай да бір программалау тілінде жазылған программалары объектілі тілде бейнеленген жұмыс істейтін программаға айналдыратын арнайы программа. Бұл анықтама трансляцияланатын программалардың барлық түрлеріне қатысты. Мұндай программалардың трансляциялау процесі бойынша өз ерекшелігі бар. Қазіргі уақытта трансляторлар негізгі 3 топқа бөлінеді:
- ассемблер;
- компилятор;
- интерпретатор.
Ассемблер – символдық құрылымды машиналық тілдің командаларына айналдыратын (жүйелік) қызмет көрсетуші жүйелік программа. Ассемблердің ерекшелігі символдық бір команданы машиналық бір командаға трансляциялайды. Ассемблер тілі (автокод деп атайды). Жүйенің компьютердің командаларын қабылдауын жеңілдетуге және осы командалар жүйесінде программаларды жеңілдетуге арналған.
Компилятор – программалау тілдерінің бірінде жазылған программаны машиналық тілдегі программаға трансляциялауды орындайтын қызмет көрсетуші программа. Ассемблер сияқты программаның бір тілден екінші тілге айналдыруды қамтамасыз етеді. Берілген тілдің командаларының машиналық тілдің командаларынан әжептеуір айырмашылығы бар. Мысалы: кейбір тілдердің бір командасы машиналық тілдің 7-10 командасына сәйкес келеді. Программалау тілдерінде алдын-ала сипатталатын берілгендердің типтері қолданылады. Себебі, программалау алгоритмдерді кодтауға емес берілгендер мен кластардың мұқият ойластырылған құрылымына сүйенеді. Мұндай тілдерден трансляциялау процесі компиляция деп, ал берілген тілдер жоғары программалау тілдері деп аталады.
Интерпретатор – берілген программаны әрбір оператор бойынша трансляциялайтын және орындайтын арнайы программа немесе құрылғы. Компилятор сияқты программаны машиналық тілге айналдырмайды. Берілген тілдің командасын қабылдаған соң орындайды. Интерпритатордың кемшілігі программаны орындау жылдамдығының төмендігі. Интерпретаторды пайдаланатын программалар машиналық тілде жазылған программаға қарағанда 50-100 есе баяу орындалады (7.3-сурет).
7.3-сурет – Компилятор және интерпретатордың құрылымы
Достарыңызбен бөлісу: |