5-тақырып Атрибуттық трансляциялау грамматикалары мен түрлендірушілер
5.1 Атрибуттық трансляциялау грамматикалары мен түрлендірушілер
Синтаксистік-басқармалы кестелер мен трансляциялау грамматикалары ауысым деп аталатын кіріс және шығыс тілдер шынжырларының арасында сәйкетікті беруге мүмкіндік береді.
Семантиканы тапсыру үшін түрлі тәсілдер қолданылады, яғни олар: -грамматикалар, вен метатілі, аксиоматикалық және денотационды әдістер және атрибуттық трансляциялау грамматикалары ( -грамматикалары).
Бұл бөлімде қарастырылатын -грамматикалары басқа трансляциялау грамматикаларынан грамматика символдарына семантикалық ақпаратты көрсететін атрибуттар, қосып жазылады, ал грамматика ережелеріне атрибут мәндерін есептеу ережелері сәйкестіріледі. Атрибуттардың тағайындылығын талдау үшін бірнеше мысал келтірейік. Егер кіріс тілі константын қолдануды көздесе, онда констант атрибуты ретінде оның мағынасын алуға болады.
Констант мағынасын қисық сызықпен, мысалы түрінде жазуды уәделесейік. Егер -грамматикада {қосу} операциялық символы қолданылса, онда бұндай символдардың атрибуты ретінде операнд мағынасы мен нәтижені алуға болады. Атрибуттарды символдарымен белгілей келе атрибуттары бар операциялық символдарды {қосу} түрінде жазамыз.
-грамматикада екі түрлі атрибуттар қолданылады: мұра етілуші және синтезделуші. Мұра етілуші атрибуттар мағынасы грамматика ережесінің сол жағында болатын шынжыр атрибуттарының мағынасы бойынша шығару қадамының орындалуы кезінде анықталады.
Ал синтезделу атрибутының мағынасының есептелуі шығыс қадамының келесі қадамдары орындалған кезде анықталуы немесе қалдырылуы мүмкін. Жалпы түрде -грамматика қасиеті келесі тәсілмен тұжырымдалады. Трансляциялау грамматикасын атрибуттық грамматика немесе -грамматика деп келесі жағдайларда атайды:
Егер грамматика символдарына бір немесе бірнеше атрибуттар қосылып жазылған және әр атрибут үшін жіберілетін мағына жиыны анықталған болса.
Егер атрибуттар мұра етуші және синтезделуші болса.
Әр грамматика ережесіне солда орналасқан атрибут мағынасын анықтайтын оң жақтағы иемдену функциясымен оператор түрінде атрибуттарды есептеу ережесі берілген болса.
Бастапқы символды мұра етілетін атрибут үшін бастапқы мағына берілген болса.
Іс-әрекет символдарының синтезделу атрибуттарының мағынасын есептейтін функциялар бұл символдың басқа атрибуттарына бағыныңқы болса.
Сол жақты шығарумен атрибут мағыналарын есептеуді көрсету
Егер атрибут мағынасы әлі анықталмаса және іс-әрекетті орындай алмаса, онда есептеу ережесін қойып қойған есептеулер тізіміне қосамыз.
Егер атрибуттарды есптеу ережесін орындауға болып және нәтижесінде кейбір атрибуттар мағынасы анықталатын болса, онда қойып қойған ережелер тізімін қарастырып алынған мағына көмегімен есептеуге келетін барлық атрибуттар мағынасын табамыз. Жаңа мағыналар жаңа ережелерді табуға әкелуі мүмкін, сондықтан есептеу үрдісін мүмкін болғанша қайталай береміз және атрибуттарды есептеу ережелерін қолданған соң жоямыз.
Берілген шығаруды келтірілген грамматикада орындауды мағыналы констатары бар шынжыры мысалында қарастырайық:
Есептеуді қолдану алынып қойылған шығару ережелерінің нәтижелері тізімі
;
жолдарында шынжырында құру кезінде атрибуттарды есептеу ережелері алынып қойылғандарады есептеу тізіміне енгізіледі.
Шығару шынжырында бірінші константтың пайда болуы тізімдегі үш ереженің орындалуына әкеледі. Осыған ұқсас алынып қойылған есептеулер тізімінің қысқартылуы және жолдарда шынжырды жасағаннан кейін орындалады. жолдағы іс-әрекет символы алынған атрибут мағынасын шыға беріске жібереді.
5.2 АТ-грамматикаларын қолданумен жасалған синтаксистік талдау. Синтаксистік талдау үрдісі
Айтарлық бұндай шынжырдың синтаксистік талдауының міндеті жолы түрінде әрбір жады элементінің ауыспалысын ерекшелеу мен бұл жолдың көрсеткішін -ға енгізу делік. Бұл іс-әрекетті орындаудың шығыс мәліметі болып -ның бірінші бос элементіне көрсететін көрсеткіш табылады. Мазмұндауды өңдеп болған соң бұл көрсеткіш мағынаны ауыспалыларға жады бөлген соң -ның бірінші бос элементін анықтау керек.
Қарастырылып жатқан түрдің шынжыр синтаксисі бастапқы символы бар келесі грамматика беруі мүмкін:
Бастапқы символына екі атрибутты береміз: бастапқы мағынасы -ның бірінші бос элементіне көрсететін түрдегі мұра ететін атрибуты және ауыспалыларға жадыны шығарғаннан кейін -ның жаңа бос элементіне мағынасы көрсеткіш болатын синтездеу атрибуты. Сондай-ақ тізімнің жалғасуын белгілейтін терминал емес символына да екі атрибутты жазып қоямыз. Бір атрибуты мұра етілуші болу керек. Ол -ға шығару кезінде келесі ережеге көрсеткіш мағынасын беру керек. Басқа атрибуты – синтезделген. Ол көрсеткішке шыға берісті көрсету үшін қолданылуы қажет.
Достарыңызбен бөлісу: |