Кіріспе
Формалды грамматиканың түрі Формалды тіл теориясында контекстсіз грамматика (CFG) — бұл формалды грамматика, оның өндіріс ережелері контекстке қарамастан, терминал емес символға қолданылуы мүмкін. Атап айтқанда, контекстсіз грамматикада әрбір өндіріс ережесі бір ғана терминал емес символдан және терминалдар мен/немесе терминал емес символдар тізбегінен тұрады (бос болуы мүмкін). Оны қоршап тұрған символдарға қарамастан, сол жақтағы бір ғана терминал емес символ әрқашан оң жақтағы тізбекпен ауыстырылуы мүмкін. Бұл оны контекстке сезімтал грамматикадан ерекшелейді, онда өндіріс ережелері терминал емес символдар мен , , және терминалдар мен/немесе терминал емес символдар тізбектері бар болуы мүмкін. Формалды грамматика — бұл белгілі бір формалды тілдегі барлық мүмкін тізбектерді сипаттайтын өндіріс ережелерінің жиынтығы. Өндіріс ережелері — бұл қарапайым алмастырулар. Мысалы, суреттегі бірінші ереже, -ды -мен алмастырады. Берілген терминал емес символ үшін бірнеше алмастыру ережесі болуы мүмкін. Грамматика арқылы құрылған тіл — бұл белгілі бір терминал емес символдан («бастау символы») қайталама ережелерді қолдану арқылы алынуы мүмкін барлық терминал символдар тізбектерінің жиынтығы. Терминал емес символдар туынды процесінде қолданылады, бірақ олар соңғы нәтиже тізбегінде пайда болмайды. Контекстсіз грамматика арқылы құрылған тілдер контекстсіз тілдер (CFL) деп аталады. Әртүрлі контекстсіз грамматикалар бірдей контекстсіз тілді құра алады. Тілдің қасиеттерін (ішкі қасиеттері) белгілі бір грамматиканың қасиеттерінен (сыртқы қасиеттері) ажырату маңызды. Тілдік теңдік мәселесі (екі контекстсіз грамматика бір тілді тудыра ма?) шешілмейді. Контекстсіз грамматика лингвистикада қолданылады, онда олар сөйлемдер мен сөздердің құрылымын сипаттау үшін табиғи тілде қолданылады, және оларды осы мақсат үшін лингвист Ноам Хомский ойлап тапты. Ал компьютерлік ғылымда рекурсивті анықталған түсініктерді қолданудың артуымен олар көбірек қолданылды. Алғашқы қолданыста грамматика бағдарламалау тілдерінің құрылымын сипаттау үшін қолданылды. Жаңа қолданыста олар Extensible Markup Language (XML) құжаттың түрін анықтау деп аталатын маңызды бөлігінде қолданылады. Лингвистикада кейбір авторлар фразалық құрылым грамматикасы терминін контекстсіз грамматикаға сілтеме жасау үшін қолданады, бұл ретте фразалық құрылым грамматикасы тәуелділік грамматикасынан ерекшеленеді. Компьютерлік ғылымда контекстсіз грамматиканың танымал белгісі — Backus–Naur формасы немесе BNF.
In formal language theory, a context free grammar (CFG) is a formal grammar whose production rules
can be applied to a nonterminal symbol regardless of its context. In particular, in a context free grammar, each production rule is of the form
with a single nonterminal symbol, and a string of terminals and/or nonterminals ( can be empty). Regardless of which symbols surround it, the single nonterminal on the left hand side can always be replaced by on the right hand side. This distinguishes it from a context sensitive grammar, which can have production rules in the form with a nonterminal symbol and , , and strings of terminal and/or nonterminal symbols. A formal grammar is essentially a set of production rules that describe all possible strings in a given formal language. Production rules are simple replacements. For example, the first rule in the picture,
replaces with There can be multiple replacement rules for a given nonterminal symbol. The language generated by a grammar is the set of all strings of terminal symbols that can be derived, by repeated rule applications, from some particular nonterminal symbol ("start symbol"). Nonterminal symbols are used during the derivation process, but do not appear in its final result string. Languages generated by context free grammars are known as context free languages (CFL). Different context free grammars can generate the same context free language. It is important to distinguish the properties of the language (intrinsic properties) from the properties of a particular grammar (extrinsic properties). The language equality question (do two given context free grammars generate the same language?) is undecidable. Context free grammars arise in linguistics where they are used to describe the structure of sentences and words in a natural language, and they were invented by the linguist Noam Chomsky for this purpose. By contrast, in computer science, as the use of recursively defined concepts increased, they were used more and more. In an early application, grammars are used to describe the structure of programming languages. In a newer application, they are used in an essential part of the Extensible Markup Language (XML) called the document type definition. In linguistics, some authors use the term phrase structure grammar to refer to context free grammars, whereby phrase structure grammars are distinct from dependency grammars. In computer science, a popular notation for context free grammars is Backus–Naur form, or BNF.
Ереже қолдану
Кез келген жолдар үшін, егер және осындай болса, онда u тікелей v-ге өтеді деп айтамыз, жазылады . Осылайша, v – u-ға ережесін қолданудың нәтижесі.
Қайталанатын ереже қолдану
Кез келген тізбек үшін, егер k оң бүтін саны және тізбектер болса, онда u, v-ны береді немесе v, u-дан туындайды дейміз. Бұл қатынас деп белгіленеді, немесе кейбір оқулықтарда . Егер , онда қатынас орындалады. Басқаша айтқанда, және сәйкесінше, рефлексивті транзитивті жабылу (тізбектің өзін-өзіне туындауына мүмкіндік береді) және транзитивті жабылу (кем дегенде бір қадам қажет) болып табылады.
Екі есе үлкен b-дің екінші блогы
Тәртіптік емес тілдің тағы бір мысалы – ол контекстсіз, себебі оны келесі контекстсіз грамматика жасауға болады:
Бірінші реттік логикалық формулалар
Формалды логиканың терминдері мен формулаларын құру ережелері контекстсіз грамматиканың анықтамасына сай келеді, бірақ символдар жиыны шексіз болуы мүмкін және бірнеше бастапқы символдар болуы мүмкін.
Қалыпты нысандар
Кез келген ε-өндірісі жоқ контекстсіз грамматиканың Хомскийдің қалыпты түріндегі және Грейбахтың қалыпты түріндегі эквивалентті грамматикасы болады. Мұндағы "эквивалентті" екі грамматиканың да бірдей тілді құрайтынын білдіреді. Хомскийдің қалыпты түріндегі грамматикадағы өндіріс ережелерінің ерекше қарапайым түрі теориялық және практикалық тұрғыдан маңызды. Мысалы, контекстсіз грамматика берілген жағдайда, Хомскийдің қалыпты түрін пайдаланып, берілген жолдың осы грамматикамен бейнеленген тілге жата ма, жатпай ма, анықтайтын полиномиалдық уақыт алгоритмін құруға болады (CYK алгоритмі).
Шешілетін мәселелер
Төменде контекстсіз грамматикаларға қатысты шешілетін бірнеше мәселелер келтірілген.
Дәйектілік және ТЖК тексерулері
Берілген грамматиканың реттелген грамматика екендігі, сондай-ақ берілген k≥0 үшін LL(k) грамматикасы екендігі шешіледі. Егер k көрсетілмесе, соңғы мәселе шешілмейді, және берілген k үшін LL(k) тілі екендігі де шешілмейді.
Шешілмейтін мәселелер
Кейбір сұрақтар, грамматиканың кеңірек кластары үшін шешілмейтін болып табылады, контекстсіз грамматика үшін шешілетін болады; мысалы, бос грамматика мәселесі (грамматика ешбір терминалдық тізбектерді тудыра ма), контекстке сезімтал грамматика үшін шешілмейді, бірақ контекстсіз грамматика үшін шешіледі. Дегенмен, көптеген мәселелер тіпті контекстсіз грамматика үшін де шешілмейді; ең маңыздылары төменде қарастырылады.
Ұзартулар
Контексттік еркін грамматикалық формализмді кеңейтудің айқын жолы – терминал емес элементтерге аргументтерді қосып, олардың мәндерін ережелер ішінде жіберуге мүмкіндік беру болып табылады. Бұл келісім және сілтеме сияқты табиғи тілдің ерекшеліктерін, сондай-ақ идентификаторларды дұрыс пайдалану және анықтау сияқты бағдарламалау тілдеріндегі ұқсас мүмкіндіктерді табиғи түрде бейнелеуге мүмкіндік береді. Мысалы, ағылшын тіліндегі сөйлемдерде жатыс пен етістік сан жағынан үйлесуі керек. Компьютер ғылымында осы тәсілге аффикс грамматикасы, атрибут грамматикасы, индекстелген грамматика және Ван Вийнгарденнің екі деңгейлі грамматикасы жатады. Тіл білімінде де осыған ұқсас кеңейтулер бар. Кеңейтілген контексттік еркін грамматика (немесе тұрақты оң жақты грамматика) – өндіріс ережелерінің оң жағында грамматиканың терминалдары мен терминал емес элементтерінен тұратын тұрақты өрнектерге рұқсат етілген грамматика болып табылады. Кеңейтілген контексттік еркін грамматикалар контексттік еркін тілдерді нақты сипаттайды. Тағы бір кеңейту – ережелердің сол жағында қосымша терминал символдарының пайда болуына рұқсат ету, осылайша олардың қолданылуын шектеу. Бұл контекстке сезімтал грамматиканың формализмін құрайды.
Тілдік қолдану
Чомsky бастапқыда трансформация ережелерін қосу арқылы контекстсіз грамматиканың шектеулерін жеңуге үміттенді. Бірақ, оның контекстсіз грамматиканың әлсіз генеративтік қабілеті тұрғысынан жеткіліксіздігіне қатысты берген нақты мысалдары кейіннен дұрыс емес екені дәлелденді. Джеральд Газдар мен Джеффри Пуллум табиғи тілдегі кейбір контекстсіз емес құрылымдарға қарамастан (мысалы, швейцариялық неміс тіліндегі өзара байланысты тәуелділіктер сияқты), табиғи тілдегі формалардың көп бөлігінің шын мәнінде контекстсіз екенін айтты.