औपचारिक व्याकरण: Difference between revisions
(→इतिहास) |
No edit summary |
||
(27 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Structure of a formal language}} | {{Short description|Structure of a formal language}} | ||
[[औपचारिक भाषा]] सिद्धांत में, व्याकरण जब संदर्भ नहीं दिया जाता है, जिसे | [[औपचारिक भाषा]] सिद्धांत में, व्याकरण (जब संदर्भ नहीं दिया जाता है, जिसे अधिकांशतः स्पष्टता के लिए एक औपचारिक व्याकरण कहा जाता है) वर्णन करता है कि किसी भाषा के [[वर्णमाला]] से श्रृंखला कैसे बनाये जाते है जो भाषा के वाक्य-विन्यास के अनुसार मान्य होते है। व्याकरण शब्दार्थ का वर्णन नहीं करता है जबकि किसी भी संदर्भ में उनके साथ क्या किया जा सकता है - केवल उनका रूप का भी वर्णन करता है औपचारिक व्याकरण को औपचारिक भाषा में ऐसे श्रृंखला के प्रस्तुतिकरण नियमों को सेट के रूप में परिभाषित किया जाता है। | ||
औपचारिक भाषा सिद्धांत, अनुशासन जो औपचारिक व्याकरण और भाषाओं का अध्ययन करता है, अनुप्रयुक्त गणित की एक शाखा है। इसके अनुप्रयोग [[सैद्धांतिक कंप्यूटर विज्ञान]], [[सैद्धांतिक भाषाविज्ञान]], [[औपचारिक शब्दार्थ (तर्क)]], [[गणितीय तर्क]] और अन्य क्षेत्रों में पाए जाते | औपचारिक भाषा सिद्धांत, अनुशासन जो औपचारिक व्याकरण और भाषाओं का अध्ययन करता है, अनुप्रयुक्त गणित की एक शाखा है। इसके अनुप्रयोग [[सैद्धांतिक कंप्यूटर विज्ञान]], [[सैद्धांतिक भाषाविज्ञान]], [[औपचारिक शब्दार्थ (तर्क)]], [[गणितीय तर्क]] और अन्य क्षेत्रों में पाए जाते है। | ||
औपचारिक व्याकरण | औपचारिक व्याकरण नियमों का एक समूह है, जिससे पुनर्लेखन प्रारंभ होता है। इसलिए, व्याकरण को सामान्यतः भाषा जनरेटर के रूप में जाना जाता है। चूँकि, इसे कभी-कभी [[पहचानकर्ता]] के आधार के रूप में भी उपयोग किया जा सकता है - कंप्यूटिंग में एक फ़ंक्शन जो यह निर्धारित करता है कि दी गई स्ट्रिंग भाषा से संबंधित है या व्याकरणिक रूप से गलत है। ऐसे पहचानकर्ताओं का वर्णन करने के लिए, औपचारिक भाषा सिद्धांत अलग औपचारिकता का उपयोग करता है, जिसे [[ऑटोमेटा सिद्धांत]] के रूप में जाना जाता है। ऑटोमेटा सिद्धांत के रोचक परिणामों में से एक यह है कि कुछ औपचारिक भाषाओं के लिए पहचानकर्ता को डिजाइन करना संभव नहीं होता है।<ref>{{citation|title=Formal Languages and Computation: Models and Their Applications|first=Alexander|last=Meduna|publisher=CRC Press|year=2014|isbn=9781466513457|page=233|url=https://books.google.com/books?id=KJ-NAgAAQBAJ&pg=PA233}}. For more on this subject, see [[undecidable problem]].</ref> [[पदच्छेद|पार्सिंग]] एक उच्चारण (प्राकृतिक भाषाओं में एक स्ट्रिंग) को प्रतीकों के सेट को खंडन करके और भाषा के व्याकरण के विपरीत, प्रत्येक का विश्लेषण करके पहचानने की प्रक्रिया है। अधिकांश भाषाओं में उनके कथनों के अर्थ उनके वाक्य-विन्यास के अनुसार संरचित होते है - एक अभ्यास जिसे रचनात्मक शब्दार्थ के रूप में जाना जाता है। परिणाम स्वरुप, भाषा में एक उच्चारण के अर्थ का वर्णन करने के लिए पहला कदम यह है कि इसे अलग-अलग हिस्सों में विभाजित किया जाए और इसके विश्लेषित रूप को देखा जाए (कंप्यूटर विज्ञान में इसे [[पार्स पेड़|पार्स ट्री]] के रूप में जाना जाता है, और जनरेटिक व्याकरण में [[गहरी संरचना और सतह संरचना]] के रूप में जाना जाता है)। | ||
== इतिहास == | == इतिहास == | ||
{{IAST|[[पाणिनि]]}}' का ग्रंथ अष्टाध्यायी [[संस्कृत]] के औपचारिक व्याकरण का वर्णन करने के लिए औपचारिक नियम और परिभाषाएँ देता है।<ref>{{cite web|title=Panini biography|url=http://www-history.mcs.st-andrews.ac.uk/Biographies/Panini.html|website=www-history.mcs.st-andrews.ac.uk|archive-url=https://web.archive.org/web/20180815012712/http://www-history.mcs.st-andrews.ac.uk/Biographies/Panini.html|archive-date=2018-08-15}}</ref> प्रपत्र और औपचारिकता के विभिन्न उपयोग है, जो समय के साथ बदल गए है, संबंधित लेखक के संपर्क में आने वाले क्षेत्रों के आधार पर, अवधारणा का एक ऐतिहासिक अवलोकन <ref name="mcelvenny">{{Cite book | |||
{{IAST|[[ | |||
| veditors = McElvenny J | | veditors = McElvenny J | ||
| title = Form and formalism in linguistics | | title = Form and formalism in linguistics | ||
Line 22: | Line 21: | ||
| first1 = James | | first1 = James | ||
}} | }} | ||
</ref> में दिया गया | </ref> में दिया गया है। | ||
== परिचयात्मक उदाहरण == | == परिचयात्मक उदाहरण == | ||
एक व्याकरण मुख्य रूप से [[उत्पादन (कंप्यूटर विज्ञान)]] का एक सेट होता है, | एक व्याकरण मुख्य रूप से [[उत्पादन (कंप्यूटर विज्ञान)|प्रस्तुतिकरण (कंप्यूटर विज्ञान)]] का एक सेट होता है, श्रृंखला को बदलने के लिए नियमों को फिर से लिखना होता है। प्रत्येक नियम एक विशेष स्ट्रिंग (इसके बाएँ हाथ की ओर) को दूसरे (इसके दाएँ हाथ की ओर) के प्रतिस्थापन को निर्दिष्ट करता है। प्रत्येक स्ट्रिंग पर एक नियम लागू किया जा सकता है जिसमें इसकी बाईं ओर सम्मलित होता है और एक स्ट्रिंग उत्पन्न करता है जिसमें उस बाएं हाथ की घटना को उसके दाएं हाथ से बदल दिया जाता है। | ||
[[अर्ध-थू प्रणाली]] के विपरीत, जो पूरी तरह से इन नियमों द्वारा परिभाषित है, | [[अर्ध-थू प्रणाली]] के विपरीत, जो पूरी तरह से इन नियमों द्वारा परिभाषित है, व्याकरण आगे दो प्रकार के प्रतीकों के बीच अंतर करता है: गैर-टर्मिनल, टर्मिनल प्रतीक, प्रत्येक बाईं ओर कम से कम एक गैर-टर्मिनल प्रतीक होना चाहिए। यह एक विशेष गैर-टर्मिनल प्रतीक को भी अलग करता है, जिसे प्रारंभ प्रतीक कहा जाता है। | ||
व्याकरण द्वारा उत्पन्न भाषा को बिना किसी गैर-टर्मिनल प्रतीकों के सभी स्ट्रिंग्स के सेट के रूप में परिभाषित किया | व्याकरण द्वारा उत्पन्न भाषा को बिना किसी गैर-टर्मिनल प्रतीकों के सभी स्ट्रिंग्स के सेट के रूप में परिभाषित किया जाता है, जो कि किसी भी तरह से अपने नियमों के अनुप्रयोग (संभावित रूप से दोहराए गए) द्वारा एकल प्रारंभ प्रतीक वाले स्ट्रिंग से उत्पन्न किया जा सकता है। यदि एक ही स्ट्रिंग को उत्पन्न करने के अनिवार्य रूप से अलग-अलग विधि है, तो व्याकरण को [[अस्पष्ट व्याकरण]] कहा जाता है। | ||
यदि एक ही स्ट्रिंग को उत्पन्न करने के अनिवार्य रूप से अलग-अलग | |||
निम्नलिखित उदाहरणों में, टर्मिनल प्रतीक | निम्नलिखित उदाहरणों में, टर्मिनल प्रतीक ए और बी है, और प्रारंभ प्रतीक एस है। | ||
=== उदाहरण 1 === | === उदाहरण 1 === | ||
मान लीजिए कि हमारे पास निम्नलिखित | मान लीजिए कि हमारे पास निम्नलिखित प्रस्तुतिकरण नियम है: | ||
: 1. <math>S \rightarrow aSb</math> | : 1. <math>S \rightarrow aSb</math> | ||
: 2. <math>S \rightarrow ba</math> | : 2. <math>S \rightarrow ba</math> | ||
तो हम | तो हम ''S'' से प्रारंभ करते है, और इसे लागू करने के लिए नियम चुन सकते है। यदि हम नियम 1 चुनते हैं, तो हमें स्ट्रिंग aSb प्राप्त होती है। यदि हम नियम 1 को फिर से चुनते हैं, तो हम S को aSb से बदल देते हैं और स्ट्रिंग aaSbb प्राप्त करते हैं। यदि अब हम नियम 2 चुनते हैं, तो हम S को ba से प्रतिस्थापित करते हैं और स्ट्रिंग aababb प्राप्त करते हैं, और किया जाता है। हम प्रतीकों का उपयोग करके विकल्पों की इस श्रृंखला को और संक्षेप में लिख सकते है: | ||
व्याकरण की भाषा अनंत समुच्चय है <math>\{a^nbab^n \mid n \geq 0 \} = \{ba, abab, aababb, aaababbb, \dotsc \}</math>, | <math>S \Rightarrow aSb \Rightarrow aaSbb \Rightarrow aababb</math>. | ||
व्याकरण की भाषा अनंत समुच्चय है <math>\{a^nbab^n \mid n \geq 0 \} = \{ba, abab, aababb, aaababbb, \dotsc \}</math>, जहां <math>a^k</math> है <math>a</math> दोहराया गया <math>k</math> के समय (और ''n'' विशेष रूप से प्रस्तुतिकरण नियम 1 लागू होने की संख्या का प्रतिनिधित्व करता है)। यह व्याकरण संदर्भ-मुक्त है (केवल एकल गैर-टर्मिनल बाईं ओर दिखाई देते है) और असंदिग्ध है। | |||
=== उदाहरण 2 और 3 === | === उदाहरण 2 और 3 === | ||
मान लीजिए नियम इसके | मान लीजिए नियम इसके अतिरिक्त है: | ||
: 1. <math>S \rightarrow a</math> | : 1. <math>S \rightarrow a</math> | ||
: 2. <math>S \rightarrow SS</math> | : 2. <math>S \rightarrow SS</math> | ||
: 3. <math>aSa \rightarrow b</math> | : 3. <math>aSa \rightarrow b</math> | ||
यह व्याकरण नियम 3 के कारण संदर्भ-मुक्त नहीं है और यह कई तरीकों के कारण अस्पष्ट है जिसमें नियम 2 का उपयोग क्रम उत्पन्न करने के लिए किया जा सकता है <math>S</math>एस। | यह व्याकरण नियम 3 के कारण संदर्भ-मुक्त नहीं है और यह कई तरीकों के कारण अस्पष्ट है जिसमें नियम 2 का उपयोग क्रम उत्पन्न करने के लिए किया जा सकता है <math>S</math> एस। | ||
चूँकि, यह जो भाषा उत्पन्न करता है, वह केवल सभी गैर-खाली श्रृंखला का समूह है <math>a</math> एस और/या <math>b</math> एस के रूप में। | |||
यह देखना आसान है: <math>a</math>एस और/या <math>b</math> एस। यह देखना आसान है: उत्पन्न करने के लिए <math>b</math> एक से <math>S</math>, जनरेट करने के लिए नियम 2 का दो बार उपयोग करें <math>SSS</math>, फिर नियम 1 दो बार और नियम 3 एक बार उत्पन्न करने के लिए <math>b</math>. इसका मतलब है कि हम मनमाने ढंग से गैर-खाली अनुक्रम उत्पन्न कर सकते है <math>S</math> एस और फिर उनमें से प्रत्येक को इसके साथ बदलें <math>a</math> या <math>b</math> जैसा हम चाहते है। | |||
यह देखना आसान है: उत्पन्न करने के लिए <math>b</math> एक से <math>S</math>, जनरेट करने के लिए नियम 2 का दो बार उपयोग करें <math>SSS</math>, फिर नियम 1 दो बार और नियम 3 एक बार उत्पन्न करने के लिए <math>b</math>. इसका मतलब है कि हम मनमाने ढंग से गैर-खाली अनुक्रम उत्पन्न कर सकते | |||
वही भाषा वैकल्पिक रूप से एक संदर्भ-मुक्त, असंदिग्ध व्याकरण द्वारा उत्पन्न की जा सकती है; उदाहरण के लिए, | वही भाषा वैकल्पिक रूप से एक संदर्भ-मुक्त, असंदिग्ध व्याकरण द्वारा उत्पन्न की जा सकती है; उदाहरण के लिए, नियमों के साथ नियमित व्याकरण | ||
: 1. <math>S \rightarrow aS</math> | : 1. <math>S \rightarrow aS</math> | ||
Line 62: | Line 63: | ||
: 3. <math>S \rightarrow a</math> | : 3. <math>S \rightarrow a</math> | ||
: 4. <math>S \rightarrow b</math> | : 4. <math>S \rightarrow b</math> | ||
== औपचारिक परिभाषा == | == औपचारिक परिभाषा == | ||
{{main| | {{main| | ||
अप्रतिबंधित व्याकरण}} | |||
=== व्याकरण का वाक्य-विन्यास === | === व्याकरण का वाक्य-विन्यास === | ||
Line 75: | Line 74: | ||
| location = The Hague | | location = The Hague | ||
| year = 1957 | | year = 1957 | ||
}}</ref> एक व्याकरण G में निम्नलिखित घटक होते | }}</ref> एक व्याकरण G में निम्नलिखित घटक होते है: | ||
* [[गैर-टर्मिनल प्रतीक]] | * [[गैर-टर्मिनल प्रतीक|गैर-टर्मिनल प्रतीको]] का परिमित सेट N, जो कि G से बने स्ट्रिंग्स के साथ [[अलग करना सेट]] है। | ||
* परिमित समुच्चय <math>\Sigma</math> [[टर्मिनल प्रतीक]] | * परिमित समुच्चय <math>\Sigma</math> [[टर्मिनल प्रतीक|टर्मिनल प्रतीको]] की संख्या जो N से विसंधित सेट है। | ||
* | * प्रस्तुतिकरण नियमों का एक परिमित समुच्चय, प्रपत्र का प्रत्येक नियम | ||
:: <math>(\Sigma \cup N)^{*} N (\Sigma \cup N)^{*} \rightarrow (\Sigma \cup N)^{*} </math> :कहाँ <math>{*}</math> [[क्लेन स्टार]] ऑपरेटर है और <math>\cup</math> [[संघ (सेट सिद्धांत)]] को दर्शाता है। यही है, प्रत्येक | :: <math>(\Sigma \cup N)^{*} N (\Sigma \cup N)^{*} \rightarrow (\Sigma \cup N)^{*} </math> :कहाँ <math>{*}</math> [[क्लेन स्टार]] ऑपरेटर है और <math>\cup</math> [[संघ (सेट सिद्धांत)]] को दर्शाता है। यही है, प्रत्येक प्रस्तुतिकरण नियम प्रतीकों की एक स्ट्रिंग से दूसरे में मैप करता है, जहां पहली स्ट्रिंग (सिर) में मनमाने ढंग से प्रतीकों की संख्या होती है, बशर्ते उनमें से कम से कम एक गैर-टर्मिनल हो। स्थितियों में कि दूसरी स्ट्रिंग में केवल रिक्त [[खाली स्ट्रिंग|स्ट्रिंग]] होती है-अर्थात, इसमें कोई प्रतीक नहीं होता है- इसे एक विशेष संकेतन के साथ दर्शाया जा सकता है (अधिकांशतः <math>\Lambda</math>, ई या <math>\epsilon</math>) भ्रम से बचने के लिए। | ||
* एक विशिष्ट प्रतीक <math>S \in N</math> वह प्रारंभ चिह्न है, जिसे वाक्य चिह्न भी कहा जाता है। | * एक विशिष्ट प्रतीक <math>S \in N</math> वह प्रारंभ चिह्न है, जिसे वाक्य चिह्न भी कहा जाता है। | ||
एक व्याकरण को औपचारिक रूप से [[टपल]] के रूप में परिभाषित किया जाता है <math>(N, \Sigma, P, S)</math>. इस तरह के एक औपचारिक व्याकरण को | एक व्याकरण को औपचारिक रूप से [[टपल]] के रूप में परिभाषित किया जाता है <math>(N, \Sigma, P, S)</math>. इस तरह के एक औपचारिक व्याकरण को अधिकांशतः साहित्य में [[पुनर्लेखन प्रणाली]] या [[वाक्यांश संरचना व्याकरण]] कहा जाता है।<ref>{{cite book|first=Seymour|last=Ginsburg|author-link=Seymour Ginsburg|title=Algebraic and automata theoretic properties of formal languages|publisher=North-Holland|pages=8–9|year=1975|isbn=978-0-7204-2506-2}}</ref><ref>{{cite book|last=Harrison|first=Michael A.|author-link=Michael A. Harrison|title=Introduction to Formal Language Theory|year=1978|pages=13|isbn=978-0-201-02955-0|location=Reading, Mass.|publisher=Addison-Wesley Publishing Company}}</ref> | ||
=== औपचारिक व्याकरण के संबंध में कुछ गणितीय निर्माण === | === औपचारिक व्याकरण के संबंध में कुछ गणितीय निर्माण === | ||
Line 90: | Line 87: | ||
*:<math>x \underset G \Rightarrow y \iff \exists u, v, p, q \in (\Sigma \cup N)^*: (x = upv) \wedge (p \rightarrow q \in P) \wedge (y = uqv)</math> | *:<math>x \underset G \Rightarrow y \iff \exists u, v, p, q \in (\Sigma \cup N)^*: (x = upv) \wedge (p \rightarrow q \in P) \wedge (y = uqv)</math> | ||
* रिश्ता <math>\overset * {\underset G \Rightarrow}</math> (जी के रूप में उच्चारित शून्य या अधिक चरणों में होता है) को रिफ्लेक्सिव सकर्मक बंद होने के रूप में परिभाषित किया गया है <math>\underset G \Rightarrow</math> | * रिश्ता <math>\overset * {\underset G \Rightarrow}</math> (जी के रूप में उच्चारित शून्य या अधिक चरणों में होता है) को रिफ्लेक्सिव सकर्मक बंद होने के रूप में परिभाषित किया गया है <math>\underset G \Rightarrow</math> | ||
* ए | * ए वाक्यात्मक रूप का सदस्य है <math>(\Sigma \cup N)^*</math> जिसे स्टार्ट सिंबल से सीमित संख्या में चरणों में प्राप्त किया जा सकता है <math>S</math>; अर्थात्, एक वाक्यात्मक रूप का सदस्य है <math>\left\{ w \in (\Sigma \cup N)^* \mid S \overset * {\underset G \Rightarrow} w \right\}</math>. एक वाक्यात्मक रूप जिसमें कोई गैर-टर्मिनल प्रतीक नहीं है (अर्थात इसका सदस्य है <math>\Sigma^*</math>) वाक्य कहलाता है।<ref>[http://www.seas.upenn.edu/~cit596/notes/dave/cfg7.html Sentential Forms], Context-Free Grammars, David Matuszek</ref> | ||
* की भाषा <math>G</math>, इस रूप में घोषित किया गया <math>\boldsymbol{L}(G)</math>, द्वारा निर्मित वाक्यों के सेट के रूप में परिभाषित किया गया है <math>G</math>. | * की भाषा <math>G</math>, इस रूप में घोषित किया गया <math>\boldsymbol{L}(G)</math>, द्वारा निर्मित वाक्यों के सेट के रूप में परिभाषित किया गया है <math>G</math>. | ||
ध्यान दें कि व्याकरण <math>G = (N, \Sigma, P, S)</math> प्रभावी रूप से अर्ध-थू प्रणाली है <math>(N \cup \Sigma, P)</math>, ठीक उसी तरह से तार को फिर से लिखना; एकमात्र अंतर यह है कि हम विशिष्ट गैर-टर्मिनल प्रतीकों को अलग करते | ध्यान दें कि व्याकरण <math>G = (N, \Sigma, P, S)</math> प्रभावी रूप से अर्ध-थू प्रणाली है <math>(N \cup \Sigma, P)</math>, ठीक उसी तरह से तार को फिर से लिखना; एकमात्र अंतर यह है कि हम विशिष्ट गैर-टर्मिनल प्रतीकों को अलग करते है, जिन्हें पुनर्लेखन नियमों में फिर से लिखा जाना चाहिए, और केवल निर्दिष्ट प्रारंभ प्रतीक से पुनर्लेखन में रुचि रखते है <math>S</math> गैर-टर्मिनल प्रतीकों के बिना तार के लिए। | ||
=== उदाहरण === | === उदाहरण === | ||
इन उदाहरणों के लिए, [[सेट-बिल्डर नोटेशन]] का उपयोग करके औपचारिक भाषाएँ निर्दिष्ट की जाती | इन उदाहरणों के लिए, [[सेट-बिल्डर नोटेशन]] का उपयोग करके औपचारिक भाषाएँ निर्दिष्ट की जाती है। | ||
व्याकरण पर विचार करें <math>G</math> कहाँ <math>N = \left \{S, B\right \}</math>, <math>\Sigma = \left \{a, b, c\right \}</math>, <math>S</math> प्रारंभ प्रतीक है, और <math>P</math> निम्नलिखित | व्याकरण पर विचार करें <math>G</math> कहाँ <math>N = \left \{S, B\right \}</math>, <math>\Sigma = \left \{a, b, c\right \}</math>, <math>S</math> प्रारंभ प्रतीक है, और <math>P</math> निम्नलिखित प्रस्तुतिकरण नियमों के होते है: | ||
: 1. <math>S \rightarrow aBSc</math> | : 1. <math>S \rightarrow aBSc</math> | ||
Line 104: | Line 101: | ||
: 3. <math>Ba \rightarrow aB</math> | : 3. <math>Ba \rightarrow aB</math> | ||
: 4. <math>Bb \rightarrow bb </math> | : 4. <math>Bb \rightarrow bb </math> | ||
यह व्याकरण भाषा को परिभाषित करता है <math>L(G) = \left \{ a^{n}b^{n}c^{n} \mid n \ge 1 \right \}</math> कहाँ <math>a^{n}</math> लगातार n की एक स्ट्रिंग को दर्शाता है <math>a</math>'एस। इस प्रकार, भाषा | यह व्याकरण भाषा को परिभाषित करता है <math>L(G) = \left \{ a^{n}b^{n}c^{n} \mid n \ge 1 \right \}</math> कहाँ <math>a^{n}</math> लगातार n की एक स्ट्रिंग को दर्शाता है <math>a</math>'एस। इस प्रकार, भाषा श्रृंखला का समूह है जिसमें 1 या अधिक होते है <math>a</math>की, उसके बाद समान संख्या में <math>b</math>की, उसके बाद समान संख्या में <math>c</math>'एस। | ||
स्ट्रिंग्स की व्युत्पत्ति के कुछ उदाहरण <math>L(G)</math> | स्ट्रिंग्स की व्युत्पत्ति के कुछ उदाहरण <math>L(G)</math> है: | ||
{{columns-list|colwidth=22em| | |||
* <math>\boldsymbol{S} \underset 2 \Rightarrow \boldsymbol{abc}</math> | * <math>\boldsymbol{S} \underset 2 \Rightarrow \boldsymbol{abc}</math> | ||
* <math>\begin{align} \boldsymbol{S} & \underset 1 \Rightarrow \boldsymbol{aBSc} \\ | * <math>\begin{align} \boldsymbol{S} & \underset 1 \Rightarrow \boldsymbol{aBSc} \\ | ||
Line 120: | Line 117: | ||
& \underset 4 \Rightarrow aaaB\boldsymbol{bb}ccc \underset 4 \Rightarrow aaa\boldsymbol{bb}bccc \end{align}</math> | & \underset 4 \Rightarrow aaaB\boldsymbol{bb}ccc \underset 4 \Rightarrow aaa\boldsymbol{bb}bccc \end{align}</math> | ||
}} | }} | ||
:(नोटेशन पर ध्यान दें: <math>P \underset i \Rightarrow Q</math> स्ट्रिंग पढ़ता है {{mvar|P}} तार उत्पन्न करता है {{mvar|Q}} | :(नोटेशन पर ध्यान दें: <math>P \underset i \Rightarrow Q</math> स्ट्रिंग पढ़ता है {{mvar|P}} तार उत्पन्न करता है {{mvar|Q}} प्रस्तुतिकरण के माध्यम से {{mvar|i}}, और उत्पन्न भाग को हर बार बोल्ड टाइप में इंगित किया जाता है।) | ||
== चॉम्स्की पदानुक्रम == | == चॉम्स्की पदानुक्रम == | ||
{{main| | {{main| | ||
जब नोम चॉम्स्की ने पहली बार 1956 में जनरेटिव व्याकरण को औपचारिक रूप दिया,<ref name="Chomsky1956"/>उन्होंने उन्हें प्रकारों में वर्गीकृत किया जिसे अब [[चॉम्स्की पदानुक्रम]] के रूप में जाना जाता है। इन प्रकारों के बीच अंतर यह है कि उनके | चॉम्स्की पदानुक्रम}} | ||
जब '''नोम चॉम्स्की''' ने पहली बार 1956 में जनरेटिव व्याकरण को औपचारिक रूप दिया,<ref name="Chomsky1956"/>उन्होंने उन्हें प्रकारों में वर्गीकृत किया जिसे अब [[चॉम्स्की पदानुक्रम]] के रूप में जाना जाता है। इन प्रकारों के बीच अंतर यह है कि उनके प्रस्तुतिकरण के सख्त नियम है और इसलिए वे कम औपचारिक भाषाओं को व्यक्त कर सकते है। दो महत्वपूर्ण प्रकार है संदर्भ-मुक्त व्याकरण (प्रकार 2) और [[नियमित व्याकरण]] (प्रकार 3)। ऐसे व्याकरण से जिन भाषाओं का वर्णन किया जा सकता है, उन्हें क्रमशः [[संदर्भ-मुक्त भाषा]]एँ और [[नियमित भाषा]]एँ कहा जाता है। चूंकि [[अप्रतिबंधित व्याकरण]] (टाइप 0) की तुलना में बहुत कम शक्तिशाली होता है, जो वास्तव में किसी भी भाषा को व्यक्त कर सकता है जिसे [[ट्यूरिंग मशीन]] द्वारा स्वीकार किया जा सकता है, इन दो प्रतिबंधित प्रकार के व्याकरणों का सबसे अधिक उपयोग किया जाता है क्योंकि उनके लिए पारसर्स को कुशलता से लागू किया जा सकता है।<ref name="Grune&Jacobs1990">Grune, Dick & Jacobs, Ceriel H., ''Parsing Techniques – A Practical Guide'', Ellis Horwood, England, 1990.</ref> उदाहरण के लिए, सभी नियमित भाषाओं को एक परिमित-स्थित मशीन द्वारा पहचाना जा सकता है, और संदर्भ-मुक्त व्याकरण के उपयोगी उपसमुच्चय के लिए कुशल [[एलएल पार्सर]] और [[एलआर पार्सर]] उत्पन्न करने के लिए जाने-माने एल्गोरिदम होते है जो व्याकरण उत्पन्न करने वाली संबंधित भाषाओं को पहचानते है। | |||
=== प्रसंग-मुक्त व्याकरण === | === प्रसंग-मुक्त व्याकरण === | ||
संदर्भ-मुक्त व्याकरण वह व्याकरण है जिसमें प्रत्येक प्रस्तुतिकरण नियम के बाईं ओर केवल एक गैर-टर्मिनल प्रतीक होता है। यह प्रतिबंध गैर-तुच्छ है; संदर्भ-मुक्त व्याकरण द्वारा सभी भाषाएँ उत्पन्न नहीं की जा सकतीं। जिन्हें संदर्भ-मुक्त भाषा कहा जा सकता है। | |||
भाषा <math>L(G) = \left \{ a^{n}b^{n}c^{n} \mid n \ge 1 \right \}</math> ऊपर परिभाषित | भाषा <math>L(G) = \left \{ a^{n}b^{n}c^{n} \mid n \ge 1 \right \}</math> ऊपर परिभाषित संदर्भ-मुक्त भाषा नहीं है, और यह संदर्भ-मुक्त भाषाओं के लिए पंपिंग लेम्मा का उपयोग करके कड़ाई से सिद्ध किया जा सकता है, लेकिन उदाहरण के लिए भाषा <math>\left \{ a^{n}b^{n} \mid n \ge 1 \right \}</math> (कम से कम 1 <math>a</math> के बाद समान संख्या में <math>b</math><nowiki>''</nowiki>s) संदर्भ-मुक्त है, क्योंकि इसे व्याकरण द्वारा परिभाषित किया जा सकता है <math>G_2</math> साथ <math>N=\left \{S\right \}</math>, <math>\Sigma=\left \{a,b\right \}</math>, <math>S</math> प्रारंभ प्रतीक, और निम्नलिखित प्रस्तुतिकरण नियम: | ||
: 1. <math>S \rightarrow aSb</math> | : 1. <math>S \rightarrow aSb</math> | ||
: 2. <math>S \rightarrow ab</math> | : 2. <math>S \rightarrow ab</math> | ||
एक संदर्भ-मुक्त भाषा में पहचाना जा सकता है <math>O(n^3)</math> समय ([[बिग ओ नोटेशन]] देखें) एक एल्गोरिथम द्वारा जैसे कि अर्ली पार्सर | एक संदर्भ-मुक्त भाषा में पहचाना जा सकता है <math>O(n^3)</math> समय ([[बिग ओ नोटेशन]] देखें) एक एल्गोरिथम द्वारा जैसे कि अर्ली पार्सर एल्गोरिथम अर्ली का पहचानकर्ता अर्थात्, प्रत्येक संदर्भ-मुक्त भाषा के लिए, एक मशीन बनाई जा सकती है जो एक स्ट्रिंग को इनपुट के रूप में लेती है और निर्धारित करती है <math>O(n^3)</math> समय क्या स्ट्रिंग भाषा का सदस्य है, जहा n स्ट्रिंग की लंबाई है। <ref name="Earley1970">Earley, Jay, "[http://ra.adm.cs.cmu.edu/anon/home/anon/usr/ftp/scan/CMU-CS-68-earley.pdf An Efficient Context-Free Parsing Algorithm]," ''Communications of the ACM'', Vol. 13 No. 2, pp. 94-102, February 1970.</ref> [[नियतात्मक संदर्भ-मुक्त भाषा]]एँ संदर्भ-मुक्त भाषाओं का एक सबसेट है जिसे रैखिक समय में पहचाना जा सकता है। <ref>{{Cite journal | last1 = Knuth | first1 = D. E. | author-link = Donald Knuth | title = On the translation of languages from left to right | doi = 10.1016/S0019-9958(65)90426-2 | journal = Information and Control | volume = 8 | issue = 6 | pages = 607–639 | date = July 1965 | doi-access = free }}</ref> ऐसे कई एल्गोरिदम उपस्थित है जो या तो भाषाओं के इस सेट या इसके कुछ सबसेट को लक्षित करते है। | ||
=== नियमित व्याकरण === | === नियमित व्याकरण === | ||
नियमित व्याकरण में, | नियमित व्याकरण में, बायीं ओर केवल गैर-टर्मिनल प्रतीक होते है, लेकिन अब दायां हाथ भी प्रतिबंधित है। लेकिन अब दाहिनी ओर भी प्रतिबंधित है। एकल टर्मिनल प्रतीक, जिसके बाद एक गैर-टर्मिनल प्रतीक हो सकता है, लेकिन कुछ और नहीं है। कभी-कभी एक व्यापक परिभाषा का उपयोग किया जाता है: कोई भी बिना किसी अन्य चीज के टर्मिनलों या एकल गैर-टर्मिनलों के लंबे तार की अनुमति दे सकता है, जिससे भाषाओं को एक ही वर्ग की भाषाओं को परिभाषित करते हुए निरूपित करना आसान हो जाता है। | ||
भाषा <math>\left \{ a^{n}b^{n} \mid n \ge 1 \right \}</math> ऊपर परिभाषित नियमित नहीं है, लेकिन भाषा | भाषा <math>\left \{ a^{n}b^{n} \mid n \ge 1 \right \}</math> ऊपर परिभाषित नियमित नहीं है, लेकिन भाषा<math>\left \{ a^{n}b^{m} \mid m,n \ge 1 \right \}</math> (कम से कम 1 1 a के बाद कम से कम 1 b, जहाँ संख्याएँ भिन्न हो सकती है) है, क्योंकि इसे व्याकरण द्वारा परिभाषित किया जा सकता है है, <math>G_3</math> साथ <math>N=\left \{S, A,B\right \}</math>, <math>\Sigma=\left \{a,b\right \}</math>, <math>S</math> प्रारंभ प्रतीक, और निम्नलिखित प्रस्तुतिकरण नियम: | ||
:# <math>S \rightarrow aA</math> | :# <math>S \rightarrow aA</math> | ||
Line 145: | Line 144: | ||
:# <math>B \rightarrow bB</math> | :# <math>B \rightarrow bB</math> | ||
:# <math>B \rightarrow \epsilon</math> | :# <math>B \rightarrow \epsilon</math> | ||
एक नियमित व्याकरण द्वारा उत्पन्न सभी भाषाओं को पहचाना जा सकता है <math>O(n)</math> | एक नियमित व्याकरण द्वारा उत्पन्न सभी भाषाओं को पहचाना जा सकता है <math>O(n)</math> समय परिमित-स्थित मशीन द्वारा। चूंकि अभ्यास में, नियमित व्याकरण सामान्यतः नियमित अभिव्यक्तियों का उपयोग करके व्यक्त किया जाता है, अभ्यास में उपयोग की जाने वाली नियमित अभिव्यक्ति के कुछ रूप नियमित रूप से नियमित भाषाओं को उत्पन्न नहीं करते है और उन विचलनों के कारण रैखिक मान्यतात्मक प्रदर्शन नहीं दिखाते है। | ||
=== उत्पादक व्याकरण के अन्य रूप === | === उत्पादक व्याकरण के अन्य रूप === | ||
चॉम्स्की के औपचारिक व्याकरण के मूल पदानुक्रम पर कई विस्तार और विविधताएं भाषाविदों और कंप्यूटर वैज्ञानिकों द्वारा विकसित की गई | चॉम्स्की के औपचारिक व्याकरण के मूल पदानुक्रम पर कई विस्तार और विविधताएं भाषाविदों और कंप्यूटर वैज्ञानिकों द्वारा विकसित की गई है, सामान्यतः या तो उनकी अभिव्यंजक शक्ति को बढ़ाने के लिए या उन्हें विश्लेषण या पार्स करना आसान बनाने के लिए। विकसित व्याकरण के कुछ रूपों में सम्मलित है: | ||
* ट्री-आसन्न व्याकरण केवल स्ट्रिंग्स | * ट्री-आसन्न व्याकरण केवल स्ट्रिंग्स अतिरिक्त पार्स ट्री पर पुनर्लेखन नियमों को संचालित करने की अनुमति देकर पारंपरिक जनरेटिव व्याकरण की अभिव्यक्ति को बढ़ाते है।<ref name="JoshiEtAl1975">Joshi, Aravind K., ''et al.'', "[https://www.sciencedirect.com/science/article/pii/S0022000075800195/pdf?md5=82330b1e496c533551304514520a91e6&pid=1-s2.0-S0022000075800195-main.pdf Tree Adjunct Grammars]," ''Journal of Computer Systems Science'', Vol. 10 No. 1, pp. 136-163, 1975.</ref> | ||
* प्रत्यय व्याकरण<ref name="Koster1971">Koster , Cornelis H. A., "Affix Grammars," in ''ALGOL 68 Implementation'', North Holland Publishing Company, Amsterdam, p. 95-109, 1971.</ref> और [[विशेषता व्याकरण]]<ref name="Knuth1968">Knuth, Donald E., "[https://www.csee.umbc.edu/courses/331/fall16/01/resources/papers/Knuth67AG.pdf Semantics of Context-Free Languages]," ''Mathematical Systems Theory'', Vol. 2 No. 2, pp. 127-145, 1968.</ref><ref name="Knuth1971">Knuth, Donald E., "Semantics of Context-Free Languages (correction)," ''Mathematical Systems Theory'', Vol. 5 No. 1, pp 95-96, 1971.</ref> पुनर्लेखन नियमों को | * प्रत्यय व्याकरण<ref name="Koster1971">Koster , Cornelis H. A., "Affix Grammars," in ''ALGOL 68 Implementation'', North Holland Publishing Company, Amsterdam, p. 95-109, 1971.</ref> और [[विशेषता व्याकरण]]<ref name="Knuth1968">Knuth, Donald E., "[https://www.csee.umbc.edu/courses/331/fall16/01/resources/papers/Knuth67AG.pdf Semantics of Context-Free Languages]," ''Mathematical Systems Theory'', Vol. 2 No. 2, pp. 127-145, 1968.</ref><ref name="Knuth1971">Knuth, Donald E., "Semantics of Context-Free Languages (correction)," ''Mathematical Systems Theory'', Vol. 5 No. 1, pp 95-96, 1971.</ref> पुनर्लेखन नियमों को अर्थ-संबंधी विशेषताओं और संचालन के साथ संवर्धित करने की अनुमति देता है, जो व्याकरण की अभिव्यक्ति बढ़ाने और व्यावहारिक भाषा अनुवाद उपकरणों के निर्माण के लिए उपयोगी होता है। | ||
=== पुनरावर्ती व्याकरण === | === पुनरावर्ती व्याकरण === | ||
{{Distinguish| | {{Distinguish| | ||
पुनरावर्ती भाषा}} | |||
एक पुनरावर्ती व्याकरण एक व्याकरण है जिसमें पुनरावर्ती प्रस्तुतिकरण नियम होते है। उदाहरण के लिए, एक संदर्भ-मुक्त भाषा के लिए एक व्याकरण [[बाएं रिकर्सन|वाम-पुनरावर्ती]] है यदि कोई गैर-टर्मिनल प्रतीक ए उपस्थित है जिसे प्रस्तुतिकरण नियमों के माध्यम से ए के साथ सबसे बाएं प्रतीक के रूप में एक स्ट्रिंग बनाने के लिए रखा जा सकता है। <ref>[http://www.cs.may.ie/~jpower/Courses/parsing/parsing.pdf#search='indirect%20left%20recursion' Notes on Formal Language Theory and Parsing] {{Webarchive|url=https://web.archive.org/web/20170828232456/http://www.cs.may.ie/~jpower/Courses/parsing/parsing.pdf#search='indirect%20left%20recursion' |date=2017-08-28 }}, James Power, Department of Computer Science National University of Ireland, Maynooth Maynooth, Co. Kildare, Ireland.[[JPR02]]</ref> पुनरावर्ती व्याकरण का एक उदाहरण दो अल्पविरामों द्वारा अलग किए गए वाक्य के भीतर एक खंड है।<ref>{{Cite news|url=http://www.newspapers.com/image/205643445/|title=Songbirds grasp grammar, too|first=Seth|last=Borenstein|date=April 27, 2006|page=2|newspaper=Northwest Herald|via=Newspapers.com}}</ref> ओकोए पदानुक्रम में सभी प्रकार के व्याकरण पुनरावर्ती हो सकते है। | |||
== विश्लेषणात्मक व्याकरण == | == विश्लेषणात्मक व्याकरण == | ||
यद्यपि | यद्यपि [[पार्सिंग एल्गोरिदम]] पर साहित्य का एक अतिबृहत तत्व होता है, इनमें से अधिकांश एल्गोरिदम मानते है कि पार्स की जाने वाली भाषा को प्रारंभ में एक सामान्य औपचारिक व्याकरण के माध्यम से वर्णित किया गया है, और लक्ष्य इस उत्पादक व्याकरण को एक कार्यशील पार्सर में बदलना होता है। सही अर्थों में, एएक जनरेटिव व्याकरण किसी भाषा को पार्स करने के लिए उपयोग किए जाने वाले एल्गोरिदम के अनुरूप नहीं होता है, और विभिन्न एल्गोरिदम के प्रस्तुतिकरण नियमों के रूप में अलग-अलग प्रतिबंध होते है जिन्हें अच्छी तरह से गठित माना जाता है। एक वैकल्पिक दृष्टिकोण पहली जगह में एक विश्लेषणात्मक व्याकरण के संदर्भ में भाषा को औपचारिक रूप देना होता है, जो भाषा के लिए एक पार्सर की संरचना और शब्दार्थ से अधिक सीधे मेल खाता है। विश्लेषणात्मक व्याकरण औपचारिकताओं के उदाहरणों में निम्नलिखित सम्मलित है: | ||
* [http://languagemachine.sourceforge.net/ भाषा मशीन] अप्रतिबंधित विश्लेषणात्मक व्याकरण लागू करती है। प्रतिस्थापन नियमों का उपयोग आउटपुट और व्यवहार उत्पन्न करने के लिए एक इनपुट को बदलने के लिए किया जाता है। प्रणाली [http://languagemachine.sourceforge.net/picturebook.html एलएम-आरेख] भी उत्पन्न कर सकता है, जो दिखाता है, कि क्या होता है जब एक अप्रतिबंधित विश्लेषणात्मक व्याकरण के नियमों को लागू किया जाता है। | |||
एक वैकल्पिक दृष्टिकोण पहली जगह में एक विश्लेषणात्मक व्याकरण के संदर्भ में भाषा को औपचारिक रूप देना है, जो भाषा के लिए एक पार्सर की संरचना और शब्दार्थ से अधिक सीधे मेल खाता है। विश्लेषणात्मक व्याकरण औपचारिकताओं के उदाहरणों में निम्नलिखित | * टॉप-डाउन पार्सिंग भाषा (टीडीपीएल): टॉप-डाउन पार्सर्स के व्यवहार का अध्ययन करने के लिए 1970 के दशक की प्रारंभिक में एक अत्यधिक न्यूनतम विश्लेषणात्मक व्याकरण औपचारिकता विकसित हुई थी।<ref name="Birman1970">Birman, Alexander, ''[http://bford.info/packrat/ref/birman70tmg.pdf The TMG Recognition Schema]'', Doctoral thesis, Princeton University, Dept. of Electrical Engineering, February 1970.</ref> | ||
* [http://languagemachine.sourceforge.net/ | |||
* | |||
* [[लिंक व्याकरण]]: भाषाविज्ञान के लिए डिज़ाइन किए गए विश्लेषणात्मक व्याकरण का एक रूप, जो शब्दों के जोड़े के बीच स्थितीय संबंधों की जांच करके वाक्य रचना संरचना प्राप्त करता है।<ref name="Sleater&Temperly1991">Sleator, Daniel D. & Temperly, Davy, "[https://arxiv.org/abs/cmp-lg/9508004 Parsing English with a Link Grammar]," Technical Report CMU-CS-91-196, Carnegie Mellon University Computer Science, 1991.</ref><ref name="Sleater&Temperly1993">Sleator, Daniel D. & Temperly, Davy, "Parsing English with a Link Grammar," ''Third International Workshop on Parsing Technologies'', 1993. (Revised version of above report.)</ref> | * [[लिंक व्याकरण]]: भाषाविज्ञान के लिए डिज़ाइन किए गए विश्लेषणात्मक व्याकरण का एक रूप, जो शब्दों के जोड़े के बीच स्थितीय संबंधों की जांच करके वाक्य रचना संरचना प्राप्त करता है।<ref name="Sleater&Temperly1991">Sleator, Daniel D. & Temperly, Davy, "[https://arxiv.org/abs/cmp-lg/9508004 Parsing English with a Link Grammar]," Technical Report CMU-CS-91-196, Carnegie Mellon University Computer Science, 1991.</ref><ref name="Sleater&Temperly1993">Sleator, Daniel D. & Temperly, Davy, "Parsing English with a Link Grammar," ''Third International Workshop on Parsing Technologies'', 1993. (Revised version of above report.)</ref> | ||
* [[पार्सिंग अभिव्यक्ति व्याकरण]] (पीईजी): [[प्रोग्रामिंग भाषा]] और [[संकलक]] | * [[पार्सिंग अभिव्यक्ति व्याकरण]] (पीईजी): [[प्रोग्रामिंग भाषा]] और [[संकलक]] लेखकों की व्यावहारिक [[अभिव्यक्ति (कंप्यूटर विज्ञान)]] आवश्यकताओं के आसपास डिजाइन किए गए टीडीपीएल का एक और सामान्यीकरण होता है।<ref>Ford, Bryan, ''[https://dspace.mit.edu/bitstream/handle/1721.1/87310/51972156-MIT.pdf;sequence=2 Packrat Parsing: a Practical Linear-Time Algorithm with Backtracking]'', Master’s thesis, Massachusetts Institute of Technology, Sept. 2002.</ref> | ||
== यह भी देखें == | == यह भी देखें == | ||
{{div col|colwidth=22em}} | {{div col|colwidth=22em}} | ||
Line 192: | Line 187: | ||
==बाहरी संबंध== | ==बाहरी संबंध== | ||
{{Mathematical logic}} | {{Mathematical logic}} | ||
{{Authority control}} | {{Authority control}} | ||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page]] | ||
[[Category:Collapse templates]] | |||
[[Category:Created On 17/02/2023]] | [[Category:Created On 17/02/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Mathematics navigational boxes]] | |||
[[Category:Multi-column templates]] | |||
[[Category:Navbox orphans]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages using div col with small parameter]] | |||
[[Category:Pages with empty portal template]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Philosophy and thinking navigational boxes]] | |||
[[Category:Portal-inline template with redlinked portals]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Translated in Hindi]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Templates using under-protected Lua modules]] | |||
[[Category:Webarchive template wayback links]] | |||
[[Category:Wikipedia fully protected templates|Div col]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:ऑटोमेटा (गणना)]] | |||
[[Category:औपचारिक भाषाएँ]] | |||
[[Category:गणितीय तर्क]] | |||
[[Category:वाक्य - विन्यास]] | |||
[[Category:व्याकरण]] |
Latest revision as of 14:58, 16 March 2023
औपचारिक भाषा सिद्धांत में, व्याकरण (जब संदर्भ नहीं दिया जाता है, जिसे अधिकांशतः स्पष्टता के लिए एक औपचारिक व्याकरण कहा जाता है) वर्णन करता है कि किसी भाषा के वर्णमाला से श्रृंखला कैसे बनाये जाते है जो भाषा के वाक्य-विन्यास के अनुसार मान्य होते है। व्याकरण शब्दार्थ का वर्णन नहीं करता है जबकि किसी भी संदर्भ में उनके साथ क्या किया जा सकता है - केवल उनका रूप का भी वर्णन करता है औपचारिक व्याकरण को औपचारिक भाषा में ऐसे श्रृंखला के प्रस्तुतिकरण नियमों को सेट के रूप में परिभाषित किया जाता है।
औपचारिक भाषा सिद्धांत, अनुशासन जो औपचारिक व्याकरण और भाषाओं का अध्ययन करता है, अनुप्रयुक्त गणित की एक शाखा है। इसके अनुप्रयोग सैद्धांतिक कंप्यूटर विज्ञान, सैद्धांतिक भाषाविज्ञान, औपचारिक शब्दार्थ (तर्क), गणितीय तर्क और अन्य क्षेत्रों में पाए जाते है।
औपचारिक व्याकरण नियमों का एक समूह है, जिससे पुनर्लेखन प्रारंभ होता है। इसलिए, व्याकरण को सामान्यतः भाषा जनरेटर के रूप में जाना जाता है। चूँकि, इसे कभी-कभी पहचानकर्ता के आधार के रूप में भी उपयोग किया जा सकता है - कंप्यूटिंग में एक फ़ंक्शन जो यह निर्धारित करता है कि दी गई स्ट्रिंग भाषा से संबंधित है या व्याकरणिक रूप से गलत है। ऐसे पहचानकर्ताओं का वर्णन करने के लिए, औपचारिक भाषा सिद्धांत अलग औपचारिकता का उपयोग करता है, जिसे ऑटोमेटा सिद्धांत के रूप में जाना जाता है। ऑटोमेटा सिद्धांत के रोचक परिणामों में से एक यह है कि कुछ औपचारिक भाषाओं के लिए पहचानकर्ता को डिजाइन करना संभव नहीं होता है।[1] पार्सिंग एक उच्चारण (प्राकृतिक भाषाओं में एक स्ट्रिंग) को प्रतीकों के सेट को खंडन करके और भाषा के व्याकरण के विपरीत, प्रत्येक का विश्लेषण करके पहचानने की प्रक्रिया है। अधिकांश भाषाओं में उनके कथनों के अर्थ उनके वाक्य-विन्यास के अनुसार संरचित होते है - एक अभ्यास जिसे रचनात्मक शब्दार्थ के रूप में जाना जाता है। परिणाम स्वरुप, भाषा में एक उच्चारण के अर्थ का वर्णन करने के लिए पहला कदम यह है कि इसे अलग-अलग हिस्सों में विभाजित किया जाए और इसके विश्लेषित रूप को देखा जाए (कंप्यूटर विज्ञान में इसे पार्स ट्री के रूप में जाना जाता है, और जनरेटिक व्याकरण में गहरी संरचना और सतह संरचना के रूप में जाना जाता है)।
इतिहास
पाणिनि' का ग्रंथ अष्टाध्यायी संस्कृत के औपचारिक व्याकरण का वर्णन करने के लिए औपचारिक नियम और परिभाषाएँ देता है।[2] प्रपत्र और औपचारिकता के विभिन्न उपयोग है, जो समय के साथ बदल गए है, संबंधित लेखक के संपर्क में आने वाले क्षेत्रों के आधार पर, अवधारणा का एक ऐतिहासिक अवलोकन [3] में दिया गया है।
परिचयात्मक उदाहरण
एक व्याकरण मुख्य रूप से प्रस्तुतिकरण (कंप्यूटर विज्ञान) का एक सेट होता है, श्रृंखला को बदलने के लिए नियमों को फिर से लिखना होता है। प्रत्येक नियम एक विशेष स्ट्रिंग (इसके बाएँ हाथ की ओर) को दूसरे (इसके दाएँ हाथ की ओर) के प्रतिस्थापन को निर्दिष्ट करता है। प्रत्येक स्ट्रिंग पर एक नियम लागू किया जा सकता है जिसमें इसकी बाईं ओर सम्मलित होता है और एक स्ट्रिंग उत्पन्न करता है जिसमें उस बाएं हाथ की घटना को उसके दाएं हाथ से बदल दिया जाता है।
अर्ध-थू प्रणाली के विपरीत, जो पूरी तरह से इन नियमों द्वारा परिभाषित है, व्याकरण आगे दो प्रकार के प्रतीकों के बीच अंतर करता है: गैर-टर्मिनल, टर्मिनल प्रतीक, प्रत्येक बाईं ओर कम से कम एक गैर-टर्मिनल प्रतीक होना चाहिए। यह एक विशेष गैर-टर्मिनल प्रतीक को भी अलग करता है, जिसे प्रारंभ प्रतीक कहा जाता है।
व्याकरण द्वारा उत्पन्न भाषा को बिना किसी गैर-टर्मिनल प्रतीकों के सभी स्ट्रिंग्स के सेट के रूप में परिभाषित किया जाता है, जो कि किसी भी तरह से अपने नियमों के अनुप्रयोग (संभावित रूप से दोहराए गए) द्वारा एकल प्रारंभ प्रतीक वाले स्ट्रिंग से उत्पन्न किया जा सकता है। यदि एक ही स्ट्रिंग को उत्पन्न करने के अनिवार्य रूप से अलग-अलग विधि है, तो व्याकरण को अस्पष्ट व्याकरण कहा जाता है।
निम्नलिखित उदाहरणों में, टर्मिनल प्रतीक ए और बी है, और प्रारंभ प्रतीक एस है।
उदाहरण 1
मान लीजिए कि हमारे पास निम्नलिखित प्रस्तुतिकरण नियम है:
- 1.
- 2.
तो हम S से प्रारंभ करते है, और इसे लागू करने के लिए नियम चुन सकते है। यदि हम नियम 1 चुनते हैं, तो हमें स्ट्रिंग aSb प्राप्त होती है। यदि हम नियम 1 को फिर से चुनते हैं, तो हम S को aSb से बदल देते हैं और स्ट्रिंग aaSbb प्राप्त करते हैं। यदि अब हम नियम 2 चुनते हैं, तो हम S को ba से प्रतिस्थापित करते हैं और स्ट्रिंग aababb प्राप्त करते हैं, और किया जाता है। हम प्रतीकों का उपयोग करके विकल्पों की इस श्रृंखला को और संक्षेप में लिख सकते है:
.
व्याकरण की भाषा अनंत समुच्चय है , जहां है दोहराया गया के समय (और n विशेष रूप से प्रस्तुतिकरण नियम 1 लागू होने की संख्या का प्रतिनिधित्व करता है)। यह व्याकरण संदर्भ-मुक्त है (केवल एकल गैर-टर्मिनल बाईं ओर दिखाई देते है) और असंदिग्ध है।
उदाहरण 2 और 3
मान लीजिए नियम इसके अतिरिक्त है:
- 1.
- 2.
- 3.
यह व्याकरण नियम 3 के कारण संदर्भ-मुक्त नहीं है और यह कई तरीकों के कारण अस्पष्ट है जिसमें नियम 2 का उपयोग क्रम उत्पन्न करने के लिए किया जा सकता है एस।
चूँकि, यह जो भाषा उत्पन्न करता है, वह केवल सभी गैर-खाली श्रृंखला का समूह है एस और/या एस के रूप में।
यह देखना आसान है: एस और/या एस। यह देखना आसान है: उत्पन्न करने के लिए एक से , जनरेट करने के लिए नियम 2 का दो बार उपयोग करें , फिर नियम 1 दो बार और नियम 3 एक बार उत्पन्न करने के लिए . इसका मतलब है कि हम मनमाने ढंग से गैर-खाली अनुक्रम उत्पन्न कर सकते है एस और फिर उनमें से प्रत्येक को इसके साथ बदलें या जैसा हम चाहते है।
वही भाषा वैकल्पिक रूप से एक संदर्भ-मुक्त, असंदिग्ध व्याकरण द्वारा उत्पन्न की जा सकती है; उदाहरण के लिए, नियमों के साथ नियमित व्याकरण
- 1.
- 2.
- 3.
- 4.
औपचारिक परिभाषा
व्याकरण का वाक्य-विन्यास
1950 के दशक में पहली बार नोम चौमस्की द्वारा प्रस्तावित जनरेटिव व्याकरण की क्लासिक औपचारिकता में,[4][5] एक व्याकरण G में निम्नलिखित घटक होते है:
- गैर-टर्मिनल प्रतीको का परिमित सेट N, जो कि G से बने स्ट्रिंग्स के साथ अलग करना सेट है।
- परिमित समुच्चय टर्मिनल प्रतीको की संख्या जो N से विसंधित सेट है।
- प्रस्तुतिकरण नियमों का एक परिमित समुच्चय, प्रपत्र का प्रत्येक नियम
- :कहाँ क्लेन स्टार ऑपरेटर है और संघ (सेट सिद्धांत) को दर्शाता है। यही है, प्रत्येक प्रस्तुतिकरण नियम प्रतीकों की एक स्ट्रिंग से दूसरे में मैप करता है, जहां पहली स्ट्रिंग (सिर) में मनमाने ढंग से प्रतीकों की संख्या होती है, बशर्ते उनमें से कम से कम एक गैर-टर्मिनल हो। स्थितियों में कि दूसरी स्ट्रिंग में केवल रिक्त स्ट्रिंग होती है-अर्थात, इसमें कोई प्रतीक नहीं होता है- इसे एक विशेष संकेतन के साथ दर्शाया जा सकता है (अधिकांशतः , ई या ) भ्रम से बचने के लिए।
- एक विशिष्ट प्रतीक वह प्रारंभ चिह्न है, जिसे वाक्य चिह्न भी कहा जाता है।
एक व्याकरण को औपचारिक रूप से टपल के रूप में परिभाषित किया जाता है . इस तरह के एक औपचारिक व्याकरण को अधिकांशतः साहित्य में पुनर्लेखन प्रणाली या वाक्यांश संरचना व्याकरण कहा जाता है।[6][7]
औपचारिक व्याकरण के संबंध में कुछ गणितीय निर्माण
स्ट्रिंग्स पर संबंधों के संदर्भ में व्याकरण के संचालन को परिभाषित किया जा सकता है:
- एक व्याकरण दिया , द्विआधारी संबंध (उच्चारण जी के रूप में एक चरण में प्राप्त होता है) में तार पर द्वारा परिभाषित किया गया है:
- रिश्ता (जी के रूप में उच्चारित शून्य या अधिक चरणों में होता है) को रिफ्लेक्सिव सकर्मक बंद होने के रूप में परिभाषित किया गया है
- ए वाक्यात्मक रूप का सदस्य है जिसे स्टार्ट सिंबल से सीमित संख्या में चरणों में प्राप्त किया जा सकता है ; अर्थात्, एक वाक्यात्मक रूप का सदस्य है . एक वाक्यात्मक रूप जिसमें कोई गैर-टर्मिनल प्रतीक नहीं है (अर्थात इसका सदस्य है ) वाक्य कहलाता है।[8]
- की भाषा , इस रूप में घोषित किया गया , द्वारा निर्मित वाक्यों के सेट के रूप में परिभाषित किया गया है .
ध्यान दें कि व्याकरण प्रभावी रूप से अर्ध-थू प्रणाली है , ठीक उसी तरह से तार को फिर से लिखना; एकमात्र अंतर यह है कि हम विशिष्ट गैर-टर्मिनल प्रतीकों को अलग करते है, जिन्हें पुनर्लेखन नियमों में फिर से लिखा जाना चाहिए, और केवल निर्दिष्ट प्रारंभ प्रतीक से पुनर्लेखन में रुचि रखते है गैर-टर्मिनल प्रतीकों के बिना तार के लिए।
उदाहरण
इन उदाहरणों के लिए, सेट-बिल्डर नोटेशन का उपयोग करके औपचारिक भाषाएँ निर्दिष्ट की जाती है।
व्याकरण पर विचार करें कहाँ , , प्रारंभ प्रतीक है, और निम्नलिखित प्रस्तुतिकरण नियमों के होते है:
- 1.
- 2.
- 3.
- 4.
यह व्याकरण भाषा को परिभाषित करता है कहाँ लगातार n की एक स्ट्रिंग को दर्शाता है 'एस। इस प्रकार, भाषा श्रृंखला का समूह है जिसमें 1 या अधिक होते है की, उसके बाद समान संख्या में की, उसके बाद समान संख्या में 'एस।
स्ट्रिंग्स की व्युत्पत्ति के कुछ उदाहरण है:
- (नोटेशन पर ध्यान दें: स्ट्रिंग पढ़ता है P तार उत्पन्न करता है Q प्रस्तुतिकरण के माध्यम से i, और उत्पन्न भाग को हर बार बोल्ड टाइप में इंगित किया जाता है।)
चॉम्स्की पदानुक्रम
जब नोम चॉम्स्की ने पहली बार 1956 में जनरेटिव व्याकरण को औपचारिक रूप दिया,[4]उन्होंने उन्हें प्रकारों में वर्गीकृत किया जिसे अब चॉम्स्की पदानुक्रम के रूप में जाना जाता है। इन प्रकारों के बीच अंतर यह है कि उनके प्रस्तुतिकरण के सख्त नियम है और इसलिए वे कम औपचारिक भाषाओं को व्यक्त कर सकते है। दो महत्वपूर्ण प्रकार है संदर्भ-मुक्त व्याकरण (प्रकार 2) और नियमित व्याकरण (प्रकार 3)। ऐसे व्याकरण से जिन भाषाओं का वर्णन किया जा सकता है, उन्हें क्रमशः संदर्भ-मुक्त भाषाएँ और नियमित भाषाएँ कहा जाता है। चूंकि अप्रतिबंधित व्याकरण (टाइप 0) की तुलना में बहुत कम शक्तिशाली होता है, जो वास्तव में किसी भी भाषा को व्यक्त कर सकता है जिसे ट्यूरिंग मशीन द्वारा स्वीकार किया जा सकता है, इन दो प्रतिबंधित प्रकार के व्याकरणों का सबसे अधिक उपयोग किया जाता है क्योंकि उनके लिए पारसर्स को कुशलता से लागू किया जा सकता है।[9] उदाहरण के लिए, सभी नियमित भाषाओं को एक परिमित-स्थित मशीन द्वारा पहचाना जा सकता है, और संदर्भ-मुक्त व्याकरण के उपयोगी उपसमुच्चय के लिए कुशल एलएल पार्सर और एलआर पार्सर उत्पन्न करने के लिए जाने-माने एल्गोरिदम होते है जो व्याकरण उत्पन्न करने वाली संबंधित भाषाओं को पहचानते है।
प्रसंग-मुक्त व्याकरण
संदर्भ-मुक्त व्याकरण वह व्याकरण है जिसमें प्रत्येक प्रस्तुतिकरण नियम के बाईं ओर केवल एक गैर-टर्मिनल प्रतीक होता है। यह प्रतिबंध गैर-तुच्छ है; संदर्भ-मुक्त व्याकरण द्वारा सभी भाषाएँ उत्पन्न नहीं की जा सकतीं। जिन्हें संदर्भ-मुक्त भाषा कहा जा सकता है।
भाषा ऊपर परिभाषित संदर्भ-मुक्त भाषा नहीं है, और यह संदर्भ-मुक्त भाषाओं के लिए पंपिंग लेम्मा का उपयोग करके कड़ाई से सिद्ध किया जा सकता है, लेकिन उदाहरण के लिए भाषा (कम से कम 1 के बाद समान संख्या में ''s) संदर्भ-मुक्त है, क्योंकि इसे व्याकरण द्वारा परिभाषित किया जा सकता है साथ , , प्रारंभ प्रतीक, और निम्नलिखित प्रस्तुतिकरण नियम:
- 1.
- 2.
एक संदर्भ-मुक्त भाषा में पहचाना जा सकता है समय (बिग ओ नोटेशन देखें) एक एल्गोरिथम द्वारा जैसे कि अर्ली पार्सर एल्गोरिथम अर्ली का पहचानकर्ता अर्थात्, प्रत्येक संदर्भ-मुक्त भाषा के लिए, एक मशीन बनाई जा सकती है जो एक स्ट्रिंग को इनपुट के रूप में लेती है और निर्धारित करती है समय क्या स्ट्रिंग भाषा का सदस्य है, जहा n स्ट्रिंग की लंबाई है। [10] नियतात्मक संदर्भ-मुक्त भाषाएँ संदर्भ-मुक्त भाषाओं का एक सबसेट है जिसे रैखिक समय में पहचाना जा सकता है। [11] ऐसे कई एल्गोरिदम उपस्थित है जो या तो भाषाओं के इस सेट या इसके कुछ सबसेट को लक्षित करते है।
नियमित व्याकरण
नियमित व्याकरण में, बायीं ओर केवल गैर-टर्मिनल प्रतीक होते है, लेकिन अब दायां हाथ भी प्रतिबंधित है। लेकिन अब दाहिनी ओर भी प्रतिबंधित है। एकल टर्मिनल प्रतीक, जिसके बाद एक गैर-टर्मिनल प्रतीक हो सकता है, लेकिन कुछ और नहीं है। कभी-कभी एक व्यापक परिभाषा का उपयोग किया जाता है: कोई भी बिना किसी अन्य चीज के टर्मिनलों या एकल गैर-टर्मिनलों के लंबे तार की अनुमति दे सकता है, जिससे भाषाओं को एक ही वर्ग की भाषाओं को परिभाषित करते हुए निरूपित करना आसान हो जाता है।
भाषा ऊपर परिभाषित नियमित नहीं है, लेकिन भाषा (कम से कम 1 1 a के बाद कम से कम 1 b, जहाँ संख्याएँ भिन्न हो सकती है) है, क्योंकि इसे व्याकरण द्वारा परिभाषित किया जा सकता है है, साथ , , प्रारंभ प्रतीक, और निम्नलिखित प्रस्तुतिकरण नियम:
एक नियमित व्याकरण द्वारा उत्पन्न सभी भाषाओं को पहचाना जा सकता है समय परिमित-स्थित मशीन द्वारा। चूंकि अभ्यास में, नियमित व्याकरण सामान्यतः नियमित अभिव्यक्तियों का उपयोग करके व्यक्त किया जाता है, अभ्यास में उपयोग की जाने वाली नियमित अभिव्यक्ति के कुछ रूप नियमित रूप से नियमित भाषाओं को उत्पन्न नहीं करते है और उन विचलनों के कारण रैखिक मान्यतात्मक प्रदर्शन नहीं दिखाते है।
उत्पादक व्याकरण के अन्य रूप
चॉम्स्की के औपचारिक व्याकरण के मूल पदानुक्रम पर कई विस्तार और विविधताएं भाषाविदों और कंप्यूटर वैज्ञानिकों द्वारा विकसित की गई है, सामान्यतः या तो उनकी अभिव्यंजक शक्ति को बढ़ाने के लिए या उन्हें विश्लेषण या पार्स करना आसान बनाने के लिए। विकसित व्याकरण के कुछ रूपों में सम्मलित है:
- ट्री-आसन्न व्याकरण केवल स्ट्रिंग्स अतिरिक्त पार्स ट्री पर पुनर्लेखन नियमों को संचालित करने की अनुमति देकर पारंपरिक जनरेटिव व्याकरण की अभिव्यक्ति को बढ़ाते है।[12]
- प्रत्यय व्याकरण[13] और विशेषता व्याकरण[14][15] पुनर्लेखन नियमों को अर्थ-संबंधी विशेषताओं और संचालन के साथ संवर्धित करने की अनुमति देता है, जो व्याकरण की अभिव्यक्ति बढ़ाने और व्यावहारिक भाषा अनुवाद उपकरणों के निर्माण के लिए उपयोगी होता है।
पुनरावर्ती व्याकरण
एक पुनरावर्ती व्याकरण एक व्याकरण है जिसमें पुनरावर्ती प्रस्तुतिकरण नियम होते है। उदाहरण के लिए, एक संदर्भ-मुक्त भाषा के लिए एक व्याकरण वाम-पुनरावर्ती है यदि कोई गैर-टर्मिनल प्रतीक ए उपस्थित है जिसे प्रस्तुतिकरण नियमों के माध्यम से ए के साथ सबसे बाएं प्रतीक के रूप में एक स्ट्रिंग बनाने के लिए रखा जा सकता है। [16] पुनरावर्ती व्याकरण का एक उदाहरण दो अल्पविरामों द्वारा अलग किए गए वाक्य के भीतर एक खंड है।[17] ओकोए पदानुक्रम में सभी प्रकार के व्याकरण पुनरावर्ती हो सकते है।
विश्लेषणात्मक व्याकरण
यद्यपि पार्सिंग एल्गोरिदम पर साहित्य का एक अतिबृहत तत्व होता है, इनमें से अधिकांश एल्गोरिदम मानते है कि पार्स की जाने वाली भाषा को प्रारंभ में एक सामान्य औपचारिक व्याकरण के माध्यम से वर्णित किया गया है, और लक्ष्य इस उत्पादक व्याकरण को एक कार्यशील पार्सर में बदलना होता है। सही अर्थों में, एएक जनरेटिव व्याकरण किसी भाषा को पार्स करने के लिए उपयोग किए जाने वाले एल्गोरिदम के अनुरूप नहीं होता है, और विभिन्न एल्गोरिदम के प्रस्तुतिकरण नियमों के रूप में अलग-अलग प्रतिबंध होते है जिन्हें अच्छी तरह से गठित माना जाता है। एक वैकल्पिक दृष्टिकोण पहली जगह में एक विश्लेषणात्मक व्याकरण के संदर्भ में भाषा को औपचारिक रूप देना होता है, जो भाषा के लिए एक पार्सर की संरचना और शब्दार्थ से अधिक सीधे मेल खाता है। विश्लेषणात्मक व्याकरण औपचारिकताओं के उदाहरणों में निम्नलिखित सम्मलित है:
- भाषा मशीन अप्रतिबंधित विश्लेषणात्मक व्याकरण लागू करती है। प्रतिस्थापन नियमों का उपयोग आउटपुट और व्यवहार उत्पन्न करने के लिए एक इनपुट को बदलने के लिए किया जाता है। प्रणाली एलएम-आरेख भी उत्पन्न कर सकता है, जो दिखाता है, कि क्या होता है जब एक अप्रतिबंधित विश्लेषणात्मक व्याकरण के नियमों को लागू किया जाता है।
- टॉप-डाउन पार्सिंग भाषा (टीडीपीएल): टॉप-डाउन पार्सर्स के व्यवहार का अध्ययन करने के लिए 1970 के दशक की प्रारंभिक में एक अत्यधिक न्यूनतम विश्लेषणात्मक व्याकरण औपचारिकता विकसित हुई थी।[18]
- लिंक व्याकरण: भाषाविज्ञान के लिए डिज़ाइन किए गए विश्लेषणात्मक व्याकरण का एक रूप, जो शब्दों के जोड़े के बीच स्थितीय संबंधों की जांच करके वाक्य रचना संरचना प्राप्त करता है।[19][20]
- पार्सिंग अभिव्यक्ति व्याकरण (पीईजी): प्रोग्रामिंग भाषा और संकलक लेखकों की व्यावहारिक अभिव्यक्ति (कंप्यूटर विज्ञान) आवश्यकताओं के आसपास डिजाइन किए गए टीडीपीएल का एक और सामान्यीकरण होता है।[21]
यह भी देखें
- सार वाक्य रचना का पेड़
- अनुकूली व्याकरण
- अस्पष्ट व्याकरण
- बैकस-नौर फॉर्म | बैकस-नौर फॉर्म (बीएनएफ)
- श्रेणीबद्ध व्याकरण
- ठोस वाक्य रचना का पेड़
- विस्तारित बैकस-नौर फॉर्म | विस्तारित बैकस-नौर फॉर्म (ईबीएनएफ)
- व्याकरण की रूपरेखा
- एल प्रणाली
- लोज में
- पोस्ट कैनोनिकल सिस्टम
- आकार व्याकरण
- अच्छी तरह से गठित सूत्र
संदर्भ
- ↑ Meduna, Alexander (2014), Formal Languages and Computation: Models and Their Applications, CRC Press, p. 233, ISBN 9781466513457. For more on this subject, see undecidable problem.
- ↑ "Panini biography". www-history.mcs.st-andrews.ac.uk. Archived from the original on 2018-08-15.
- ↑ McElvenny J (2019). McElvenny J (ed.). Form and formalism in linguistics (pdf). Berlin: Language Science Press. doi:10.5281/zenodo.2654375. ISBN 978-3-96110-182-5.
- ↑ 4.0 4.1 Chomsky, Noam (Sep 1956). "Three models for the description of language". IRE Transactions on Information Theory. 2 (3): 113–124. doi:10.1109/TIT.1956.1056813.
- ↑ Chomsky, Noam (1957). Syntactic Structures. The Hague: Mouton.
- ↑ Ginsburg, Seymour (1975). Algebraic and automata theoretic properties of formal languages. North-Holland. pp. 8–9. ISBN 978-0-7204-2506-2.
- ↑ Harrison, Michael A. (1978). Introduction to Formal Language Theory. Reading, Mass.: Addison-Wesley Publishing Company. p. 13. ISBN 978-0-201-02955-0.
- ↑ Sentential Forms, Context-Free Grammars, David Matuszek
- ↑ Grune, Dick & Jacobs, Ceriel H., Parsing Techniques – A Practical Guide, Ellis Horwood, England, 1990.
- ↑ Earley, Jay, "An Efficient Context-Free Parsing Algorithm," Communications of the ACM, Vol. 13 No. 2, pp. 94-102, February 1970.
- ↑ Knuth, D. E. (July 1965). "On the translation of languages from left to right". Information and Control. 8 (6): 607–639. doi:10.1016/S0019-9958(65)90426-2.
- ↑ Joshi, Aravind K., et al., "Tree Adjunct Grammars," Journal of Computer Systems Science, Vol. 10 No. 1, pp. 136-163, 1975.
- ↑ Koster , Cornelis H. A., "Affix Grammars," in ALGOL 68 Implementation, North Holland Publishing Company, Amsterdam, p. 95-109, 1971.
- ↑ Knuth, Donald E., "Semantics of Context-Free Languages," Mathematical Systems Theory, Vol. 2 No. 2, pp. 127-145, 1968.
- ↑ Knuth, Donald E., "Semantics of Context-Free Languages (correction)," Mathematical Systems Theory, Vol. 5 No. 1, pp 95-96, 1971.
- ↑ Notes on Formal Language Theory and Parsing Archived 2017-08-28 at the Wayback Machine, James Power, Department of Computer Science National University of Ireland, Maynooth Maynooth, Co. Kildare, Ireland.JPR02
- ↑ Borenstein, Seth (April 27, 2006). "Songbirds grasp grammar, too". Northwest Herald. p. 2 – via Newspapers.com.
- ↑ Birman, Alexander, The TMG Recognition Schema, Doctoral thesis, Princeton University, Dept. of Electrical Engineering, February 1970.
- ↑ Sleator, Daniel D. & Temperly, Davy, "Parsing English with a Link Grammar," Technical Report CMU-CS-91-196, Carnegie Mellon University Computer Science, 1991.
- ↑ Sleator, Daniel D. & Temperly, Davy, "Parsing English with a Link Grammar," Third International Workshop on Parsing Technologies, 1993. (Revised version of above report.)
- ↑ Ford, Bryan, Packrat Parsing: a Practical Linear-Time Algorithm with Backtracking, Master’s thesis, Massachusetts Institute of Technology, Sept. 2002.