Gramatyki rekursywne

Podobne dokumenty
Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Gramatyka operatorowa

Matematyczne Podstawy Informatyki

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

3.4. Przekształcenia gramatyk bezkontekstowych

Języki formalne i automaty Ćwiczenia 1

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Języki formalne i automaty Ćwiczenia 3

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

Analizator syntaktyczny

GRAMATYKI BEZKONTEKSTOWE

0.1 Lewostronna rekurencja

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Hierarchia Chomsky ego Maszyna Turinga

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]

Języki formalne i automaty Ćwiczenia 4

Matematyczne Podstawy Informatyki

Wprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy

Języki formalne i automaty Ćwiczenia 2

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

Języki, automaty i obliczenia

Języki formalne i automaty Ćwiczenia 9

Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań

Efektywna analiza składniowa GBK

Hierarchia Chomsky ego

JĘZYKIFORMALNE IMETODYKOMPILACJI

JIP. Analiza składni, gramatyki

11 Probabilistic Context Free Grammars

Metodologie programowania

10. Translacja sterowana składnią i YACC

Wykład 5. Jan Pustelnik

Zadanie analizy leksykalnej

Teoria automatów i języków formalnych. Określenie relacji

Paradygmaty dowodzenia

Języki formalne i automaty Ćwiczenia 8

LOGIKA I TEORIA ZBIORÓW

Analiza metodą zstępującą. Bartosz Bogacki.

Gramatyki atrybutywne

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

Asymptoty funkcji. Pochodna. Zastosowania pochodnej

JĘZYKI FORMALNE I METODY KOMPILACJI

Granica i ciągłość funkcji. 1 Granica funkcji rzeczywistej jednej zmiennej rzeczywsitej

Włączenie analizy leksykalnej do analizy składniowej jest nietrudne; po co więc jest wydzielona?

Obliczenia inspirowane Naturą

Symbol, alfabet, łańcuch

Wprowadzenie. Teoria automatów i języków formalnych. Literatura (1)

Maszyna Turinga języki

Logika Matematyczna (10)

Pochodną funkcji w punkcie (ozn. ) nazywamy granicę ilorazu różnicowego:

Definiowanie języka przez wyrażenie regularne(wr)

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też. A = (A, Q, q I, F, δ)

Gramatyki regularne i automaty skoczone

Odtworzenie wywodu metodą wstępującą (bottom up)

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

Zasada indukcji matematycznej

R O Z D Z I A Ł V I I

Metody Kompilacji Wykład 3

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

1 X-gramatyki, Hierarchia Chomsky ego

Granica funkcji. 16 grudnia Wykład 5

Analiza matematyczna i algebra liniowa Macierze

JĘZYKI FORMALNE I METODY KOMPILACJI

Dopełnienie to można wyrazić w następujący sposób:

Definicja pochodnej cząstkowej

Prawdopodobieństwo i statystyka

Metody Realizacji Języków Programowania

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Metoda Tablic Semantycznych

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Literatura. Leitner R., Zacharski J., Zarys matematyki wyŝszej dla studentów, cz. III.

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ

Złożoność obliczeniowa

Przestrzenie wektorowe

Uproszczony schemat działania kompilatora

Wykład 10. Translacja sterowana składnią

Uproszczony schemat działania kompilatora

Turing i jego maszyny

Elementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1

Rachunek logiczny. 1. Język rachunku logicznego.

Lista 5 Gramatyki bezkontekstowe i automaty ze stosem

5. JĘZYKI BEZKONTEKSTOWE (KLASA "2") GRAMATYKI BEZKONTEKSTOWE AUTOMATY ZE STOSEM DETERMINISTYCZNE JĘZYKI BEZKONTEKSTOWE I

III rok kognitywistyki UAM,

JĘZYKI FORMALNE I METODY KOMPILACJI

Rodzinę F złożoną z podzbiorów zbioru X będziemy nazywali ciałem zbiorów, gdy spełnione są dwa następujące warunki.

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

POCHODNE. dr Sławomir Brzezowski

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

Pochodna funkcji a styczna do wykresu funkcji. Autorzy: Tomasz Zabawa

