<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hr">
	<id>https://enciklopedija.cc/index.php?action=history&amp;feed=atom&amp;title=Kontekstno_neovisna_gramatika</id>
	<title>Kontekstno neovisna gramatika - Povijest promjena</title>
	<link rel="self" type="application/atom+xml" href="https://enciklopedija.cc/index.php?action=history&amp;feed=atom&amp;title=Kontekstno_neovisna_gramatika"/>
	<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Kontekstno_neovisna_gramatika&amp;action=history"/>
	<updated>2026-09-02T14:08:02Z</updated>
	<subtitle>Povijest promjena ove stranice na wikiju</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Kontekstno_neovisna_gramatika&amp;diff=332595&amp;oldid=prev</id>
		<title>WikiSysop: Bot: Automatska zamjena teksta  (-{{cite book +{{Citiranje knjige)</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Kontekstno_neovisna_gramatika&amp;diff=332595&amp;oldid=prev"/>
		<updated>2021-11-17T05:21:23Z</updated>

		<summary type="html">&lt;p&gt;Bot: Automatska zamjena teksta  (-{{cite book +{{Citiranje knjige)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;hr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Starija inačica&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Inačica od 17. studeni 2021. u 05:21&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l164&quot;&gt;Redak 164:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Redak 164:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{izvori}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{izvori}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* {{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cite book&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* {{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Citiranje knjige&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  |author = [[Michael Sipser]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  |author = [[Michael Sipser]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  | year = 1997  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  | year = 1997  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l171&quot;&gt;Redak 171:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Redak 171:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  | id = {{ISBN|0-534-94728-X}}}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  | id = {{ISBN|0-534-94728-X}}}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cite book&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Citiranje knjige&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  | author = Siniša Srbljić&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  | author = Siniša Srbljić&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  | title = Jezični procesori 1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  | title = Jezični procesori 1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Kontekstno_neovisna_gramatika&amp;diff=39273&amp;oldid=prev</id>
		<title>WikiSysop: Bot: Automatski unos stranica</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Kontekstno_neovisna_gramatika&amp;diff=39273&amp;oldid=prev"/>
		<updated>2021-08-20T01:30:03Z</updated>

		<summary type="html">&lt;p&gt;Bot: Automatski unos stranica&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nova stranica&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!--&amp;#039;&amp;#039;&amp;#039;Kontekstno neovisna gramatika&amp;#039;&amp;#039;&amp;#039;--&amp;gt;U [[lingvistika|lingvistici]] i [[računarstvo|računarstvu]], &amp;#039;&amp;#039;&amp;#039;kontekstno neovisna gramatika (KNG)&amp;#039;&amp;#039;&amp;#039; (rjeđe još i &amp;#039;&amp;#039;&amp;#039;kontekstno slobodna gramatika&amp;#039;&amp;#039;&amp;#039; ili &amp;#039;&amp;#039;&amp;#039;gramatika neovisna o sadržaju&amp;#039;&amp;#039;&amp;#039;, te još i &amp;#039;&amp;#039;&amp;#039;bezokolinska gramatika&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=&amp;quot;InfoRjecnik&amp;quot;&amp;gt;Kiš Miroslav, &amp;#039;&amp;#039;Englesko-hrvatski i hrvatsko-engleski informatički rječnik&amp;#039;&amp;#039;, Zagreb, Naklada Ljevak, 2000., str. 234&amp;lt;/ref&amp;gt;) je [[formalna gramatika]] u kojoj je svaka produkcija oblika&lt;br /&gt;
:V &amp;amp;rarr; &amp;#039;&amp;#039;w&amp;#039;&amp;#039;&lt;br /&gt;
gdje je V [[Završni i nezavršni znakovi|nezavršni znak]] a &amp;#039;&amp;#039;w&amp;#039;&amp;#039; niz znakova (string) koji se sastoji od završnih i/ili nezavršnih znakova. Termin &amp;quot;kontekstno neovisna&amp;quot; izražava činjenicu da će nezavršni znak V uvijek biti zamijenjen nizom znakova &amp;#039;&amp;#039;w&amp;#039;&amp;#039; neovisno o kontekstu u kojem se pojavljuje. [[Formalni jezik]] je [[kontekstno neovisni jezik]] ako postoji kontekstno neovisna gramatika koja ga generira.&lt;br /&gt;
&lt;br /&gt;
Kontekstno neovisne gramatike su dovoljno moćne da opišu [[sintaksa|sintaksu]] većine [[programski jezik|programskih jezika]]; ustvari sintaksa većine programskih jezika i jest specificirana koristeći kontekstno neovisne gramatike. U drugu ruku, kontekstno neovisne gramatike su dovoljno jednostavne da dozvole izgradnju učinkovitih algoritama parsiranja koji, za dani niz znakova, određuju može li se i kako niz generirati iz gramatike. Earleyjev parser je primjer takvog algoritma, dok [[LL pareser|LL]] i [[LR parser]]i barataju tek sa nešto ograničenim podskupovima kontekstno neovisnih gramatika.&lt;br /&gt;
&lt;br /&gt;
BNF ([[Backus-Naurov oblik]]) je najuobičajenija notacija korištena za izražavanje kontekstno neovisnih gramatika.&lt;br /&gt;
&lt;br /&gt;
Nisu svi formalni jezici kontekstno neovisni; dobro poznat protuprimjer je &amp;lt;math&amp;gt; \{ a^n b^n c^n : n \ge 0 \} &amp;lt;/math&amp;gt;, skup svih nizova znakova koji sadrže jednak broj znakova a, nakon kojeg slijedi jednak broj znakova b i jednak broj znakova c.&lt;br /&gt;
&lt;br /&gt;
== Formalna definicija ==&lt;br /&gt;
Baš kao i svaka [[formalna gramatika]], kontekstno neovisna gramatika G se može definirati kao uređena četvorka:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;G = (V_t, V_n, P, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdje je&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;V_t&amp;lt;/math&amp;gt; konačan skup završnih znakova&lt;br /&gt;
*&amp;lt;math&amp;gt;V_n&amp;lt;/math&amp;gt; konačan skup nezavršnih znakova&lt;br /&gt;
*&amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; konačan skup pravila produkcija&lt;br /&gt;
*&amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; je element skupa &amp;lt;math&amp;gt;V_n&amp;lt;/math&amp;gt;, istaknuti početni nezavršni znak&lt;br /&gt;
*elementi skupa &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; su oblika &lt;br /&gt;
::&amp;lt;math&amp;gt;V_n \longrightarrow (V_t \cup V_n)^*&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Za jezik L kažemo da je kontekstno neovisni jezik (KNJ) ako je njegova gramatika kontekstno neovisna. Preciznije, to je jezik čije su riječi, rečenice i fraze načinjene od znakova i riječi iz kontekstno neovisne gramatike. Obično je KNJ oblika L=L(G). Dolje su dani primjeri za KNG ali ne i za KNJ.&lt;br /&gt;
&lt;br /&gt;
== Primjeri ==&lt;br /&gt;
=== Primjer 1 ===&lt;br /&gt;
Jednostavna kontekstno neovisna gramatika je zadana sa:&lt;br /&gt;
:S &amp;amp;rarr; aSb | &amp;amp;epsilon;&lt;br /&gt;
gdje je znak | korišten kao separator višestrukih opcija za isti nezavršni znak, a &amp;amp;epsilon; stoji za [[prazni niz]].&lt;br /&gt;
Ova gramatika generira jezik&lt;br /&gt;
&amp;lt;math&amp;gt; \{ a^n b^n : n \ge 0 \} &amp;lt;/math&amp;gt;&lt;br /&gt;
koji nije [[regularni jezik|regularan]].&lt;br /&gt;
&lt;br /&gt;
=== Primjer 2 ===&lt;br /&gt;
Slijedi kontekstno neovisna gramatika za sintaktički ispravne infiksne algebarske izraze nad varijablama x, y i z:&lt;br /&gt;
:S &amp;amp;rarr; x | y | z | S + S | S - S | S * S | S/S | (S)&lt;br /&gt;
&lt;br /&gt;
Ova gramatika može, na primjer, generirati niz znakova &amp;quot;( x + y ) * x - z * y / ( x + x )&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ova gramatika je [[nejednoznačna gramatika|nejednoznačna]], što znači da može generirati isti niz znakova sa više različitih stabala parsiranja.&lt;br /&gt;
&lt;br /&gt;
=== Primjer 3 ===&lt;br /&gt;
Kontekstno neovisna gramatika za jezik koji se sastoji od svih nizova znakova nad abecedom {a,b} koji sadrže različit broj znakova a i b jest&lt;br /&gt;
:S &amp;amp;rarr; U | V&lt;br /&gt;
:U &amp;amp;rarr; TaU | TaT&lt;br /&gt;
:V &amp;amp;rarr; TbV | TbT&lt;br /&gt;
:T &amp;amp;rarr; aTbT | bTaT | &amp;amp;epsilon;&lt;br /&gt;
Ovdje T može generirati sve nizove znakova sa jednakim brojem znakova a i b, U generira sve nizove znakova koji sadrže više znakova a nego b, dok V generira sve nizove znakova koji sadrže manje znakova a nego b.&lt;br /&gt;
&lt;br /&gt;
=== Primjer 4 ===&lt;br /&gt;
Drugi primjer kontekstno neovisnog jezika jest &amp;lt;math&amp;gt; \{ b^n a^m b^{2n} : n \ge 0, m \ge 0 \} &amp;lt;/math&amp;gt;. Ovo nije regularan jezik, ali je kontekstno neovisan i može ga generirati sljedeća kontekstno neovisna gramatika:&lt;br /&gt;
:S &amp;amp;rarr; bSbb | A&lt;br /&gt;
:A &amp;amp;rarr; aA   | &amp;amp;epsilon;&lt;br /&gt;
&lt;br /&gt;
=== Drugi primjeri ===&lt;br /&gt;
Kontekstno neovisne gramatike nisu ograničene isključivo u primjeni na matematičke (&amp;quot;formalne&amp;quot;) jezike.&lt;br /&gt;
Na primjer, postoje indicije da je klasa tamilske poezije zvana Venpa upravljana kontekstno neovisnom gramatikom.&amp;lt;ref&amp;gt;&lt;br /&gt;
{{citiranje knjige&lt;br /&gt;
 | first = BalaSundaraRaman&lt;br /&gt;
 | last = L&lt;br /&gt;
 | authorlink = &lt;br /&gt;
 | coauthors = Ishwar.S, Sanjeeth Kumar Ravindranath&lt;br /&gt;
 | date = 2003-08-22&lt;br /&gt;
 | title = Context Free Grammar for Natural Language Constructs - An implementation for Venpa Class of Tamil Poetry&lt;br /&gt;
 | booktitle = Proceedings of Tamil Internet, Chennai, 2003&lt;br /&gt;
 | editor = &lt;br /&gt;
 | others = &lt;br /&gt;
 | edition = &lt;br /&gt;
 | publisher = International Forum for Information Technology in Internet&lt;br /&gt;
 | location = &lt;br /&gt;
 | pages = 128-136&lt;br /&gt;
 | url = http://citeseer.ist.psu.edu/balasundararaman03context.html&lt;br /&gt;
 | format = &lt;br /&gt;
 | accessdate = 2006-08-24&lt;br /&gt;
 | doi = &lt;br /&gt;
 | id = &lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Produkcije i sintaksna stabla ==&lt;br /&gt;
Postoje dva uobičajena načina za opis načina na koji se dani niz znakova može izvesti iz početnog nezavršnog znaka dane gramatike. Najjednostavniji način jest navesti uzastopne nizove znakova, počinjući sa početnim nezavršnim znakom i završujući sa nizom znakova, te produkcijskim pravilima koja su primijenjena. Ako uvedemo strategiju &amp;quot;uvijek prvo zamijeni krajnji lijevi nezavršni znak&amp;quot;, tada za je za kontekstno neovisne gramatike sama lista primijenjenih produkcijskih pravila dovoljna. Ova se tehnika zove &amp;#039;&amp;#039;postupak generiranja niza zamjenom krajnje lijevog nezavršnog znaka&amp;#039;&amp;#039; (engl. &amp;#039;&amp;#039;leftmost derivation&amp;#039;&amp;#039;). Na primjer, ako razmatramo sljedeću gramatiku:&lt;br /&gt;
: (1) S &amp;amp;rarr; S + S&lt;br /&gt;
: (2) S &amp;amp;rarr; 1&lt;br /&gt;
: (3) S &amp;amp;rarr; a&lt;br /&gt;
&lt;br /&gt;
i niz znakova &amp;quot;1 + 1 + a&amp;quot;, tada tom tehnikom dobijemo listu produkcijskih pravila  [ (1), (1), (2), (2), (3) ]. Analogno možemo definirati &amp;#039;&amp;#039;postupak generiranja niza zamjenom krajnje desnog nezavršnog znaka&amp;#039;&amp;#039; (engl. &amp;#039;&amp;#039;rightmost derivation&amp;#039;&amp;#039;). U tom slučaju lista glasi [ (1), (3), (1), (2), (2)].&lt;br /&gt;
&lt;br /&gt;
Razlika između postupaka generiranja zamjenom krajnje lijevog i krajnje desnog nezavršnog znaka je važna pošto je za većinu [[parsiranje|parsera]] transformacija ulaznog niza znakova definirana davanjem dijela koda za svaku produkciju gramatike koji se izvršava kadgod je produkcija primijenjena. Stoga je važno znati odlučuje li parser primjenom tehnike zamjene krajnje lijevog ili krajnje desnog nezavršnog znaka, pošto ova odluka određuje redoslijed izvršavanja dijelova koda. Za detalje pogledati na primjer [[LL parser]]e i [[LR parser]]e.&lt;br /&gt;
&lt;br /&gt;
Produkcija također na neki način nameće hijerarhijsku strukturu izvedenog niza znakova. Na primjer, struktura niza znakova &amp;quot;1 + 1 + a&amp;quot; bi, sudeći po postupku generiranja niza zamjenom krajnje lijevog nezavršnog znaka, bila:&lt;br /&gt;
&lt;br /&gt;
:S&amp;amp;rarr;S+S   (1)&lt;br /&gt;
:S&amp;amp;rarr;S+S+S (1)&lt;br /&gt;
:S&amp;amp;rarr;1+S+S (2)&lt;br /&gt;
:S&amp;amp;rarr;1+1+S (2)&lt;br /&gt;
:S&amp;amp;rarr;1+1+a (3)&lt;br /&gt;
&lt;br /&gt;
: { { { 1 }&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; + { 1 }&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; }&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; + { a }&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; }&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt;&lt;br /&gt;
gdje { ... }&amp;lt;sub&amp;gt;S&amp;lt;/sub&amp;gt; označava podniz koji je prepoznat da pripada skupu S. Ova se hijerarhija također može shvatiti kao stablo:&lt;br /&gt;
&lt;br /&gt;
            S&lt;br /&gt;
           /|\&lt;br /&gt;
          / | \&lt;br /&gt;
         /  |  \&lt;br /&gt;
        S  &amp;#039;+&amp;#039;  S&lt;br /&gt;
       /|\      |&lt;br /&gt;
      / | \     |&lt;br /&gt;
     S &amp;#039;+&amp;#039; S   &amp;#039;a&amp;#039;&lt;br /&gt;
     |     |&lt;br /&gt;
    &amp;#039;1&amp;#039;   &amp;#039;1&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Ovo se stablo zove &amp;#039;&amp;#039;konkretno sintaksno stablo&amp;#039;&amp;#039; (vidi također [[apstraktno sintaksno stablo]]) niza znakova. U ovom slučaju predstavljeni postupci generiranja zamjenom krajnje lijevog i desnog nezavršnog znaka definiraju isto sintaksno stablo, iako se međutim isti niz znakova može generirati još jednim postupkom generiranja zamjenom krajnje lijevog nezavršnog znaka&lt;br /&gt;
&lt;br /&gt;
:S&amp;amp;rarr; S + S      (1)&lt;br /&gt;
:S&amp;amp;rarr; 1 + S      (2)&lt;br /&gt;
:S&amp;amp;rarr; 1 + S + S  (1)&lt;br /&gt;
:S&amp;amp;rarr; 1 + 1 + S  (2) &lt;br /&gt;
:S&amp;amp;rarr; 1 + 1 + a  (3)&lt;br /&gt;
&lt;br /&gt;
koji definira sljedeće sintaksno stablo:&lt;br /&gt;
&lt;br /&gt;
            S &lt;br /&gt;
           /|\&lt;br /&gt;
          / | \&lt;br /&gt;
         /  |  \&lt;br /&gt;
        S  &amp;#039;+&amp;#039;  S&lt;br /&gt;
        |      /|\&lt;br /&gt;
        |     / | \&lt;br /&gt;
       &amp;#039;1&amp;#039;   S &amp;#039;+&amp;#039; S&lt;br /&gt;
             |     |&lt;br /&gt;
            &amp;#039;1&amp;#039;   &amp;#039;a&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Ako za neke nizove znakova jezika gramatike postoji više od jednog stabla parsiranja, tada za gramatiku kažemo da je [[nejednoznačna gramatika]]. Takve gramatike je obično teško parsirati jer parser ne može uvijek odlučiti koje pravilo gramatike treba primjeniti.&lt;br /&gt;
&lt;br /&gt;
== Normalne forme ==&lt;br /&gt;
Svaka kontekstno neovisna gramatika koja ne generira prazni niz se može preoblikovati u istovjetnu gramatiku u [[Chomskyjev normalni oblik|Chomskyjevom normalnom obliku]] ili [[Greibachov normalni oblik|Greibachovom normalnom obliku]]. Ovdje &amp;quot;istovjetan&amp;quot; označava da gramatike generiraju iste jezike.&lt;br /&gt;
&lt;br /&gt;
Zbog osobito jednostavnog oblika produkcija gramatika u Chomskyjevom normalnom obliku, ovaj normalni oblik ima i teoretske i praktične implikacije. Na primjer, za danu kontekstno neovisnu gramatiku se Chomskyjev normalni oblik može iskoristiti za konstrukciju polinomnog algoritma koji odlučuje pripada li dani niz znakova jeziku kojeg gramatika generira ili ne (CYK algoritam).&lt;br /&gt;
&lt;br /&gt;
== Neodlučivi problemi ==&lt;br /&gt;
Iako su neke operacije nad kontekstno neovisnim gramatikama odlučive zbog njihove ograničene moći, KNG imaju nekih zanimljivih neodlučivih problema. Jedan od najjednostavnijih i najpoznatijih jest problem odlučivanja generira li KNG jezik svih nizova znakova. Može se demonstrirati redukcija na ovaj problem iz dobro poznatog neodlučivog problema određivanja prihvaća li [[Turingov stroj]] neki pojedinačni ulaz. Ta redukcija koristi koncept &amp;#039;&amp;#039;povijesti izračuna&amp;#039;&amp;#039;, niz znakova koji u cijelosti opisuje tijek izračuna (komputacije) Turingovog stroja. Možemo konstruirati KNG koja generira sve nizove znakova koji nisu prihvatljive povijesti izračuna za neki pojedinačni Turingov stroj za neki pojedinačni ulaz, te će stoga KNG generirati sve nizove znakova samo ako stroj ne prihvaća taj ulaz.&lt;br /&gt;
&lt;br /&gt;
Kao posljedica toga, također je neodlučivo opisuju li dvije KNG isti jezik, pošto ionako ne možemo odlučiti je li KNG istovjetna trivijalnoj KNG koja odlučuje jezik svih nizova znakova.&lt;br /&gt;
&lt;br /&gt;
U drugu ruku, problem određivanja prihvaća li KNG barem jedan niz znakova jest odlučiv.&lt;br /&gt;
&lt;br /&gt;
Također je korisni napomenuti da je problem određivanja opisuje li [[kontekstno ovisna gramatika]] kontekstno neovisan jezik također neodlučiv.&lt;br /&gt;
&lt;br /&gt;
== Svojstva kontekstno neovisnih jezika ==&lt;br /&gt;
* Alternativna i istovjetna definicija kontekstno neovisnih jezika koristi nedeterminističke [[potisni automat|potisne automate]]: jezik je kontekstno neovisan ako i samo ako ga takav automat može prihvatiti.&lt;br /&gt;
* Jezik se također može modelirati kao skup svih slijedova završnih znakova koje gramatika generira. Ovaj model je koristan u razumijevanju skupovnih operacija nad jezicima.&lt;br /&gt;
* Unija i nadovezivanje (konkatenacija) dvaju kontekstno neovisnih jezika je kontekstno neovisan jezik, ali presjek ne mora biti.&lt;br /&gt;
* Prevrtanje kontekstno neovisnog jezika je kontekstno neovisan jezik, ali komplement ne mora biti.&lt;br /&gt;
* Svaki [[regularni jezik]] je kontekstno neovisan pošto može biti opisan [[regularna gramatika|regularnom gramatikom]].&lt;br /&gt;
* Presjek kontekstno neovisnog jezika i regularnog jezika je uvijek kontekstno neovisan.&lt;br /&gt;
* Postoje [[kontekstno ovisni jezik|kontekstno ovisni jezici]] koji nisu kontekstno neovisni.&lt;br /&gt;
* Da bi se dokazalo da je dani jezik kontekstno ovisan, može se koristiti [[svojstvo napuhavanja]] za kontekstno ovisne jezike.&lt;br /&gt;
&lt;br /&gt;
== Vidi još ==&lt;br /&gt;
* [[Formalna gramatika]]&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
* {{cite book&lt;br /&gt;
 |author = [[Michael Sipser]] &lt;br /&gt;
 | year = 1997 &lt;br /&gt;
 | title = Introduction to the Theory of Computation &lt;br /&gt;
 | publisher = PWS Publishing &lt;br /&gt;
 | id = {{ISBN|0-534-94728-X}}}}&lt;br /&gt;
&lt;br /&gt;
*{{cite book&lt;br /&gt;
 | author = Siniša Srbljić&lt;br /&gt;
 | title = Jezični procesori 1&lt;br /&gt;
 | publisher = Element&lt;br /&gt;
 | year = 2003&lt;br /&gt;
 | id = {{ISBN|953-197-129-3}}}}&lt;br /&gt;
&lt;br /&gt;
{{Formalni jezici i gramatike}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Formalni jezici]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
</feed>