Matematyczne Podstawy Informatyki

Podobne dokumenty
Matematyczne Podstawy Informatyki

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Gramatyki rekursywne

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Języki formalne i automaty Ćwiczenia 1

Matematyczne Podstawy Informatyki

JIP. Analiza składni, gramatyki

GRAMATYKI BEZKONTEKSTOWE

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

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

3.4. Przekształcenia gramatyk bezkontekstowych

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

Języki formalne i automaty Ćwiczenia 4

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Gramatyka operatorowa

Metody Kompilacji Wykład 3

Języki formalne i automaty Ćwiczenia 2

Efektywna analiza składniowa GBK

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

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

Analizator syntaktyczny

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

Hierarchia Chomsky ego

Obliczenia inspirowane Naturą

Języki formalne i automaty Ćwiczenia 9

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

Hierarchia Chomsky ego Maszyna Turinga

10. Translacja sterowana składnią i YACC

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, δ)

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

0.1 Lewostronna rekurencja

Języki formalne i automaty Ćwiczenia 3

Języki formalne i automaty Ćwiczenia 6

Metoda Tablic Semantycznych

Matematyczne Podstawy Informatyki

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

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Np. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0

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

Jaki język zrozumie automat?

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

Obliczenia inspirowane Naturą

Paradygmaty dowodzenia

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

Metodologie programowania

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Języki i gramatyki formalne

Symbol, alfabet, łańcuch

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

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

AUTOMATY SKOŃCZONE. Automat skończony przedstawiamy formalnie jako uporządkowaną piątkę:

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

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

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

11 Probabilistic Context Free Grammars

Języki, automaty i obliczenia

Matematyczne Podstawy Informatyki

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń

Analiza semantyczna. Gramatyka atrybutywna

Maszyna Turinga języki

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Gramatyki (1-2) Definiowanie języków programowania. Piotr Chrząstowski-Wachjtel

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

Logika Matematyczna (1)

Wykład 5. Jan Pustelnik

Elementy logiki i teorii mnogości Wyk lad 1: Rachunek zdań

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

Uproszczony schemat działania kompilatora

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

ALGEBRA Z GEOMETRIĄ BAZY PRZESTRZENI WEKTOROWYCH

Obliczenia inspirowane Naturą

Metody dowodzenia twierdzeń i automatyzacja rozumowań Systemy aksjomatyczne I

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Rachunek logiczny. 1. Język rachunku logicznego.

Lista 5 Gramatyki bezkontekstowe i automaty ze stosem

Teoretyczne podstawy informatyki. Wykład 12: Gramatyki. E. Richter-Was 1

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

-termami -wyrażeń pre-termami abstrakcją aplikacją zmiennych wolnych zmienną związaną domknięte

JĘZYKIFORMALNE IMETODYKOMPILACJI

Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań

Gramatyki regularne i automaty skoczone

Imię, nazwisko, nr indeksu

Zasada indukcji matematycznej

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

Układy równań liniowych

Elementy logiki matematycznej

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

Języki, automaty i obliczenia

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

Poprawność semantyczna

Języki formalne i automaty Ćwiczenia 7

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Zadanie analizy leksykalnej

Tworzenie języków specyfikacji dla zagadnień numerycznych

Transkrypt:

Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014

Gramatyki bezkontekstowe I Gramatyką bezkontekstową jest nazywana uporządkowana czwórka G=(V,T,P,S), gdzie: V jest skończonym zbiorem zmiennych (nieterminali, kategorii syntaktycznych) - elementy tego zbioru są oznaczane dużymi literami, T jest skończonym zbiorem terminali (symboli terminalnych, symboli końcowych) - elementy tego zbioru są oznaczane małymi literami, P jest zbiorem produkcji (reguł) przedstawiających rekurencyjną definicję języka, S jest wyróżnionym symbolem zwanym symbolem startowym.