ZYKI BEZKONTEKSTOWE (KLASA

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki

Programowanie deklaratywne i logika obliczeniowa

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Podstawy logiki i teorii mnogości Informatyka, I rok. Semestr letni 2013/14. Tomasz Połacik

Transkrypt:

Gramatyki bezkontekstowe, rozbiór gramatyczny eoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki rekursywne Niech będzie dana gramatyka bezkontekstowa G = <V, Σ, P, S>. Gramatyki rekursywne Gramatykę nazywamy rekursywną, jeŝeli w gramatyce tej moŝliwe jest wyprowadzenie A + αaβ dla pewnego nieterminala A V, przy czym α, β (V Σ)*. Gramatykę nazywamy lewostronnie rekursywną, jeŝeli w gramatyce tej moŝliwe jest wyprowadzenie A + Aβ dla pewnego nieterminala A V, przy czym β (V Σ)*. Gramatykę nazywamy prawostronnie rekursywną, jeŝeli w gramatyce tej moŝliwe jest wyprowadzenie A + αa dla pewnego nieterminala A V, przy czym α (V Σ)*. JeŜeli język L(G) jest zbiorem nieskończonym, to jego gramatyka G musi być gramatyką rekursywną.

razy razy Łańcuch δ nazywamy frazą formy zdaniowej ω = αδβ dla symbolu nieterminalnego A V, wtedy i tylko wtedy, gdy: S * αaβ A + przy czym α, δ, β (V Σ)*. δ Łańcuch δ nazywamy frazą prostą formy zdaniowej ω = αδβ dla symbolu nieterminalnego A V, wtedy i tylko wtedy, gdy: S * αaβ A δ przy czym α, δ, β (V Σ)*. Osnową formy zdaniowej jest najbardziej na lewo połoŝona fraza prosta (to ostatnie, określenie ma sens w przypadku gramatyk jednoznacznych patrz dalej). Wyprowadzenia lewostronne i prawostronne (1) Wyprowadzenia lewostronne i prawostronne orma zdaniowa ψ jest wyprowadzalna bezpośrednio lewostronnie z formy zdaniowej ω w gramatyce G, co zapisujemy ω GL ψ jeŝeli: ω G ψ ω = γαδ ψ = γβδ (α β) P γ Σ* α, β, δ, ψ, ω (V Σ)* PowyŜsza definicja nie jest ukierunkowana jedynie na gramatyki bezkontekstowe, ale w wyprowadzeniu lewostronnym w gramatyce bezkontekstowej zawsze skrajny lewy nieterminal jest zastępowany prawą stroną pewnej produkcji.

Wyprowadzenia lewostronne i prawostronne (2) orma zdaniowa ψ jest wyprowadzalna bezpośrednio prawostronnie z formy zdaniowej ω w gramatyce G, co zapisujemy ω GP ψ jeŝeli: ω G ψ ω = γαδ ψ = γβδ (α β) P δ Σ* α, β, γ, ψ, ω (V Σ)* Podobnie jak poprzednio, powyŝsza definicja nie jest ukierunkowana jedynie na gramatyki bezkontekstowe, ale w wyprowadzeniu prawostronnym w gramatyce bezkontekstowej zawsze skrajny prawy nieterminal jest zastępowany prawą stroną pewnej produkcji. Podobnie jak poprzednio, definiuje się relacje GL +, GL *, GP +, GP *, które są odpowiednio przechodnim oraz przechodnim i zwrotnym domknięciem relacji bezpośredniej wyprowadzalności lewostronnej GL i prawostronnej GP. JeŜeli wiadomo, o jaką gramatykę chodzi, pomijamy dolny indeks G w oznaczeniu tych relacji pisząc po prostu: L +, L *, P +, P *, L oraz P. Przykład (1) Przykład: Niech będzie dana gramatyka bezkontekstowa G = <V, Σ, P, S>, gdzie: V = {,, } Σ = {a, +, *, (, )} P = { + * () a } S = ormą zdaniową w tej gramatyce jest np. łańcuch: a+* gdyŝ: + + + a+ a+*

Przykład (2) + + + a+ a+* PowyŜsze wyprowadzenie polegało na kaŝdorazowym zastępowaniu skrajnego lewego nieterminala prawą stroną jakiejś odpowiedniej produkcji, więc kaŝdy krok tego wyprowadzenia jest wyprowadzeniem lewostronnym. MoŜemy więc powiedzieć, Ŝe rozpatrywany łańcuch jest formą zdaniową wyprowadzalną lewostronnie. L + L + L + L a+ L a+* Spróbujmy wyprowadzić badany łańcuch prawostronnie: P + P +* Dalsze wyprowadzenie prawostronne wymagałoby zastąpienia nieterminala prawą stroną jakiejś produkcji, ale z uwagi na to, Ŝe wyprowadzany łańcuch musi się kończyć właśnie wyprowadzoną sekwencją +*, nie jest to moŝliwe, więc a+* nie jest formą zdaniową wyprowadzalną prawostronnie. Przykład (3) a + * Znajdziemy teraz wszystkie frazy, frazy proste i osnowę analizowanej formy zdaniowej. RozwaŜymy wyprowadzenia: * +* a+* * a+ a+* Porównując te wyprowadzenia z odpowiednią definicją widzimy, Ŝe a jest frazą prostą naszej formy zdaniowej dla nieterminala oraz * jest frazą prostą naszej formy zdaniowej dla nieterminala. Poza tym a jest osnową. Innych fraz prostych rozwaŝana forma zdaniowa nie posiada.

Przykład (4) + * RozwaŜymy teraz wyprowadzenia: * +* + a+* * +* + a+* Widać, Ŝe a jest frazą (ale juŝ nie frazą prostą) dla nieterminali oraz. Badając dalej mamy: * + a+* Cały łańcuch a+* jest frazą naszej formy zdaniowej a+* dla nieterminala stojącego w korzeniu drzewa rozbioru. a