case 15
A[i]>A[i+1 ]->
A[i], A[i+1 ],i:=A[i+1], A[i], 0
or
A[i]<=A[i+1 ]->
i:=i+1
end
end;
i:=0;
loop
i
write A[i], skip;
i:=i+1
end
end
Вирт диаграммасын қолдану арқылы қолданушы синтаксисінің сипаттамасы
Келесі бөлімдерде көрсетілген транслятордың жасалу жолы. Вирт диаграммасын қолдану арқылы DPL синтаксисінің сипаттамасына сүйенеді. Сондықтан бір мета тілден екіншісіне ауысуды жүзеге асыру қажет. Ал синтаксис бұрынғыснша қолданылатын болады, ал оның өзгеруі керісінше жүзеге асырылатын болады. Вирт диаграммасын қолдану арқылы DPL-дің синтаксисін көрсету суретте ұсынылған.
Бақылау тапсырмалары мен сұрақтар
1) Зертханалық жұмысты аяқтау, нұсқа бойынша берілген программалау тіліне программалар мысалын жазу.
Дәріс 4. Лексикалық анализді ұйымдастыру
Жоспар:
-
Лексикалық анализдің фазасының қажеттілігі;
-
Транслитератор;
-
Лексикалық анализдің әдістері мен грамматикасы.
Лексикалық анализдің фазасының қажеттілігі.
Лексикалық анализ-трансляция процесінің бірінші фазасы, Лексема деп аталатын кіру тізбегінің символдарын әлдеқайда үлкен конструкцияларға топтау.
Әрбір лексемамен 2 ұғым байланысты:
1. Лексема класы;
2. Лексема мәні.
Транслитератор.
Транслитератор деп - әрбір бөлек символдарға кластарды сәйкестендіруді жүзеге асыратын құрылғы. Символдар класының қарапайым түріне жататындар:
-
Әріп-әріптер жиынына сәйкес қойылатын класс, бұл әріптердің бір алфавиттен болуы шарт емес.
-
Сан-көбінесе 0 ден 9-ға дейінгі сандарға қатысты символдар жиыны;
-
Бөлектегіш - пробел, жолды ауыстыру;
-
Ескерту-тілдің алфавитіне тиісті емес символдар;
-
Басқалар-белгілі категориялардың ешбіріне жатпайтын символдар.
Символдар. Лексикалық анализдің грамматикасы.
Лексикалық анализаторлар көбінесе элементар конструкцияларды тану үшін қолданылады. Вирт диаграммасымен ақырлы автомат арасындағы байланыс ақырлы автоматты құрастыру үшін Вирт диаграммасын жәнес ол жақтың рекурссиялы грамматикалар қатарын қолдануға болады. Ережежелерді сипаттауда олар анағұрлым көрнекті. Сонымен бірге Вирт диаграммасымен ақырлы автоматтар арасында бір мәнді сәйкестік бар. Терминалдардан ғана тұратын Вирт диаграммасына эквивалентті ақырлы автомат мынадай түрде құралады:
-
Диаграмманың бастапқы доғасы арқылы автоматтың бастапқы жағдайына түрленеді.
-
Диаграмманың доғасы ақырлы автоматтың бекітуші жағдайына түрленеді.
-
Ақырлы автоматтың құралуын идентификатордың сипаттау мысалында көруге болады.
Вирт диаграммасымен оң сызықты диаграммалар арасындағы байланыс, оң жақ рекурсияны итерацияға түрлендіру. Оң сызықты грамматика болған жағдайда ақырғы автомат құрамай-ақ, бастапқы грамматиканы Вирт диаграммасына түрлендіруге болатыны туралы айта аламыз.
А) Қарапайым грамматиканы түрлендіру:
Вирт диаграммасымен сол жақ рекурсияның грамматикасы арасындағы байланыс. Сол жақ рекурсияны итерацияға түрлендіру.
Құрамында сол жақ рекурсиясы бар ережелер үшін итерацияға түрлендіруге болады:
1) Рекурсивті анықталатын терминал емес тен шығатын доға, цикл құру арқылы ереженің ең соңын әкеліп қосылады.
2) Адресаты жоқ терминал еместер сызылып тасталынады, ал оған кіретін доға алынып тасталады.
Бақылау сұрақтар мен тапсырмалар.
-
Лексикалық анализатор не үшін қажет?
-
Лексикалық анализатордың не туғызады?
-
Сканердің көмегіне жүгінбей-ақ қоюға бола ма?
-
Транслитератордың тағайындалуы?
-
Сканер мен ақырғы автомат арасында қандай айырмашылық бар?
-
Вирт диаграммасымен ақырғы автомат арасында қандай айырмашылық бар?
-
Лексикалық анализдің негізгі әдістерін атаңыз
-
Тура емес лексикалық анализдің жалпыланған түріне мысал келтіріңіз.
-
Тура лексикалық анализдің жалпыланған түріне мысал келтіріңіз.
Дәріс 5. Прогламалаудың демонстрациалық тілінің лексикалық амалдары
Жоспар:
-
DPL. Транслитераторы.
-
DPL – дің тура емес лексикалық анамуаторы.
-
Тура лексикалық анамуаторы.
Транслитератордың жалпы ұйымдастырылуы.
-
Әріптер классы: латын алфавитының бас және кіші әріптері;
-
Ондық сандар классы: 0-ден 9-ға дейінгі арап цифрларын біріктіреді;
-
Екілік сандар классы: 0 мен 1 сандарын біріктіреді;
-
Сегіздік сандар классы: 0 ден 7 дейін сандарды біріктіреді;
-
Оналтылық сандар классы: 0 ден 9-ға дейін сандар кіреді, және A, B, C, D, E, F, a, b, c, d, e, f – сандары кіреді.
Dpl– дің тура емес лексикалық амалдары.
Тәуелсіз ағырлы автоматтардың бірігуі ретінде тура емес лексикалық анамуатор танылады. Ал бұл автоматтарды алдынғы ретте көрсетілгендей Вирт диаграммасын қолдану арқылы сипаттауға болады.
Әрбір кілттік сөздерді талдау үшін оларға өздерінің автоматтарын құруға болады.
Вирт диаграммасы көмегімен сипатталатын лексим.
void nxl(void) {
do {
i_lv = -1;
lv[0] = '\0';
if(si == EOF) {lc = lexEof;}
else if(isSkip(si)) {nxsi(); lc = lexSkip;}
else if(isLetter(si) || si == '_'){
lv[++i_lv]=si; nxsi(); id_etc();
}
else if(isDigit(si)) {number();}
else if(isIgnore(si)) {nxsi(); lc = lexIgnore;}
else if(si == '/') {nxsi(); divcom();}
else if(si == '\"') {nxsi(); string_const();}
else if(si == ';') {nxsi(); lc = lexSemicolon;}
21
else if(si == ',') {nxsi(); lc = lexComma;}
else if(si == ':') {
nxsi();
if(si == '=') {nxsi(); lc = lexAssign;}
else lc = lexColon;
}
else if(si == '(') {nxsi(); lc = lexLftRndBr;}
else if(si == ')') {nxsi(); lc = lexRghRndBr;}
else if(si == '[') {nxsi(); lc = lexLftSqBr;}
else if(si == ']') {nxsi(); lc = lexRghSqBr;}
else if(si == '*') {nxsi(); lc = lexStar;}
else if(si == '%') {nxsi(); lc = lexPercent;}
else if(si == '+') {nxsi(); lc = lexPlus;}
else if(si == '-') {
nxsi();
if(si == '>') {nxsi(); lc = lexArrow;}
else lc = lexMinus;
}
else if(si == '=') {nxsi(); lc = lexEQ;}
else if(si == '!') {
nxsi();
if(si == '=') {nxsi(); lc = lexNE;}
else {lc = lexError; er(1);}
}
else if(si == '>') {
nxsi();
if(si == '=') {nxsi(); lc = lexGE;}
lc = lexGT;
}
else if(si == '<') {
nxsi();
if(si == '=') {nxsi(); lc = lexLE;}
lc = lexLT;
}
else if(si == '{') {nxsi(); prenumber();}
else if(si == '.') {lv[++i_lv]=si; nxsi(); fltnumber2();}
else {lc = lexError; er(0); nxsi();}
} while (lc == lexComment || lc == lexSkip || lc == lexIgnore);
}
Бақылау сұрақтар мен тапсырмалар.
Зертханалық жұмыстың орындалуы үшін тапсырма нұсқасына сәйкес лексикалық анализатор жасап шығару.
Дәріс 6. Синтаксисті талдауды ұйымдастырудың жалпы принциптері
Жоспар:
-
Синтаксисті талдауды тағайындау.
-
Синтаксистік талдаудың әдістерінің классификациясы.
Синтаксистік талдау синтаксистік анализдің бірінші этапы болып табылады. Синтаксистік талдаудың орындалуы танытушылар арқылы жүзеге асырылады.
Синтаксистік талдаудың әдістерінің классификациясы:
Үстіңгі деңгейде бөлектеніп тұрғандар:
-
талдау әдістері
-
талдау тізбегі
-
алдыңғы жақты көру мүмкіндігі
-
қайтуларды қолдану
Талдаулар кезінде әр түрлі бұтақтардың пайда болатынын суреттерден көруге болады.
Талдаудың тізбегі. Талдау тізбегі алдау бұтақтары әрбір қадам салтын құрылып қалайша жүзеге асатынын анықтайды. Бұл құрылымдар солдан оңға қарай, оңнан солға қарай, және кез-келген бағытта жүзегеа сырылады.
Алдыңғыны көруді қолдану. Тілдер (басқада жүйелер сияқты) күрделілігіне байланысты әртүрлі болып келеді. Кейбіреулерін қарапайым грамматиканың көмегімен сипаттау практика жүзінде мүмкін емес. Сондықтан, грамматикада символдар тізбегі бірдей болып басталатын альтернативтіережелер кездесуі мүмкін.
Резюме.
-
программалау тілінің синтаксисі неғұрлым күрделі болса, оның грамматикасы соғұрлым күрделі болып келеді.
-
грамматика неғұрлым күрделі болса, талдау әдісінің универсалдығымен күрделілігі басым болады.
-
талдаудың уиверсалды әістері оның орындалуына әлде қайда тежейді.
Классификация категориясы
Талдау әдістері
Талдау тізбегі
Алдыңғы жақты көру
Қайтаруларды қолдану кірітін шығатын аралас
Солдан оңға
Оңнан солға
Кез-келген 1 символға алдыға
N символға бар жоқ
Бақылау сұрақтары мен тапсырмалар
-
Синтаксистік талдауды тағайындау?
-
Синтаксистік талдаудың нәтижесі не болып табылады?
-
Синтаксистік талдаудың классификациясының критерийлерін атаңыз.
-
Қандай талдау әдістері бар?
-
Кіру тізбегін шығару мен талдау әдәстерінің арасындағы байланыс.
-
Төмен қарай аралатын талдаудың қандай ерекшеліктері бар?
-
Өсетін талдаудың қандай ерекшеліктері бар?
-
Аралас талдаудың ерекшеліктері неде?
-
Талдаудың қандай тізбектері бар?
-
Талдау тізбегі мен әдістерінің арасындағы байланыс.
-
Алдын көру мүмкіндігі бар талаудың ерекшеліктері.
-
Комплексті бос грамматиканың қосымша классификациясы.
-
Қайтулары бар талдаудың ерекшеліктері.
-
Тілдің күрделілігі мен трансляциясы арасындағы байланыс.
Дәріс 7. Автоматтарды пайдалану
Жоспар:
-
Жадысы бар автоматтарды қолдану қажеттігі.
-
Жадысы бір автоматтар мен грамматикалар арасындағы байланыс.
-
Жадысы бір автоматпен S-грамматика арасындағы байланыс.
-
Жадысы бар автоматы q-грамматикасы бойынша құрастыру.
G 7.1 грамматикасы мынандай түрде жүзеге асырылады. G7.1 =({A, S}, {(, )}, P, S), Мұндағы Р былай анықталады:
1. S (A) A
2. A S
3. A
Ecептің шешу жолының бірі-жақшалар санының көбеюі ашылатын жақша кездессе тізбекті ашу кезінде бірлікке көбейеді ал жабылатын жақша кездессе онда санақшының мәні бірлікке азаяды.
Тізбекті ашу алдындағы санақшының мәні 0-ге тең болады. Сонымен бірге тізбекті қарау кезінде санақшы терісмәндерді қабылдай алмайды, магазиндік жадысы бар автомат мынандай бес түрлі жолмен анықталады:
1. Кіру символдарының ақырлы жиыны;
2. Магазиндік символдардың ақырлы жиыны;
3. Жағдайлар жиынының ақырлығы;
4. Басқару құрылғысы;
5. Магазиннің басқару құрылымы.
Автомат операциясы.
Автоматтың қадамы немесе ауысуы – бұл оның жағдайының өзгеруі. Бұл кезде бір қадамнан соң барлық өзгерістер болуы шарт емес.
S-грамматика мен магазиндік жадысы бар автомат арасындағы байланыс.
Контекстті бос грамматика S-грамматика деп аталады, егер мына екі жағдай орындалса:
1. Әрбір ереженің оң және терминалымен басталады;
2. Егер екі ереже бірдей сол жақтары бар болса, онда бұл ережелердің оң жақтары әртүрлі терминалдық символдармен басталуы керек.
Мысалы:
Бірдей тілді беретін грамматиканы қарастырайық:
G 7.2 грамматика, Р ережесінің құрамы:
1. S→ат
2. S→твs
3. Т→вт
4. Т→ва
Бұл S-грамматика емес, себебі екі ереже терминал еместен басталады, бұл 1-ші шартты бұзады; ал 3, 4 ережелерде сол жақтары бірдей және бірдей терминалдық символдардан басталады.
Q-грамматика бойынша автоматты құрау:
Контекстті бос грамматика q-грамматика деп аталады, сонда тек сонда ғана, егер мына екі шарт орындалса; Әрбір ереженің оң жағы ε-бос тізбекті көрсетеді, немесе терминалдық символдан басталады.
Ережелерді таңдау жиынының сол жақтары бірдей болса, олар қиылыспайды.
Екінші шартты тереңірек қарастыру қажет, себебі бірқатар анықтамалар еңгізу керек. Олардың бірі-таңдау жиыны. Анықтаманы ашу үшін q-грамматикасының мысалын қолданамыз. G7\4 (s) ;
1. S → aAS
2. S→в
3. А→сАS
4.А→Е
4-ші ереженің оң жағы терминалды символдан басталмағандықтан; бұл S-граматика емес екендігін көруге болады. Берілген Х-терминал еместен шығатын терминалдар жиыны.
(Келесі (X) - арқылы Х-тен шығатын терминалды амалдар жиынын белгілейік). Келтірілген граматика үшін келесі жиындарды анықтауға болады:
Келесі (А)={a,в}
Келесі (S)={a,в}
А-дан шығатын терминалды, ереженің оң жағы а-дан немесе в-дан басталатын S терминал емес шығатындығынан анықтауға болады.
S-тен шығатын терминалды, S-тен әрқашан S-шығатындығынан анықтауға болады, ол а-дан немесе в-дан басталады: SаАSасАSS. Бұл ұғым, оң жағы бос болып келетін А→Е ережені қай уақытта қолдану керектігін көрсету үшін пайдаланылады. Алдымен, бірінші кезекте әрқашан бос ереже қолданылатын стратегияны қарастрайық:
Қадам нөмері
|
Стектің құрылымы
|
Кіру тізбегінің қалдығы
|
Қолданатын ережелер нөмері
|
Түсініктемелер.
|
1
|
∇S
|
аасвв┤
|
1
|
-
|
2
|
∇SA
|
асвв┤
|
4
|
әйтпесе,талдау процесі ары қарай жүрмейді
|
3
|
∇S
|
асвв┤
|
1
|
-
|
4
|
∇SA
|
свв┤
|
4
|
мұнда, берілген қадам дұрыс тізбекке қатысты
қайтаруға әкеледі
|
5
|
∇S
|
свв┤
|
қабылдамау
|
қабылдамау қайтаруды жүзеге асыруға тура келеді
|
4-ші қадамда 3-ші ережені қолдану дұрыс болар еді.
Қадам нөмері
|
Стектің құрылымы
|
Кіру тізбегінің қалдығы
|
Қолданатын ережелер нөмері
|
Түсініктемелер.
|
1
|
∇S
|
аасвв┤
|
1
|
-
|
2
|
∇SA
|
асвв┤
|
4
|
әйтпесе, тал-дау процесі ары қарай жүрмейді.
|
3
|
∇S
|
асвв┤
|
1
|
-
|
4
|
∇SA
|
свв┤
|
3
|
ұсынған нұсқауларға сәйкес жүру керек
|
5
|
∇SSA
|
вв┤
|
4
|
әйтпесе,таңдау процесі ары қарай жүрмейді.
|
6
|
∇SS
|
вв┤
|
2
|
-
|
7
|
7 ∇S
|
в┤
|
2
|
-
|
8
|
∇
|
-
|
қабылдау
|
Тізбек тілге тиісті!
|
Осындай әдіспен талдау есептерін шешуге болады. Бірақ q-грамматикан егізінде құрылған талдау кезінде мынадай мсәеледе болуы мүмкін:
А→Вα, А→Е және В € след(А).
Бұл есепті шешу үшін берілген ережені таңдау жиыны ұғымын еңгіземіз.
Бақылау сұрақтары мен тапсырмалар:
-
Синтаксистік талдау кезінде магазиндік жадысы бар автоматтар не үшін қажет?
-
Магазиндік жадылы автомат қалай ұйымдасқан?
-
Магазиндік жадылы автоматпен жүрілетін негізгі операциялар.
-
Шектелген грамматикаға мысалдар келтіріңіз.
-
S-грамматика бойынша магазиндік жадысы бар автоматы қалай құруға болады?
-
S-грамматиканың кемшіліктері неде?
-
S,q,α-грамматикаларға қысқаша анықтама және сипаттама беріңіз.
Дәріс 8. Солдан оңға қарай талдау үшін динамикалық автоматты қолдану
Жоспар:
-
Магазиндік жадысы бар автоматпен формальлді грамматика арасындағы семантикалық ажырау.
-
Динамикалық ақырлы автоматтар моделі.
-
Динамикалық ақырлы автоматтарды сипаттауға арналған графиктік мета тіл.
-
Вирт диаграммасын динамикалық ақырлы автоматтарды ұсыну және қолдану.
Магазиндік жадылы автоматпен формальді грамматика арасындағы семантикалық ажырау. Қарапайым транслятордың құрылу процесі былайша көрініс береді:
-
Тілдің синтаксисінің жаслуы.
-
Формальді сипаттау негізінде пайдаболған тілдің құрылымы.
Синтаксистің сипаттамасы тілдің синтаксистік құрылымын анықтайтын формальді грамматиканың көмегімен жүзеге асырылады.
Семантикалық ажырау, трансляторды жасау кезінде бір қатар мәселелерді жеңіп шығуға әкеліп соқтырады.
Біріншісі-формальді грамматиканың моделін автоматы модельге түрлендіру қажеттігі.
Екіншісі-грамматиканы түрлендіру қажеттілігі.
ДПК-автоматтардың моделі. Семантикалық ажырауды қысқарту үшін ДПК-автоматтар қолданылады.
Қарапайым ақырлы автомат тілдің қайталанбалы конструкциясын ғана сипаттауға мүмкіндік береді. Ұсынылып отырған модель ақырлы автоматы кеңейтеді және кез келген контекстті бос тілді сипаттауға мүмкіндік береді.
ДПК-автомат деп мына төрттікті айтамыз:
S=(A,Z.δ,M1)
Мұндағы:
1. {a1,...,as,...,as}- жағдайлар жиыны немесе барлық жағдайлар алфавиті : as∈(U≅ν) мұнда U={u1,...,um,...,ua9}-негізгі жағдайлар жиыны;
V={v1,...,vn,...,vN}-ақырлы жағдайлы автоматтардың қосымша жиыны, U∩V=∅.
2. Z={z1,...,zf,...,zF}-кіру алфавиті немесе кіру символдарының жиыны zf∈(T≅G), мұндағы T={t1,...,tr,...,tk}-терминалды символдар жиыны G={g1,...,gp,...,gP}-туындайтын символдар жиыны T∩G=∅.
3. δ:u; Z→A - ауысу функциясы; G-ны A-ға бейнелейді.
4. U1∈U- автоматтың бастапқы жағдайы.
ДПК-автоматтарды сипаттауға арналған графиктік мета тіл. Ұсынып отырған моделдің жалпы көрінісі үшін графиктік мета тіл жасалған. (бұл А-схамалар деп аталады) А схемалар А- схемаларға барынша жақын метатілдерге –Вирт диаграммалары және R-схемалар жатады. Олардың арасындағы тілдендіру алгаритімдерін оңай қарастыруға болады. Төменде Вирт диаграммаларын А– схемаларға түрлендіру амалдары келтірілген.
-
Вирт диаграммасы сәйкес ДПК-автоматтарды сипаттайтын А-схемаға түрленеді.
-
Вирт диаграммаларының төбелері автоматтың жағдайларының арасындағы ауысуларға сәйкес келеді.
-
Бұтақтану нүктелерін құрайтын Вирт диаграммасының альтернативті байланыстары жиыны ДПКавтоматтың жағдайларына сәйкес келеді.
Қарапайым арифметикалық өрнектің синтаксисін сипаттайтын Вирт диаграммалары.
-
Вирттің әрбір диаграммасы ДПК-автомат береді.
-
Кез-келген ДПК-автоматтың кіру символдары терминалдық символдар болып табылады.
-
ДПК-ның бастапқы жағдайы. Вирт диаграммасының кіру доғасы болып табылады.
-
Автоматы соңғы жағдайы. Вирт диаграммасының доғасы болып табылады.
-
Ақырлы жағдайдың табыстары. Вирт диаграммасының шығуына эквивалентті болады.
Бақылау сұрақтары мен тапсырмалар.
-
Грамматикалар мен магазинді жад пен бар автоматтар арасындағы семантикалық ажырау неге байланысты?
-
ДПК-автоматтардың моделін анықтаңыз;
-
ДПК-автоматтар мен Вирт диаграммасы арасындағы өзара байланыс.
ЗЕРТХАНАЛЫҚ САБАҚТАРДЫҢ ЖОСПАРЫ
Зертханалық сабақ 1. «Трансляторлар жайлы жалпы мағлұмат»
Зертханалық сабақтың жоспары:
1. Блок транслятордың көп өтімді әрекеттесті ұйымдастыру
2. Блок транслятордың бір өтімді әрекеттестікті ұйымдастыру
3. Блок транслятордың қиыстырылған әрекеттестікті ұйымдастыру
Зертханалық сабақ 2. «Формальды грамматика және тілдер теориясының негіздері»
Зертханалық сабақтың жоспары:
1. Хомский мета тілі
2. Хомский-Щутценберже мета тілі
3. Бэкуса-Наура қалыптары (БНҚ)
Зертханалық сабақ 3. «Программалаудың жариялау тілі»
Зертханалық сабақтың жоспары:
1. Элементар конструкциялар/ Құрама конструкциялар. Бағдарламаны ұйымдастыру. Тілдің семантикасың қысқаша сипаттауы
2. DPL-дебағдғарламалар мысалдары
Мысал1. Евклид алгоритмы (еңүлкенортақ бөлгіштітабу)
Мысал2. Ең үлкен ортақ бөлгішті табу және ең кіші ортақ бөліндіні табу.
Мысал3. Еңгізілген лектің ішіндегі n элементердің қосу
Мысал4. Вектордің элементерің реттеу
Зертханалық сабақ 4. «Лексикалық анализд іұйымдастыру»
Зертханалық сабақтың жоспары:
1. Вирт диаграмасымен және ақырлы автоматтардың арасында байланыс
2. Вирт диаграмасымен және оң-сызықты грамматикасымен байланыс. Оң жақ рекурсияны итерацияғат үрлендіру
3. Вирт диаграмасымен және оң-сызықты грамматикасымен байланыс. Сол жақ рекурсияны итерацияға түрлендіру
4. Түзу емес лексикалық анализаторды ұйымдастыру. Түзу лексикалық анализаторды ұйымдастыру.
Зертханалық сабақ 5. «Программалаудың жариялау тілінің лексикалық анализаттары»
Зертханалық сабақтың жоспары:
1. Транслитератордың жалпы ұйымдастыруы
2. Транслитератордың бағдарламалық орындауы
3. Түзу емес лексикалық талдауышқа бөлек автоматтарына арналған Вирт диаграммалары
4. Бөлек автоматтардың бағдарламалық орындау
5. Түзу емес лексикалық талдауыштың жалпы құрылымы
Зертханалық сабақ 6. «Синтаксистік талтауды ұйымдастырудың жалпы принциптері»
Зертханалық сабақты жоспары:
1. Талдау әдістері
2. Талдау жүйелілігі
3. Алғақарауды қолдануы
4. Қайтарулардың қолдануы
5. Түйіні (резюме)
Зертханалық сабақ 7. «Солдан-оңға астыға қарай талдауда туылмалы динамикалық автоматтарды қолдану»
Зертханалық сабақтың жоспары:
1. Құру талдап қорытылған алгоритмі үшін АМП төмен түсетін– S грамматиканың
2. S грамматика және ішкі жақшалары салынушылықты айырып тану
3. АМП асуларының кестесімен бағдарламаны өңдеу.
4. Рекурсивті түсіру әдісі қолданып бағдарламаны өңдеу.
Зертханалық сабақ 8. «Использовании единамически порождаемых автоматов для нисходящего разбора слева-направо»
Зертханалық сабақтың жоспары:
1. Дүкен жадылыа втоматтар және формалдық грамматикалар арасындағы
семантикалық үзіліс
2. Динамикалық туылатын ақырлы автоматтардың үлгісі
3. Динамикалық туылатын ақырлы автоматтарды сипатауға арналған графикалық мета іл.
4. КС(1) грамматиканы айырып танитын, динамикалық туылатын ақырлы автоматтарды көрсету үшін Вирт диаграммаларының қолдану.
5.3. Оқытушы мен студентердің өздік жұмыстардың жоспары
ОСӨЖ №1
Мәліметтер және типтер:
-
Динамическалық және статистикалық ПТ. Атты және структуралық типтер эквивалентті.
-
Дәстүрлі ПТ-дің негізгі мәліметтер типтері.
-
Дәстүрлі ПТ-дің операторлық базис.
-
Модуль ұғымы. Суреттеу және әрекет облыстары.
-
Жабу аттар және көрсетілімділік.
-
Типтер параметтірлеумен байланысты проблемаллар.
-
Ерекше жағдай туралы ұғым.
-
Машиналық-тәуелді ерекшеліктердің есептеу және басқару ұсыныс.
ОСӨЖ №2
Трансляция әдістері:
1. Бағдарламалық қамтамасыз етуде құрастырушы орыны
2. Компилятор структурасы.
ОСӨЖ №3
Лексикалық талдау:
1. Жүйелі жиындар және жүйелі айтылулар.
2. Лексикалық талдауыштарды бағдарламалау.
ОСӨЖ №4
Синтаксистік талдау:
1. Алдың-алаболжаулыкестелік басқарыс.
2.Үстідең-астыға талдау алгоритмі, LL(1)-грамматикалары, рекурсивный түсу, синтаксистік қателерден кейін бұрынғы қалпына келу.
ОСӨЖ №5
Бағдарлама аралық ұсынуы:
1. Код генератордың ішінде ақпаратты үйымдастыру.
2. Аралық денгейдегі ұсынуы:
ОСӨЖ№6
ПТ контекстік шарттары:
1. Көрсетілім обылыстардың және блокты құрылымды сипатау
2. Мәліметтерді басқару және типтерді бақылау.
ОСӨЖ№7
Құрастырушы кестелерінің ұйымдастыру:
1. Орналастырып қою функциялары.
2. Блоктық құрылымды орындау.
ОСӨЖ№8
Код генерациясы:
1. Машина моделі.
2. Айнымалылардың трансляциясы.
3. Логикалық айтылулардың трансляция ерекшеліктері
5.4. Студентердің өздік жұмыстардың жоспары
СӨЖ №1
Бақылау сұрақтаржәне тапсырмалар
1. Өзгешеліктерді табыныз:
-
интерпретатордың компилятордан (құрастырушы);
-
компилятордың ассемблерден;
-
код түрлендірушідің транслятордан;
-
эмулятордың интерпретаторден;
-
синтаксистің семантикадан.
2. Сізге танылы бағдарламалау тілдерінің соңғы өңдеулері туралы әнгімеленіз.
Айтылған тілдердің негізгі мінездемелерің келтіріңіз.
3. Бағдарламалау тілдерімен байланысты емес, трансляция әдістерінің облыстар бойынша қолдануының нақтылы үлгілерің келтіріңіздер.
4. Құрастырулы программалық тілдеріне нақтылы мысал келтіріңіз.
5. Интерпретаторлық программалық тілдерінен ақтылы мысал келтіріңіз.
6. Құрастырушы және интерпретаторы бар программалық тілдерінен ақтылы мысал келтіріңіз.
7. Компиляторлардың негізгі артықшылығы мен кемшіліктері.
8. Интерпретатордың негізгі артықшылығы мен кемшіліктері.
9.Белгілі екі программалау тілдерінің синтаксисінде айырмашылықтарың сипатаныз.
10. Белгілі екі программалау тілдерінің симантикасында айырмашылықтарың
сипатаныз.
11. Трансляцияның негізгі фазаларың және олардың тағайындауың атаңыздар.
12. Бір өтімді трансляцияның негізгі ерекшеліктерің атаңыздар.
13. Көп өтімді трансляцияның негізгі ерекшеліктерің атаңыздар.
14. Бір өтімді және көп өтімді трансляциялардың мүмкін қиыстыруларына мысал келтірініз. Бұл схемалардың практикалық қолдануы туралы әңгімеленіздер.
СӨЖ формасы: жазбаша және файл түрінде.
СӨЖ№2
Бақылау сұрақтар және тапсырмалар
1. Формалдық тілдердің негізгі тәсілдері және айырмашылықтың анықтамасын атаңыз.
2. Формальдық грамматикаға анықтама берініз.
3. Мета тілдер не үшін керек?
4. Туынды граммматиканың формальді тілдері несі болып табылады?
5. Шығару көрсетілімінің анықтаңыздар және айырмашылықтарының атаңыздар, олардың байланысын көрсетініз.
6. Үш көбейту және екі қосылысы бар, G3 грамматикасынның терминальдық байланыс шынжыр шығарылысына мысал келтірініз.
7. Бес операндтары бар, G3 грамматикасынның терминальдық байланыс шынжыр шығарылысына мысал келтірініз. Сол бастапқы терминалға емес байланыс шыжырдына мысал келтірініз.
8. 6 және 7-ші тапсыманың шартарына сәйкес келетің өрнек жазыныз, және бұл минимал қадам бойынша жасалу керек.
9. 6 және 7-ші тапсыманың шартарына сәйкес келетің өрнек жазыныз, және бұл максимал қадам бойынша жасалу керек.
10. Танушыға анықтама берініз. Құрылымын көрсетініз.
11. Сізге танылым ережеге шек қойылған грамматика классын атаныз. Оларға анықтама берініз.
12. Танылу тілінің және анықталмальды формальдық тілдерінен қандай айырмашылықтары бар?
13. Химский берген иерархиясы бойынша, танушы және грамматика арқылы берілген фомальдік тілдерінің анықамаға эквивалент қатынасың айтыныз.
14. Вариант бойынша №2 Зертханалық жұмысының Вирт д иаграммасы көмегімен программалау тілдерінің синтакисінің сипатаныз. Егер қиындық туса келесі тақырыпты зертеуге кірісініз. Содан кейін осы қадамды қайталаныз.
СӨЖ формасы: жазбаша және файл түрінде.
СӨЖ №3
Бақылау сұрақтар және тапсырмалар
1. №3 Зертханалық жұмысынның берілген вариант бойынша сол жұмысқа программа мысалын келтіріп аяқтау.
СӨЖ формасы: файл түрінде.
СӨЖ №4
Бақылау сұрақтар және тапсырмалар
1. Лексикалық талдауыш не үшін керек?
2. Лексикалық талдауыш нені туындайды?
3. Сканерсіз жұмыс істеуге болады ма?
4. Транслитератор қызметті.
5. Сканермен ақырлы автоматордың байланысы неде?
6. Вирт диаграммасымен ақырлы автоматордың байланысы бар ма?
7. Ақырлы автоматордың және онжақты грамматиканың байланысы бар ма?
8.Ақырлы автоматордың және сол жақты рекурсия грамматиканың байланысы бар ма?
9. Он жақты рекурсия грамматикасын итеративті Вирт диаграммасына қалай түрлендіруге болады.
10.Сол жақты рекурсия грамматикасын итеративті Вирт диаграммасына қалай түрлендіруге болады.
11.Лексикалық талдауштын негізгі тәсілдерің атаныз.
12.Сызықтық емес лексикалық талдауыштың жалпылама құрылымын келтірініз.
13.Лексикалық талдауыштың артықшылықтарымен кемшіліктері.
14. Сызықтық емес лексикалық талдауыштың қуатылыған көтеруге болады ма?
15.Сызықтық лексикалық талдауыштың жалпылама құрылымын келтірініз.
16.Сызықтық лексикалық талдауыштың артықшылықтары мен кемшіліктері.
17. Лексикалық талдау кезінде дүрыс танылу тиыс келетің нақтылы программалау тілдің конструкциясын тізіп шығыныз.
18. Лексикалық талдау кезінде дүрыс танылу тиыс келетің сіздің оқытылу программалау тілдің конструкциясы бойынша тізімін дайынданыз.
СӨЖ формасы: жазбаша және файл түрінде.
СӨЖ №5
Бақылау сұрақтар және тапсырмалар
1. Зертханалық жұмыс орындау үшін алынған вариант бойынша лексикалық талдаушты өнденіз.
СӨЖ формасы: файл түрінде.
СӨЖ №6
Бақылау сұрақтар және тапсырмалар
1. Синтаксистік талдаудың қызметтері.
2. Синтаксистік талдаудың нәтижесі болып табылады?
3. Негізгі синтакситік талдаудың таптастыруы белгілерің атаңыз.
4. Қандай талдау әдістері бар?
5. Кіріс байланыс шынжырының нәтижесімен талдау әдістерімен байланысы.
6. Астыға қарай түсу талдаудың ерекшеліктері.
7. Үстіге қарай шығу талдаудың ерекшеліктері.
8. Қиыстырылған талдаудың ерекшеліктері.
9. Қандай талдау жүйеліліктері бар?
10. Талдау әдістері мен және талдау жүйеліліктері арасындағы байланыс.
11. Алдыға қарай талдаудың ерекшеліктері.
12. Контекстілі бос грамматикалардың қосымша таптастыруы.
13. Қайтарылымды талдаудың ерекшеліктері.
14. Тіл қиындығымен және оның трансляциясның арасындағы байланыс.
СӨЖ формасы: жазбаша және файл түрінде.
СӨЖ №7
Бақылау сұрақтар және тапсырмалар
1. Синтаксистік талдау кезінде дүкен (кезек) жадылы автоматарды не үшін керек?
2. Дүкен (кезек) жадылы автоматар қалай ұйымдастырылған?
3. Дүкен (кезек) жадылы автоматардың негізгі операциялары.
4. Қандай түрде грамматика қойылған шектеулер автоматтын орындалуна әсер етеді?
5. Сізге белгілі шектелі грамматикаға мысал келтірініз.
6. s-грамматика бойынша АМП-ні құруға болады?
7. S-грамматиканың кемшіліктері.
8. q-грамматика бойынша АМП-ні өндеу.
9. S-, q-, L-грамматикалардың қысқаша мінездемелік анықтама берініз.
10. Астыға қарай түсу дүкен (кезек) жадылы автоматардың программалау әдістердің өндірістері.
11. Астыға қарай түсу дүкен (кезек) жадылы автоматардың АМП өту кесі қолданып програмалау өндірістердің қандай түрлері болады?
12. Рекурсив пен құрылған танушының қандай ерекшелігі бар?
СӨЖ формасы: жазбаша және файл түрінде.
СӨЖ №8
Бақылау сұрақтар және тапсырмалар
1. Грамматика және дүкен (кезек) жадылы автоматтардың семантикалық үзілісі неде түрады?
2. Туылмалы ақырды автоматтардың динамикалық моделін анықтаныз.
3. ДТА-автоматамен және Вирт диаграммасының арасындағы байланыс.
СӨЖ формасы: жазбаша және файл түрінде.
5.5. Пән бойынша жазбаша жұмыстардың тақырыптары
Рефератар тақырыптары:
1. Программалау тілдердің синтаксисі, сематикасы және програматикасы.
2. Формальдау проблемасы.
3. Грамматикалар. Грамматикалардың таптасыруы: жиелі грамматикалар, контекстлі-бос грамматикалар, контекстілі-тәуедлі грамматикалар, жалпы түрдегі грамматикалар, атрибуттыграмматикалар, программалық грамматикалар.
4. Алгоритмдік проблемалар: бос орындық проблема, идентификациялық проблема, тілдер эквивалентілігінің проблемасы.
5. Автоматтар. Автоматтарды топтастыру: ақырлы автоматтар, дүкен(кезек) жадылы автоматтар, екіжақты автоматтар, Тьюринг машинасы, детерминнаты және детерминнатсіз автоматтар, Джон Фон Нейманның автоматтары.
6. Айқынсыз грамматикалар, автоматтар жәнетілдер.
7. Бағдарламалау тілдерінің семантикасының формальдауы.
8. Ерекшеліктер тілдері. Трансля әдістері. Лексическалық талдауыш.
9. Синтакстік талдауыш. Семантикалық талдауыш.
10. Объектілі кодтың генераторы. Объектілі кодтыық шамдау.
5.7. «Тілдердің және автоматтардың теориясы» пәнінен емтихансұрақтары
1. Синтаксис, семантика және бағдарламалау тілдерінің прагматиксы.
2. Формалау проблемалары.
3. Грамматика. Грамматикалардың таптастыруы: жүйелі грамматикалар, контекстік-азат грамматикалар, контекстік-тәуелді грамматика.
4. Жалпы түрдегі грамматика, атрибуты грамматика, бағдарламалық грамматика.
5. Алгоритмдік проблемалар:бостық проблема, идентификациялық проблема, тілдердің эквиваленттілік проблемасы.
6. Автоматтар. Автоматтардың таптастыруы: соңды автоматтар, дүкенді жадысы бар автоматтар, екі жақтық автоматтар.
7. Тьюринг машиналары, детерминанты және детерминантсыз автоматтар. Джон фон Неймандық автоматтар.
8. Айқынсыз грамматикалар. Автоматтар және тілдер.
9. Бағдарламалау тілдерінің семантикасын формальдау.
10. Ерекшеліктер тілдері.
11.Трансляция әдістері.
12.Лексикалық талдауыш.
13.Синтаксистік талдауыш.
14.Семантикалық талдауыш.
15. Объектті кодтың генераторы. Объектті кодтың ықшамдауы.