Қоида – бу символлар занжири жуфтлиги бўлиб, қоидаларда занжир тартиби мухим ўрин тутдаи, шунинг учун уларни баъзан қуйидаг тартибда ёзилади. . Бу ёзувни “ пораждает ”, ёки “ аниқланиши бўйича ” демакдир.
Дастурлаш тили грамматикаси икки турдаги қоидадан иборат: биринчиси ( тилнинг синтаксис конструкциясини аниклаштирувчи) формал изохлашга осон ёндошувчи ; иккинчиси(тилнинг семантик чекланишини аникловчи) формал булмаган формада bифодаланади. Шунинг учун дастурлаш тилларининг хар кандай изохланиши умумий стандарт асосида икки кисмдан иборат: аввало синтаксис конструкция куриш коидалари келтирилади, сунгра хакикий тилда семантик коидалар изохи келтирилади. Дастурни дастурлаш тилида ёзувчи фойдаланувчи учун бут ил тушунарли; компилятор учун эса семантик чекланганликларни дастур тугри тузилганлигини текширишни алгоритм куринишида bajlfkfi керак. Компиляторда бундай текширишлар билан семантик анализатор- компиляторнинг махсус ишлаб чикилган кисми шугулланади. Дастурлаш тилларининг грамматикаси хакида гапирганимизда тилнинг синтаксис конструкциялар куриш коидалари назарда тутилади. Ихтиёрий дастуцрлаш тилининг грамматикаси умумий холда ушбу коидалар билан чекланиб колмайди.
Берилган тилнинг G грамматикаси L(G) каби ифодаланади.
Икки грамматика G ва G’ эквивалент деб номланади, агар улар уша битта тилни ифодаласа: L(G)=L(G’). Икки грамматика G ва G’ лар эквивалент хисобланади, агар улар томонидан берилатган тиллар буш занжир символлар билан фаркланса: L(G) .
Грамматиканинг формал ифодаланиши
Бэкус-Наура формаси.
Грамматикани формал тула аниклада тил занжири коидаларидан ташкари алфавит тилини бериш зарур.
G грамматикани формал равишда куйидаги туртлик билан аникланади: G(VT,VN,P,S), бу ерда
VT-терминал символларининг туплами;
VN- терминал булмаган символлар туплами: VN 0;
P- бу ерда , куринишдаги грамматик коидалар туплами;
S- S VN максадли (бошлангич) грамматик символлар
V=VN G грамматиканинг тула алфавити.
VN ва VT тупламни куриб чикамиз. VT терминал символлари туплами грамматиканинг алфавит тилига кирувчи символларни уз ичига олади. Коидага кура VT тупламдаги символлар занжирнинг унг кисмида учрайди, агар улар чап кисмда хам учраса, у холда улар занжирнинг унг кисмида учраши керак. VN терминал булмаган символлар туплами тилнинг конструкцияси, тушунчаси, сузларини аниклаштирувчи символлдан иборат. Бу тупламдаги хар бир символ занжирнинг чап кисмида учраши билан бирга, грамматик коидаларнинг унг кисмида хам учрайди, лекин бир марта булса хам грамматик коиданинг чап кисмида булиши керак. Грамматиканинг коидаси шундай курилганки, чап кисмидаги хар бир коидада бита булса хам терминал булмаган символ булиши керак.
Бу икки туплам кесишмайди: хар бир символ терминал ёки терминал булмаслиги мумкин. грамматик алфавитдаги хеч бир символ бир вактнинг узида хам терминал, хам терминал булмаган символ булиши мумкин эмас. Грамматиканинг максадли символи- хар доим терминал булмаган символ хисобланади.
Грамматиканинг коидалар тупламида ун куринишдаги кисмлари бир хил булган бир неча коида булиши мумкин. У холда бу коидалар бирлаштирилади ва куйидаги куринишда ёзилади: . Битта катордаги бундай ёзувга бир йула n коида мос келади.
Грамматика коидасидаги бундай ёзув шаклини Бэкус – Наура шакли дейилади.
Б экус – Наура шакли коидага кура терминал булмаган символларни бурчак кавсларга <> олишни такозо этади. Баъзан « » белги грамматик коидаларда « ::= » белги билан алмаштирилади, лекин бу шакллар унинг маъносини узгартирмайди. Куйида бутун унлик сонлар белгилари учун грамматика мисоли келтирилган.
G({0, 1,2,3,4,5,6,7,8,9,-,+},{ <число>, <чс>,<цифра>}, P, <число>)
P:
< число> < чс> + <чс> -<чс >
< чс > <цифра> < чс><цифра>
<цифра> 0 1 2 3 4 5 6 7 8 9
G грамматика элементи ташкил этувчиларини куриб чикамиз.:
VT терминал символларининг туплами ун иккита элементодан иборат: унта унлик ракам, ва иккита белги;
VN терминал булмаган символлар туплами учта элементдан иборат: символлар < число>, < чс >, <цифра>;
Коидалар туплами учта каторга ёзилган 15 та коидадан иборат (яъни, 3 турдаги унг кисм коидалари) ;
<число>символи грамматиканинг максадли символи хисобланади.
< чс >, символ – грамматиканинг терминал булмаган символи булиб, маънога эга эмас.. Терминал булмаган символ номи маъносиз булиши мумкин эмас, грамматика коидаларининг инсон томонидан тушуниш учун килинган. Хар кандай грамматикада хама терминал булмаган символларнинг номини бутунлай узгартириш мумкин, ( грамматика да берилган тилни узгартирмаган холда) Масалан, Pasсal программалаш тилида дастур маъноси узгармаган холда идентификатор номини узгартириш мумкин.
Терминал символлари туплами эса доимо грамматика томонидан аниклаштирувчи алфавит тилига катъий мос келади. Масалан, бутун унлик сонлар ( белигиси билан) учун терминал булмаган символлар ката лотин харфлари билан белгиланган.:
G ’ ({0,1,2,3,4,5,6,7,8,9,-,+},{S,T,F}.P.S)
P:
S T +T -T
T F TF
F 0 1 2 3 4 5 6 7 8 9
бу ерда факатгина терминал булмаган символлар туплами узгарди.
Энди VN={S,T,F}. Грамамтика томонидан берилган тил узгармади- G ва G’ грамматикалар эквивалентдир.
Do'stlaringiz bilan baham: |