Produkcje Produkcje są zbudowane z: 1. Zmiennej definiowanej przez tą produkcję - jest ona często nazywana głową produkcji, 2. Symbolu, 3. Łańcucha złożonego z zera lub więcej terminali i zmiennych - łańcuch ten tworzy ciało produkcji. Łańcuch przedstawia jeden ze sposobów tworzenia łańcuchów w języku zmiennej będącej głową produkcji - w trakcie tego procesu symbole terminalne pozostają bez zmian, podstawiane są za każdą zmienną ciała produkcji dowolnego łańcucha, o których wiadomo, że należą do języka tej zmiennej.

Przykład gramatyki I 1. I 2. + 3. 4. () 5. I a 6. I b 7. I Ia 8. I Ib 9. I I 0 10. I I 1

Przykład gramatyki II Gramatykę z poprzedniego slajdu można zapisać również w postaci (zamiast zapisywać produkcje dotyczącego tego samego symbolu w różnych wierszach łączy się je za pomocą symbolu : 1. I + () 2. I a b Ia Ib I 0 I 1

Wnioskowanie rekurencyjne Reguły są stosowane od ciała do głowy. Brane są łańcuchy, o których wiadomo, że należą do języka jednej ze zmiennych ciała i składane we właściwej kolejności ze wszystkimi symbolami końcowymi w ciele. Przeprowadzone wnioskowanie pozwala udowodnić, że wynikowy łańcuch należy do głowy produkcji. Opisywana metoda postępowania jest nazywana wnioskowaniem rekurencyjnym.

Wnioskowanie rekurencyjne Wyw. łańcuch Zmienna Nr produkcji a I 5 b I 6 b1 I 10 b11 I 10 a 1 b11 1 a + b11 2 (a + b11) 4 a (a + b11) 3

Wyprowadzenie Dla danej gramatyki bezkontekstowej G = (V, T, P, S): niech αaβ będzie ciągiem symboli końcowych i zmiennych, gdzie A jest zmienną (α, β (V T ), A V ). niech A γ, wtedy można zapisać αaβ αγβ. G W jednym kroku wyprowadzenia zastępuje się w dowolnym miejscu łańcucha dowolną zmienną ciałem jednej z jej produkcji.

Wyprowadzenia w gramatyce I Produkcje stosowane są w kierunku od głowy do ciała. Na początku rozwijany jest symbol początkowy, przy zastosowaniu jednej z produkcji dla tego symbolu (wybierana jest produkcja, której głową jest symbol startowy). Otrzymany w ten sposób łańcuch rozwija się dalej zastępując jedną ze zmiennych ciałem jednej z jej produkcji. Opisaną metodę stosuje się, aż do momentu uzyskania łańcucha składającego się jedynie z symboli końcowych. Opisywane zastosowanie gramatyki jest nazywane wyprowadzeniem.

Wyprowadzenia prawostronne i lewostronne I Można ograniczyć liczbę wyborów, jakie należy dokonać w wyprowadzeniu łańcucha stawiając wymagania, że: w każdym kroku będzie zastępowana pierwsza zmienna od lewej strony jednym z ciał jej produkcji (jest to nazywane wyprowadzeniem lewostronnym), w każdym kroku będzie zastępowana pierwsza zmienna od prawej strony jednym z ciał jej produkcji (jest to nazywane wyprowadzeniem prawostronnym).

Wyprowadzenia prawostronne i lewostronne II Na przykład dla napisu a (a + b11) można przedstawić korzystając z gramatyki następujące wyprowadzenia: lewostronne I a a () a ( + ) a (I + ) a (a + ) a (a + I ) a (a + I 1) a (a + I 11) a (a + b11)

Wyprowadzenia prawostronne i lewostronne III prawostronne () ( + ) ( + I ) ( + I 1) ( + I 11) ( + b11) (I + b11) (a + b11) I (a + b11) a (a + b11)

Język gramatyki Jeżeli G = (V, T, P, S) jest gramatyką bezkontekstową, to jej język G oznaczony jako L(G) jest zbiorem łańcuchów symboli końcowych (terminali), które mają wyprowadzenia z symbolu startowego. L(G) = {w T S G w} Jeżeli język L jest językiem pewnej gramatyki bezkontekstowej to jest on nazywany językiem bezkontekstowym.

Formy zdaniowe Najważniejszą role odgrywają wyprowadzenie z symbolu startowego - są one nazywane formami zdaniowymi. Jeżeli G = {V, T, P, S} jest gramatyką bezkontekstową to dowolny łańcuch a (V T ) taki, że S α jest formą zdaniową. Jeżeli S l α to α jest lewostronną formą zdaniową. Jeżeli S p α to α jest prawostronną formą zdaniową.

Drzewa wyprowadzenia I Drzewo wyprowadzenia to drzewo spełniające następujące warunki: 1. Każdy wierzchołek wewnętrzny jest etykietowany zmienną ze zbioru V. 2. Każdy liść etykietowany jest zmienną, symbolem końcowym lub ɛ. 3. Jeżeli wierzchołek wewnętrzny jest etykietowany zmienną X a jego dzieci są etykietowane, zaczynając od lewej symbolami Y 1 Y 2...Y n, to musi istnieć produkcja X Y 1 Y 2...Y n

Drzewa wyprowadzenia II I a ( ) I + I a I a I 1 1

Plon drzewa wyprowadzeń Składając liście dowolnego drzewa wyprowadzeń od lewej do prawej można uzyskać łańcuch, który jest nazywany plonem tego drzewa. Dla drzewa z poprzedniego slajdu plonem jest a*(a+a11).

Wnioskowanie, wyprowadzenia i drzewa wyprowadzeń Dla danej gramatyki G = (V, T, P, S) równoważne są: 1. Procedura wnioskowania rekurencyjna, która rozstrzyga, że dany łańcuch końcowy w należy do zmiennej języka A. 2. A w 3. A l w 4. A p w 5. Istnieje drzewo wyprowadzeń o korzeniu A i plonie w.

Od wnioskowania do drzewa wyprowadzeń Niech G = (V, T, P, S) będzie gramatyką bezkontekstową. Jeżeli procedura wnioskowania rekurencyjnego stwierdzi, że łańcuch końcowy w należy do języka zmiennej A, to instnieje drzewo wyprowadzenia o korzeniu A i plonie w.

Przekształcenie drzewa na wyprowadzenie Niech G = (V, T, P, S) będzie gramatyką bezkontekstową, jeżeli istnieje drzewo wyprowadzenia o korzeniu etykietowanym zmienną A i o plonie w, gdzie w T, wtedy w gramatyce G istnieje wyprowadzeie lewostronne A l w.

Od wyprowadzeń do wnioskowania rekurencyjnego Niech G = (V, T, P, S) będzie gramatyką bezkontekstową, jeżeli istnieje wyprowadzenie A G w, gdzie w T, wtedy procedura wnioskowania rekurencyjnego zastosowana do G rozstrzyga, że w należy do języka zmiennej A.

Gramatyki niejednoznaczne Gramatyka jest niejednoznaczna wtedy i tylko wtedy, gdy istnieje przynajmniej jeden łańcuch dla którego można znaleźć więcej niż jedno wyprowadzenie (drzewo wyprowadzeń). Np. dla gramatyki + można wygenerować dwa wyprowadzenia dla + : 1. + + 2. +

Niejednoznaczność gramatyki + * id * + id id id id id

Ścisła wieloznaczność 1. Język bezkontekstowy jes ściśle wieloznaczny, gdy wszystkie jego gramatyki są wieloznaczne. 2. Jeżeli choć jedna gramatyka języka L jest jednoznaczna to L jest językiem jednoznacznym.

Zastosowania gramatyk bezkontekstowych 1. Gramatyki bezkontekstowe są używane do opisu języków programowania - 1.1 Istnieją automatyczne sposoby przekształcania opisu języka bezkontekstowego na parser. 1.2 Bardziej zwarty opis języka. 1.3 Łatwiejsze rozszerzanie języka o nowe elementy.

Literatura Do napisania materiałów wykorzystano: 1. M. Sipser Wprowadzenie do teorii obliczeń, WNT 2009 2. J.. Hopcroft, R. Motwani, J.D. Ullman Wprowadzenie do teorii, automatów, języków i obliczeń, PWN 2005