
- •С. Торайгыров атындағы Павлодар мемлекеттік университетінің Факультет кеңесінде құпталды
- •1.2 Формалдық грамматика типтері
- •1.3 Шығару ағашы. Сол жақты және оң жақты шығарулар
- •1.4 Көпмағыналы грамматикалар
- •1.5 Грамматика кестелерін беру тәсілдері
- •1.6 Грамматикаларды құру әдістері
- •2.1 Тудырмайтын, жетпейтін және пайдасыз символдарды анықтау
- •2.2 Сол жақты рекурсивті және шынжырлы ережелердің шығарылуы
- •2.3 Қысқартылмайтын грамматикалардың түрленуі
- •2.4 Дүкендік автоматтар
- •2.5 Дүкендік автомат жұмысы
- •3.1 Азаймалы танушылар және -грамматикалар
- •Бөлінген ауыспалылар.
- •3.2 Детерминалданған азаймалы танушылардың тұрғызылуы
- •3.4 Дүкендік автоматтың тұрғызылуы
- •3.5 Өрлеме танушылар
- •3.6 Жою ережелерімен грамматикалар үшін өрмелі танушылар
- •4.1 Ауысуды мазмұндау тәсілдері мен түрлендірушілер
- •Ауысу немесе трансляциялауды мазмұндау
- •4.3 Жақшасыз формулалар
- •4.4 Дүкендік түрлендірушілер
- •5.1 Атрибуттық трансляциялау грамматикалары мен түрлендірушілер
- •5.5 Жұмысын мазмұндау
- •Өрлемелі атрибуттың түрлендірушілерді тұрғызуы
- •6.2 Асинхронды автоматтар
- •Әдебиеттер
- •Мазмұны
Ауысу немесе трансляциялауды мазмұндау
Қарастырылып отырған кіріс шынжырына арналып құрылған постфикстік жазылым дұрыс екенін байқаймыз.
Трансляциялау
грамматикасы
(
-грамматика)
деп
символдары
іс-әрекет
символы
деп
аталатын
терминалдық
символдар
жиыны
кіріс
және
шығыс
символдар
жиынына
бөлінген
-грамматика
аталады.
– грамматикасына мысал ретінде келесі грамматиканы келтіруге болады:
Кіріс
және шығыс алфавиттерінде бірдей
символдарды қолданғанда шатаспау үшін
шығыс символдарын фигуралық жақшалармен
белгілейміз. Бұндай белгілеулермен
қолданылатын
грамматикасының ережесі төмендегідей
болады:
Трансляциялау грамматикаларында шшығулар басқа -грамматикаларда сияқты орындалады.
Әрбір –грамматикадан біреу – кіріс шынжырын, ал екіншісі – шығыс шынжырын құруға мүмкіншілік беретін екі грамматика алуға болады.
Әрбір
жай
-кестелі
үшін трансляциялаушы
грамматикасын құруға болады және
-кесте
мен
-грамматикасы
тудыратын ауысымдар сәйкес келеді:
.
Бұл
формуланың
айқындығын
көрсету
үшін
-кестесі
бойынша
берілген
-грамматикасының
тұрғызылу
тәсілін
мазмұндайық.
Айтарлық
-кестелі
берілген және
-грамматикасын
құру керек.
Бұны орындауға болады, себебі -кестесі жай және оның әр ережесі үнемі бір терминал емес символдарды бір ретпен қолданылады. әңгімеленген тұжырымды мысалмен толықтырайық:
шынжырының
құрылған грамматиканың ережелерін
қолданумен ауысымы келесі шығарылу
көмегімен алынуы мүмкін:
Алынған шынжырдан алдымен шығыс, одан кіріс символдарын шығара отырып келесі шығару жұбын аламыз:
ол -кестесінде берілген шығыс нәтижелеріне сәйкес келеді.
4.3 Жақшасыз формулалар
Күнделікті тәжірибеде қолданылатын және құрамында жақшасы бар арифметикалық формулалар инфикстік формула деп аталады, себебі операция белгісі операнд араларында орналасқан. Бұндай формулаларда іс-әрекеттің орындалу реті операциялардың жасы мен жақшаларына байланысты анықталады.
Бұндай формулаларды есептеу мен компиляциясы операцияның орындалу ретін анықтау мақсатымен оларды алдын-ала талдауды көздейді. Жақшасыз арифметикалық формулаларды жазу формулалары бар. Оларда іс-әрекет реті формуладағы операциясы белгілерінің ретімен беріледі.
Бұндай жазу формалары поляктік немесе жақшасыз жазылым деп аталады. Поляктік жазу операция белгісі операндтардан ілгерірек болатын префикстік және операция белгісі операндтан кейін жүретін постфикстік болады. Жақшасыз формулаларды есептеу мен компиляциясы жақшалы формулаларға қарағанда жеңілдеу, себебі операция мазмұндау ретімен орындалып, алдын-ала талдауды қажет етпейді.
Бұл
анықтама
берілген
инфикстік
формуланың
ПрПЗ
құру
ретін
анықтайды.
Мысалы
формуласы
үшін
ПрПЗ
тұрғызылуын
келесідей
орындауға
болады.
Бірінші
орындалатын операция операндыларын
белгілейік:
және
Анықтамаға
сәйкес
формуласының префикстік жазылымы бұл
,
бұнда
,
және
формулаларының
префикстік жазылымдары. Бұл
формулаларына постфикстік жазылымды
тұрғызуды орындай келе аяғында
түріндегі нәтижеге жетеміз.
ПрПЗ есептеуін келесі тәсілмен көрсетуге болады:
1 формуланы солдан оңға қарай артынан екі операнд жүретін операция белгісін тапқанша қараймыз.
2 операцияны орындаймыз және нәтижені таңдалған үштік орнына жазамыз.