-
Синтаксистік анализ.
-
Жазу формалары.
1. Синтаксистік анализ -- лексемалар тізбегі тексеріліп, тіл синтаксисінің анықтамасында анық көрсетілген құрылымдылық шарттарыды қанағаттандыруы анықталатын процесс. Бұл – компилятордың ең күрделі бөлігі. Синтаксистік анализатор бастапқы программаны құрамдас бөліктерге ажыратады, оның ішкі аралық көрінісін түзеді, мәліметтерді символдар кестесіне және басқа кестелерге ендіреді. Бұларды орындау барысында толық синтаксистік контроль және мүмкіндігінше семантикалық контроль жүргізіледі. Іс жүзінде, бұл – синтаксистік басқарылатын программа. Мұнда синтаксисті семантикадан мүмкіндігіше айыруға тырысады. Синтаксистік анализатор бастапқы тіл конструкциясын тани алса, семантикалық процедураны шақырады. Өз кезінде семантикалық процедура берілген конструкцияға контроль жасап, мәліметтерді керек жерлерге ендіріп, айнымалылар сипаттамасынның қайталанбауын, типтерге сәйкес келуін т.б. тексереді.
2. Бастапқы программа сөйлемдері әдетте инфиксті формада жазылады. Операторы опералдары арасында жазылатын бұл форма біз үшін үйреншікті болғанымен., автоматтық есептеу үшін қолдануға келмейді. Мәселә оператордың деңгейлерін әрдайым есте ұстау және өрнекті анализдеу барысында “алдыңға” қарай жүгіріп көріп келіп отыруға тура келеді. Бұған қоса есетеу кезегін білдірген пайдалану да жұмысты күрделендіре түседі.
Жазудың поляк формасы инфексті формада альтернатив болып табылады (Польша математигі Лукович құрметіне аталған). Оның екі түрі бар: пост фиксті және префиксті. Әдетте поляк форма дегенде посфиксті жазу формасы түсініледі. Бұлардан бөлек, бастапқы программаның ішкі көрінісінің ағаш (синтаксистік) және тетрада формалары да қолданылады.
Ағаш. Айталық мынадай енуші тізбек берілсін і=(а+в)*с. Ағаш көрінісі былай беріледі.
Әрбір ағаш элементінің тек бір ғана “түбі” (“предок”) болады.
Ағаш төменнен жоғары қарай және солдан оңға қарай “оқылады. Ағаш бұл ең алдымен ыңғайлы математикалық обстракция
Іс жүзінде ағаш тізімдік құрылым түрінде жүзеге асуы мүмкін.
Жазудың поляк формасы. Өрнектерді жазудың 3 түрі бар:
-
Инфексті форма, мұнда оператор операндар арасында оранласады ( мысалы, “а+в”)
-
Постфиксті форма, мұнда оператор операндалардан соң орналасады ( Жоғарыдағы өрнек “а*в+””);
-
Префиксті форма, мұнда оператор операндолардың алдында орналасады (“+ав”)
Постфиксті және префиксті формалар жазудың поляк формасын құрайтыны бізге белгілі. Поляк формасы ең әуелі жақшалардың жоқтығымен ыңғайлы.
Практикада постфиксті форма жиі қолданылады. Сондықтан, поляк формасы дегенде постфиксті форма түсініледі.
Бұл жазу формасында і=(а+в)*с өрнегі “іав+с*=” деп бейнеленіледі. Бұл өрнек ағаш бойына оңай орналастрылады. Төмеңгі қатарда “а” және “в”, одан жоғарғы қатарға “+” және “с”, одан соң – “і” және “*”, ең төбесінде “=” белгісі орналасады.
Тетрада – бұл амал коды, меншіктеуші және 2 операнда кодтарынан құралған төрттік.
Бастапқы өрнек
| Код |
Меншіктеуші
|
Операнд 1
|
Операнд 2
|
a+b(p)T1
|
+
|
T1
| a | b |
T1+c(p)T2
|
*
|
T2
|
T1
| c |
i=T2
|
=
|
I
|
T2
|
(туындаған тетрада)
|
Поляк жазу формасы және тетрадалар бірмәнділігімен ыңғайлы. Іс жүзінде бұл екі формада да бастапқы өрнекті элементар құрушыларға жіктейміз.
Айталық, синтаксистік анализатор кірісіне мынадай өрнек берілсін:
<ид1> =(<ид2>+<ид3>)*<ид4> және”А=B+C*D” шығысында мыналарды аламыз:
-
Ағаш.
Бірінші өрнек Екінші өрнек
Тетрада.
Бірінші өрнек Екінші өрнек
+,<ид2>, <ид3>, T1 ,C,D,T1
,T2, <ид4>6, T2 +,B,T1,T2
=, T2, <ид1> =,T2,A.
(Т1, Т2 – компиляторқұрған уақытша айнымалылар).
-
Поляк формасы.
Бірінші өрнек Екінші өрнек
<ид1><ид2><ид3>+<ид4>= ABCD+=
Операндалар орналасу реті поляк формасында бастапқы инфексті өрнектегідей (авс= және вса= жазулары 2 түрлі мән береді). Поляк жазу формасын есептеу алгоритмі өте қарапайым: енуші тізбектің символдарынбіртіндеп қарап шығамыз. Егер кезектегі символ операнда болса (иденфикатор не константа) онда әрі қарай оқимыз. Егер символ бинорлық оператор болса, алдыңғы екі оператормен қоса операторды тізбектен бөліп аламыз. Операцияны орындап, нәтижені қайта символдар тізбегіне орналастырамыз.
Қазақстан Республикасы Білім және ғылым министрлігі
“Сырдария” университеті
“Жаратылыстану” факультеті
“Информатика” кафедрасы
Оқу - әдістемелік кешен
“Информатиканыњ теориялыќ негіздері” пәні бойынша
050111-“Информатика”мамандыѓының студенттері үшін
Студенттің өзіндік жұмысының жоспары.
(СӨЖ)
Жетісай-2006
-
С¤Ж жоспары
№
|
Таќырыптары
|
Әдебиеттер
|
Кредит №1
| -
|
1.Информатика ұғымының анықтамасы.
2.Информация дегеніміз не
3.Дербес компьютер деп қандай ЭЕМ – дерді айтады?
4.Информатика нені оқытады.
|
1,2
| -
|
|
1,2
| -
|
|
1,2
| -
|
|
1,2
| -
|
2.Enter пернесінің қызметі.
|
1,5
| -
|
Үздіксіз және дискретті информация. Абстрактты алфавиттер
1. Аналогтық жєне дискретті информация.
2. Абстрактты алфавиттер.
|
1,5
| -
|
Үздіксіз және дискретті информация. Абстрактты алфавиттер
1. Аналогтық жєне дискретті информация.
2. Абстрактты алфавиттер.
|
1,5
| -
|
1. Кодтау. Екілік алфавит .
2. Байттық алфавит.
|
1,5
| -
|
Сөздер және абстракт тілдер.
1. Формальді тіл.
2. Бэкустің нормаль формалары.
|
1,5
| -
|
1. Берілгендер. Элементар берілгендер типтері.
2. Айнымалы және тұрақты шамалар.
|
1,5
| -
|
Орындау абстракциясы.
1. ЕОБ (111,259) конструкциясы. Кемшіліктері.
2. Кемелдендірілген конструкция.
3. Теорема.
|
1
| -
|
Программалау тілдерінің ролі
-
Формальді жазу
-
Формальді жазу артықшылықтары
|
1
| -
|
Жағдайлар және олардың сипаттамалары.
-
Жағдайлар кеңестігі
-
Жағдайлар кеңестігінде теңдіктерді қолдану
|
1
| -
| |
Достарыңызбен бөлісу: |