Gramatyka operatorowa
|
|
- Krystyna Kaźmierczak
- 7 lat temu
- Przeglądów:
Transkrypt
1 Gramatyki z pierwszeństwem operatorów Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka operatorowa Definicja: G = <V, Σ, P, S> G BK jest gramatyką operatorową (i) (ii) G jest gramatyką prawidłową (bez ε -produkcji) ( ) A x... x P : x V x Σ i 1 i+ 1 n xi+ 1 V xi Σ (czyli dwa symbole nieterminalne nigdy nie sąsiadują ze sobą w prawych stronach produkcji). W analizie gramatyk operatorowych przyjmuje się termin operator dla określenia terminala i termin operand dla określenia nieterminala.
2 Relacje pierwszeństwa Dla terminali określa się relacje pierwszeństwa <i,, > Σ $ Σ $ w następujący sposób: ( ) ( { }) i { } (1) a b gdy ( A αaγ bβ) P γ V { ε}, a, b Σ + α β γ δ γ ε (2) a<i b gdy ( A ab ) P B b V { } (3) a > + α β δ γ γ ε i b gdy ( A Bb ) P B a V { } + (4) $<i a gdy S γ aα γ V { ε} (5) a > + i $ gdy S αaγ γ V { ε} We wszystkich powyŝszych określeniach a, b Σ. Definicja: Gramatyka z pierwszeństwem operatorów Gramatyka G = <V, Σ, P, S> G BK jest gramatyką z pierwszeństwem operatorów (i) G jest gramatyką operatorową, (ii) dla kaŝdej pary operatorów (terminali) zachodzi co najwyŝej jedna z relacji pierwszeństwa: <i,, i >
3 Przykład E E+ T T T T * F F F ( E) id + * ( ) id $ + i > <i <i i > <i i > * i > i > <i i > <i i > ( <i <i <i <i ) i > i > i > i > id i > i > i > i > $ <i <i <i <i Fraza pierwotna Mając daną gramatykę pierwszeństw operatorów i znając relacje pierwszeństw dla terminali tej gramatyki moŝemy w kaŝdej formie zdaniowej określić frazę pierwotną. Frazą pierwotną formy zdaniowej nazywamy dowolną frazę zawierającą co najmniej jeden terminal i nie zawierającą Ŝadnej innej frazy pierwotnej (oprócz siebie).
4 Przykład RozwaŜana forma zdaniowa: T+T*F+id w gramatyce: E E+ T T T T * F F F ( E) id Relacje pierwszeństw Twierdzenie: Niech G=<V, Σ, P, S> - gramatyka pierwszeństw operatorów i * $ S$ α Aω αβω R Wówczas: R (1) Relacje <i lub spełnione są między kolejnymi terminalami (i symbolem $) łańcucha α (2) Relacja <i spełniona jest między skrajnym prawym terminalem łańcucha α i skrajnym lewym terminalem łańcucha β (3) Relacja spełniona jest między kolejnymi terminalami łańcucha β (4) Relacja > i spełniona jest między skrajnym prawym terminalem łańcucha β i pierwszym symbolem (oczywiście teŝ terminalem, bo rozwaŝamy wywód prawostronny) łańcucha ω
5 Przykład: * Przykład $ E $ $ E+ T+ id$ $ E+ T * F+ id$ $ S $ R α A ω R $ E + T * F + id $ ** ** $ < i + < i * i> + < i id i> $ przy czym: ** - relacje wewnątrz łańcucha ω, istotne później β - fraza pierwotna (tutaj takŝe osnowa) α β + * ( ) id $ + i > <i <i i > <i i > * i > i > <i i > <i i > ( <i <i <i <i ) i > i > i > i > id i > i > i > i > $ <i <i <i <i ω Definicja: Gramatyka szkieletowa Niech G = <V, Σ, P, S> - gramatyka operatorowa. Gramatyką szkieletową G dla gramatyki G nazywamy gramatykę typu: ( m) ( A Y... Ym) P S S G = <{S}, Σ, P, S> zawierającą produkcję S X... ' 1 X P dla kaŝdej produkcji: 1, przy czym dla 1 i m : (1) X i = Yi gdy Yi Σ (2) X i = S gdy Yi V oraz P nie zawiera produkcji S S. G S - na ogół nie jest jednoznaczna. L G L ( ) ( ) G S
6 Gramatyka szkieletowa G S - na ogół nie jest jednoznaczna. L G L ( ) ( ) G S Przy rozbiorze w oparciu o pierwszeństwa operatorów nie troszczymy się o nieterminale, gdyŝ są dla nas nierozróŝnialne, bo: - nie znamy relacji pomiędzy nieterminalami - nie potrafimy wykryć osnowy, gdy nie zawiera ona terminala - nie umiemy w związku z tym redukować wg produkcji łańcuchowych Gramatyka szkieletowa - przykład Tworzymy gramatykę szkieletową zastępując wszystkie nieterminale symbolem początkowym S i eliminując produkcje łańcuchowe. E E+ T T T T * F F F ( E) id pierwotna szkieletowa E E E+ E E * E E ( E) E id
7 Gramatyka szkieletowa Parsing szkieletowy Otrzymana gramatyka szkieletowa jest na ogół niejednoznaczna i generuje słowa nie naleŝące do języka gramatyki pierwotnej. JEDNOZNACZNY jest natomiast algorytm parsingu, który dodatkowo uwzględnia informacje z tablicy relacji pierwszeństw terminali i akceptuje słowa gramatyki pierwotnej. DąŜymy do tego, aby algorytm parsingu akceptował słowa gramatyki pierwotnej i tylko te słowa, ale tak być nie musi. Rozbiór polega na odtworzeniu szkieletowego drzewa syntaktycznego poprzez redukcje osnów gramatyki szkieletowej (co sprowadza się do redukcji fraz pierwotnych w gramatyce pierwotnej).
8 Algorytm shift-reduce dla pierwszeństw operatorów We: Algorytm shift-reduce dla pierwszeństw operatorów G S = <{S}, Σ, P, S> oraz relacje pierwszeństw operatorów dla G=<V, Σ, P, S> Wy: drzewo rozbioru syntaktycznego dla β oznacza S lub ε a, b oznacza terminal lub $ G S Działanie parsera: Działanie parsera opisują funkcje f i g f... jest funkcją określającą działanie parsera. Funkcja ( ) Funkcja (...) g, wywoływana, gdy f (...) odpowiedzialna za notowanie numerów produkcji. = red, jest
9 Algorytm shift-reduce dla pierwszeństw operatorów Działanie parsera: (1) f ( aβ, b) = shift gdy a<i b lub a b β gdy a i> b (2) f ( a, b) = red (3) f ( $ S,$ ) = acc (4) f ( ω) = err (5) g ( a bγ ω) = i α, w pozostałych przypadkach β, gdy: (a) β jest S lub ε (b) a<i b (c) relacja jest spełniona dla kolejnych terminali łańcucha γ (d) S βbγ jest produkcją w G S numerze i g α, ω = w pozostałych przypadkach (6) ( ) err Parsing wykorzystujący pierwszeństwa operatorów PowyŜsza procedura moŝe być uproszczona w następujący sposób: (1) konstruuje się tylko gramatykę szkieletową (2) określa się tablicę relacji pierwszeństw operatorów na podstawie zakładanych własności języka (3) buduje się na tej podstawie algorytm parsingu
10 (1) E E (minus unarny) (2) E E E (potęgowanie) (3) E E * E (mnoŝenie) (4) E E / E (dzielenie) (5) E E+ E (dodawanie) (6) E E E (odejmowanie) (7) E ( E) (8) E id Formułujemy własności operatorów: Operator Priorytet Przykład Liczba operandów Usytuowanie Łączność 1 (najwyŝszy) unarny prefix prawostronna 2 binarny prawostronna *, / 3 binarny lewostronna +, - 4 binarny lewostronna Przykład c.d. Ustalamy relacje między terminalami: (1) Jeśli operator binarny Θ 1 ma wyŝszy priorytet niŝ operator Θ 2, to: Θ 1i >Θ2 i Θ 2 < i Θ1 np.: * i>+, +< i * (2) Jeśli operator binarny Θ 1 ma taki sam priorytet jak operator Θ 2, to: (a) Θ 1i >Θ2 i Θ 2i >Θ1 dla lewostronnie łącznych (b) Θ 1< i Θ2 i Θ 2 < i Θ1 dla prawostronnie łącznych np.: lewostronnie łączne: + i>, i>+, + i>+, i > prawostronnie łączne: < i
11 Przykład c.d. (3) Jeśli ϑ jest unarnym prefixem, to: (a) Θ<i ϑ dla kaŝdego operatora Θ- binarnego lub unarnego (b) ϑ i >Θ gdy ϑ ma wyŝszy priorytet od Θ (c) ϑ< i Θ gdy ϑ ma niŝszy priorytet od Θ np.: < i, +< i, i >+ Przykład c.d. (4) Pozostałe relacje ( Θ oznacza tutaj dowolny operator): Θ< iid, Θ< i(, ) i>θ, Θ i> $, idi>θ, ( < iθ Θ i> ), $ < iθ, ( = ), ( < i(, ) i> ), $ < i( ) i> $, $ < iid, idi> $, ( < iid, idi> )
12 Przykład c.d. Tworzymy tabelę relacji: + - * / id ( ) $ + i > i > <i <i <i <i <i i > <i i > - i > i > <i <i <i <i <i i > <i i > * i > i > i > i > <i <i <i i > <i i > / i > i > i > i > <i <i <i i > <i i > i > i > i > i > <i <i <i i > <i i > id i > i > i > i > i > err 3 err 3 i > i > i > ( <i <i <i <i <i <i <i <i err 4 ) i > i > i > i > i > err 3 err 3 i > i > i > i > i > i > i > i > <i <i i > <i i > $ <i <i <i <i <i <i <i err 2 <i err 1 Przykład c.d. Precyzujemy algorytm parsera: (β oznacza E lub ε ) (, ) (, ) f ( $ E,$ ) = acc, f aβ b = shift, gdy a<i b lub a = b f aβ b = red, gdy ai > b f (...,...) ( b E) = 1 = err, w pozostałych przypadkach. g β, gdy b< i g ( be E) = 2, gdy b< i ( be * E) = 3 g, gdy b<i *.... g( bβ ( E) ) = 7, gdy b<i ( g bβ id =, gdy b<i id ( ) 8 g(...,...) = err, w pozostałych przypadkach.
13 Przykład c.d. Przykład rozbioru szkieletowego dokonanego przez parser: $ id* (id+id) id$ ε [$<i id, shift] $id * (id+id) id$ ε [id i > *, red-8] $E * (id+id) id$ 8 [$<i *, shift] $E* (id+id) id$ 8 [*<i, shift] $E* (id+id) id$ 8 [ <i (, shift] $E* ( id+id) id$ 8 [ (<i id, shift] $E* (id +id) id$ 8 [id i > +, red-8] $E* (E +id) id$ 88 [(<i +, shift] $E* (E+ id) id$ 88 [+<i id, shift] $E* (E+id ) id$ 88 [id i > ), red-8] Przykład c.d. $E* (E+E ) id$ 888 [+ i > ), red-5] $E* (E ) id$ 8885 [( ), shift] $E* (E) id$ 8885 [) i>, red-7] $E* E id$ [ i>, red-1] $E*E id$ [*<i, shift] $E*E id$ [ <i id, shift] $E*E id $ [id i > $, red-8] $E*E E $ [ i > $, red-2] $E*E $ [* i > $, red-3] $E $ acc
14 Przykład c.d. (1) Błędy syntaktyczne wykrywane są wówczas, gdy nie jest określone pierwszeństwo terminali (por. tablica relacji pierwszeństw i definicja funkcji f...,... ): err 1: err 2: err 3: err 4: ( ) missing operand Akcja: wprowadzenie id na wejście unbalanced right parenthesis Akcja: zlikwidowanie ) z wejścia missing operator Akcja: wprowadzenie + na wejście missing right parenthesis Akcja: zdjęcie ( ze stosu wraz ze wszystkimi symbolami, które są między ( a wierzchołkiem stosu z wierzchołkiem stosu włącznie id ( ) $ id err 3 err 3 i > i > ( <i <i err 4 ) err 3 err 3 i > i > $ <i <i err 2 err 1 Przykład c.d. (2) Błędy syntaktyczne wykrywane wówczas, gdy badanie pierwszeństwa wskazuje na redukcję, a redukcji nie da się dokonać, gdyŝ zawartość stosu nie odpowiada prawej stronie Ŝadnej produkcji g...,... ): err 5: err 6: (por. definicja funkcji ( ) missing operand(s) Redukowany jest operator (+,, /, *,, ), a brak jednego lub obu nieterminali E. Akcja: redukcja mimo wszystko, operator na stosie wskazuje, wg której produkcji redukować no expression between parenthesis Brak nieterminala E pomiędzy ( a ). Akcja: redukcja wg produkcji 7 mimo błędu
15 Przykład c.d. err 7: err 8: missing operator Redukowany jest id, po lewej stronie id na stosie nie ma terminala. Akcja: zdjęcie ze stosu nieterminala E, poprzedzającego id, po czym redukcja wg produkcji 8 missing operator Redukowane są (E), po lewej stronie ( na stosie jest E. Akcja: zdjęcie ze stosu nieterminala E poprzedzającego (, po czym redukcja wg produkcji 7 Przykład c.d. $ +-id)id())id id$ [$<i +, shift] $+ -id)id())id id$ [+ i> -, red-5, err-5] ERROR 5: missing operands $E -id)id())id id$ [$<i -, shift] $E- id)id())id id$ [-<i id, shift] $E-id )id())id id$ [id i > ), red-8] $E-E )id())id id$ [- i > ), red-6] $E )id())id id$ [$?), err-2] ERROR 2: unbalanced right parenthesis $E id())id id$ [$<i id, shift]
16 Przykład c.d. $Eid ())id id$ [id?(, err-3] ERROR 3: missing operator $Eid +())id id$ [id i > +, red-8 err-7] ERROR 7: missing operator $E +())id id$ [$<i +, shift $E+ ())id id$ [+<i (, shift $E+( ))id id$ [( =), shift $E+() )id id$ [) i > ), red-7, err-6] ERROR 6: no expression between parenthesis $E+E )id id$ [+ i > ), red-5] $E )id id$ [$?), err-2] ERROR 2: unbalanced right parenthesis $E id id$ [$<i id, shift] Przykład c.d. $Eid id$ [id?id, err-3] ERROR 3: missing operator $Eid +id$? $Eid +id$ [id i > +, red-8, err-7] ERROR 7: missing operator $E +id$ [$<i +, shift] $E+ id$ [+<i id, shift] $E+id $ [id i > $, red-8] $E+E $ [+ i > $, red-5] $E $ error, bo były błędy
Gramatyki rekursywne
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 =
Analizator syntaktyczny
Analizator syntaktyczny program źródłowy analizator leksykalny token daj nast. token analizator syntaktyczny drzewo rozbioru syntaktycznego analizator semantyczny kod pośredni tablica symboli Analizator
Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka
Gramatyki, wyprowadzenia, hierarchia Chomsky ego Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G =
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd Analiza Syntaktyczna Wstęp Parser dostaje na wejściu ciąg tokenów od analizatora leksykalnego i sprawdza: czy ciąg ten może być generowany przez gramatykę.
Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Automat ze stosem Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem (1) dno stosu Stos wierzchołek stosu Wejście # B B A B A B A B a b b a b a b $ q i Automat ze
3.4. Przekształcenia gramatyk bezkontekstowych
3.4. Przekształcenia gramatyk bezkontekstowych Definicje Niech będzie dana gramatyka bezkontekstowa G = G BK Symbol X (N T) nazywamy nieużytecznym w G G BK jeśli nie można w tej gramatyce
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Gramatyki bezkontekstowe I Gramatyką bezkontekstową
JAO - Wprowadzenie do Gramatyk bezkontekstowych
JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa
Gramatyki atrybutywne
Gramatyki atrybutywne, część 1 (gramatyki S-atrybutywne Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki atrybutywne Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji
2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego
2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną G = gdzie: N zbiór symboli nieterminalnych, T zbiór symboli terminalnych, P zbiór
Zadanie analizy leksykalnej
Analiza leksykalna 1 Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Przykład: We: COST := ( PRICE + TAX ) * 0.98 Wy: id 1 := ( id 2 + id 3 ) * num 4 Tablica symboli:
Metody Kompilacji Wykład 7 Analiza Syntaktyczna
Metody Kompilacji Wykład 7 Analiza Syntaktyczna Parsowanie Parsowanie jest to proces określenia jak ciąg terminali może być generowany przez gramatykę. Włodzimierz Bielecki WI ZUT 2/57 Parsowanie Dla każdej
Języki formalne i automaty Ćwiczenia 1
Języki formalne i automaty Ćwiczenia Autor: Marcin Orchel Spis treści Spis treści... Wstęp teoretyczny... 2 Wprowadzenie do teorii języków formalnych... 2 Gramatyki... 5 Rodzaje gramatyk... 7 Zadania...
Języki formalne i automaty Ćwiczenia 2
Języki formalne i automaty Ćwiczenia 2 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Metoda brute force... 2 Konwersja do postaci normalnej Chomskiego... 5 Algorytm Cocke a-youngera-kasamiego
Języki formalne i automaty Ćwiczenia 4
Języki formalne i automaty Ćwiczenia 4 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Sposób tworzenia deterministycznego automatu skończonego... 4 Intuicyjne rozumienie konstrukcji
Wykład 5. Jan Pustelnik
Wykład 5 Jan Pustelnik Konstruowanie parsera Istnieje kilka podstawowych metod konstrukcji parsera bez nawracania Ze względów wydajnościowych parser bez nawracania jest jedynym sensownym rozwiązaniem (prawo
Odtworzenie wywodu metodą wstępującą (bottom up)
Przeglądane wejśca od lewej strony do prawej L (k) Odtwarzane wywodu prawostronnego Wystarcza znajomosc "k" następnych symbol łańcucha wejścowego hstor dotychczasowych redukcj, aby wyznaczyc jednoznaczne
Języki formalne i automaty Ćwiczenia 9
Języki formalne i automaty Ćwiczenia 9 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Maszyna Mealy'ego... 2 Maszyna Moore'a... 2 Automat ze stosem... 3 Konwersja gramatyki bezkontekstowej
Wprowadzenie do analizy składniowej. Bartosz Bogacki.
Wprowadzenie do analizy składniowej Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy wprowadzenia do analizy składniowej. Zapraszam serdecznie
Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.
Gramatyki grafowe Def. Nieskierowany NL-graf (etykietowane wierzchołki) jest czwórką g = (V, E, Σ, ϕ), gdzie: V niepusty zbiór wierzchołków, E V V zbiór krawędzi, Σ - skończony, niepusty alfabet etykiet
Uproszczony schemat działania kompilatora
Uproszczony schemat działania kompilatora Wykład7,str.1 program źródłowy ciąg leksemów drzewo wywodu drzewo i tablice symboli analiza leksykalna analiza syntaktyczna analiza semantyczna KOMPILATOR generacja
GRAMATYKI BEZKONTEKSTOWE
GRAMATYKI BEZKONTEKSTOWE PODSTAWOWE POJĘCIE GRAMATYK Przez gramatykę rozumie się pewien układ reguł zadający zbiór słów utworzonych z symboli języka. Słowa te mogą być i interpretowane jako obiekty językowe
Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)
Uproszczony schemat działania kompilatora
Wykład7,13XI2009,str.1 Uproszczony schemat działania kompilatora program źródłowy ciąg leksemów drzewo wywodu drzewo i tablice symboli analiza leksykalna analiza syntaktyczna analiza semantyczna KOMPILATOR
0.1 Lewostronna rekurencja
0.1 Lewostronna rekurencja Sprawdź czy poniższa gramatyka E jest zgodna z LL(1), tzn. czy umożliwia przeprowadzenie analizy bez powrotu z wyprzedzeniem o jeden symbol. Wyjaśnienie pojęcia LL(1): Pierwsze
Metody Kompilacji Wykład 13
Metody Kompilacji Wykład 13 Prosty Translator Translator dla prostych wyrażeń Schemat translacji sterowanej składnią często służy za specyfikację translatora. Schemat na następnym slajdzie zostanie użyty
Hierarchia Chomsky ego Maszyna Turinga
Hierarchia Chomsky ego Maszyna Turinga Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G = V skończony zbiór
11 Probabilistic Context Free Grammars
11 Probabilistic Context Free Grammars Ludzie piszą i mówią wiele rzeczy, a ich wypowiedzi mają zawsze jakąś określoną strukture i regularność. Celem jest znalezienie i wyizolowanie tego typu struktur.
JIP. Analiza składni, gramatyki
JIP Analiza składni, gramatyki Książka o różnych językach i paradygmatach 2 Polecam jako obowiązkową lekturę do przeczytania dla wszystkich prawdziwych programistów! Podsumowanie wykładu 2 3 Analiza leksykalna
Generator YACC: gramatyki niejednoznaczne
Plan wykładu Generator YACC: gramatyki niejednoznaczne Wojciech Complak Wojciech.Complak@cs.put.poznan.pl gramatyki jednoznaczne i niejednoznaczne zalety gramatyk niejednoznacznych opisywanie łączności
Analiza semantyczna. Gramatyka atrybutywna
Analiza semantyczna Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji na temat składni języka podlegającego tłumaczeniu, translator musi posiadać możliwość korzystania z wielu innych informacji
Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka
Języki i operacje na językach Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Definicja języka Definicja języka Niech Σ będzie alfabetem, Σ* - zbiorem wszystkich łańcuchów
Języki formalne i automaty Ćwiczenia 3
Języki formalne i automaty Ćwiczenia 3 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Algorytm LL(1)... 2 Definicja zbiorów FIRST1 i FOLLOW1... 3 Konstrukcja tabeli parsowania
Metody Kompilacji Wykład 3
Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy
Włączenie analizy leksykalnej do analizy składniowej jest nietrudne; po co więc jest wydzielona?
Po co wydziela się analizę leksykalną? Wykład7,str1 Włączenie analizy leksykalnej do analizy składniowej jest nietrudne; po co więc jest wydzielona? 1 Analiza leksykalna jest prostsza niż składniowa leksyka
Metody Realizacji Języków Programowania
1/54 Metody Realizacji Języków Programowania Analiza składniowa wstępujaca Marcin Benke MIM UW 9 stycznia 2015 2/54 Analiza wstępujaca metoda LR Od Lewej, prawostronne wyprowadzenie (w odwrotnej kolejności)
Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]
Programowanie w Logice Gramatyki metamorficzne Przemysław Kobylański na podstawie [CM2003] i [SS1994] Gramatyki bezkontekstowe Gramatyką bezkontekstową jest uporządkowana czwórka G = Σ, N, S, P, gdzie
10. Translacja sterowana składnią i YACC
10. Translacja sterowana składnią i YACC 10.1 Charakterystyka problemu translacja sterowana składnią jest metodą generacji przetworników tekstu języków, których składnię opisano za pomocą gramatyki (bezkontekstowej)
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Automat ze stosem Automat ze stosem to szóstka
Symbol, alfabet, łańcuch
Łańcuchy i zbiory łańcuchów Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Symbol, alfabet, łańcuch Symbol Symbol jest to pojęcie niedefiniowane (synonimy: znak, litera)
Generator YACC: gramatyki niejednoznaczne
Generator YACC: gramatyki niejednoznaczne Wojciech Complak Wojciech.Complak@cs.put.poznan.pl 1 Plan wykładu gramatyki jednoznaczne i niejednoznaczne zalety gramatyk niejednoznacznych opisywanie łączności
JAO - lematy o pompowaniu dla jezykow bezkontekstowy
JAO - lematy o pompowaniu dla jezykow bezkontekstowych Postać normalna Chomsky ego Gramatyka G ze zbiorem nieterminali N i zbiorem terminali T jest w postaci normalnej Chomsky ego wtw gdy każda produkcja
Definiowanie języka przez wyrażenie regularne(wr)
Wykład3,str1 Definiowanie języka przez wyrażenie regularne(wr) DEFINICJA: (wyrażenia regularne) M(specjalneznakinienależącedoalfabetu:{,},, ) literyalfabetusąwr złożeniawrsąwr: jeśliw 1 iw 2 sąwr,to{w
Przegląd metod error recovery (dla parsingu top-down, przykłady)
Referat z przedmiotu Teoria Kompilacji Przegląd metod error recovery (dla parsingu top-down, przykłady) Skąd biorą się błędy? Proces obsługi błędów zajmuje się defektami powstającymi z powodu błędów w
Języki formalne i automaty Ćwiczenia 8
Języki formalne i automaty Ćwiczenia 8 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Konwersja NFA do DFA... 2 Minimalizacja liczby stanów DFA... 4 Konwersja automatu DFA do
Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura
Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty Dr inŝ. Janusz Majewski Katedra Informatyki Literatura Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques
Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin
Algorytmy stochastyczne, wykład 5, modelowanie roślin Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 214-3-2 1 2 3 ze stosem Przypomnienie gramatyka to system (Σ, A, s,
Wybrane narzędzia do tworzenia analizatorów leksykalnych i składniowych w C/C++ by Kapitol Team
Wybrane narzędzia do tworzenia analizatorów leksykalnych i składniowych w C/C++ by Kapitol Team Flex a generatory skanerów C++ 2 sposoby wymuszenia stworzenia skanera w C++ flex -+ flexfile.l użycie %option
5. JĘZYKI BEZKONTEKSTOWE (KLASA "2") GRAMATYKI BEZKONTEKSTOWE AUTOMATY ZE STOSEM DETERMINISTYCZNE JĘZYKI BEZKONTEKSTOWE I
5. JĘZYKI BEZKONTEKSTOWE (KLASA "2")...2 5.1. GRAMATYKI BEZKONTEKSTOWE...2 5.2. AUTOMATY ZE STOSEM...12 6. DETERMINISTYCZNE JĘZYKI BEZKONTEKSTOWE I ICH AKCEPTORY...16 6.1. GRAMATYKI I JĘZYKI LR...16 7.
Metoda Tablic Semantycznych
Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β,
Hierarchia Chomsky ego
Hierarchia Chomsky ego Gramatyki nieograniczone Def. Gramatyką nieograniczoną (albo typu 0) nazywamy uporządkowaną czwórkę G= gdzie: % Σ - skończony alfabet symboli końcowych (alfabet, nad którym
Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań
Katedra Informatyki Stosowanej Politechnika Łódzka Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań dr hab. inŝ. Lidia Jackowska-Strumiłło Historia rozwoju języków programowania 1955 1955
Wyrażenia regularne.
Teoretyczne podstawy informatyki Wykład : Wyrażenia regularne. Prof. dr hab. Elżbieta Richter-Wąs.2.202 Wyrażenia regularne Wyrażenia regularne (ang. regular expressions) stanowią algebraiczny sposób definiowania
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, δ)
Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też L = {vw : vuw L dla pewnego u A takiego, że u = v + w } Rozwiązanie. Niech A =
020 Liczby rzeczywiste
020 Liczby rzeczywiste N = {1,2,3,...} Z = { 0,1, 1,2, 2,...} m Q = { : m, n Z, n 0} n Operacje liczbowe Zbiór Dodawanie Odejmowanie Mnożenie Dzielenie N Z Q Pytanie Dlaczego zbiór liczb wymiernych nie
Metodologie programowania
Co kształtuje języki programowania? Wykład2,str.1 Metodologie programowania Koszty obliczeń: 1980 1960:sprzętdrogi,a wysiłek programistów niewielki 1970: sprzęt coraz tańszy, a programowane problemy coraz
Przyczyny dwustopniowego tłumaczenia
Generacja kodu pośredniego Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Przyczyny dwustopniowego tłumaczenia Łatwość generowania kompilatorów tego samego języka dla róŝnych platform systemowo-sprzętowych
Notatki z Analizy Matematycznej 2. Jacek M. Jędrzejewski
Notatki z Analizy Matematycznej 2 Jacek M. Jędrzejewski Definicja 3.1. Niech (a n ) n=1 będzie ciągiem liczbowym. Dla każdej liczby naturalnej dodatniej n utwórzmy S n nazywamy n-tą sumą częściową. ROZDZIAŁ
Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk
Plan wykładu (1) Paweł J. Matuszyk AGH Kraków 1 2 tor leksykalny tor syntaktyczny Generator pośredniego Generator wynikowego Hopcroft J. E., Ullman J. D., Wprowadzenie do teorii automatów, języków i obliczeń,
ZYKI BEZKONTEKSTOWE (KLASA
Spis treści 6. JĘZYKI BEZKONTEKSTOWE (KLASA "2")... 2 6.1. GRAMATYKI BEZKONTEKSTOWE... 2 6.2. AUTOMATY ZE STOSEM... 12 7. DETERMINISTYCZNE JĘZYKI BEZKONTEKSTOWE I ICH AKCEPTORY... 16 7.1. GRAMATYKI I JĘZYKI
Statystyka matematyczna. Wykład III. Estymacja przedziałowa
Statystyka matematyczna. Wykład III. e-mail:e.kozlovski@pollub.pl Spis treści Rozkłady zmiennych losowych 1 Rozkłady zmiennych losowych Rozkład χ 2 Rozkład t-studenta Rozkład Fischera 2 Przedziały ufności
Gramatyka TAG dla języka polskiego
Gramatyka TAG dla języka polskiego Katarzyna Krasnowska IPI PAN 25 lutego 2013 Katarzyna Krasnowska (IPI PAN) Gramatyka TAG dla języka polskiego 25 lutego 2013 1 / 31 Plan prezentacji 1 TAG 2 Ekstrakcja
Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017
Logika Stosowana Wykład 1 - Logika zdaniowa Marcin Szczuka Instytut Informatyki UW Wykład monograficzny, semestr letni 2016/2017 Marcin Szczuka (MIMUW) Logika Stosowana 2017 1 / 30 Plan wykładu 1 Język
Podstawy generatora YACC. Bartosz Bogacki.
Podstawy generatora YACC Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy generatora analizatorów składniowych YACC. Zapraszam serdecznie
Analiza metodą zstępującą. Bartosz Bogacki.
Analiza metodą zstępującą Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy analizy metodą zstępującą. Zapraszam serdecznie do wysłuchania.
Granica i ciągłość funkcji. 1 Granica funkcji rzeczywistej jednej zmiennej rzeczywsitej
Wydział Matematyki Stosowanej Zestaw zadań nr 3 Akademia Górniczo-Hutnicza w Krakowie WEiP, energetyka, I rok Elżbieta Adamus listopada 07r. Granica i ciągłość funkcji Granica funkcji rzeczywistej jednej
Wprowadzenie. Teoria automatów i języków formalnych. Literatura (1)
Wprowadzenie Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Literatura (1) 1. Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison-Wesley,
Maszyna Turinga języki
Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę
Statystyka i eksploracja danych
Wykład II: i charakterystyki ich rozkładów 24 lutego 2014 Wartość oczekiwana Dystrybuanty Słowniczek teorii prawdopodobieństwa, cz. II Wartość oczekiwana Dystrybuanty Słowniczek teorii prawdopodobieństwa,
Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych
Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}
Języki Ustalmy pewien skończony zbiór symboli Σ zwany alfabetem. Zbiór Σ zawiera wszystkie skończone ciagi symboli z Σ. Podzbiór L Σ nazywamy językiem a x L nazywamy słowem. Specjalne słowo puste oznaczamy
Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna
PARADYGMATY I JĘZYKI PROGRAMOWANIA. Analiza leksykalna i syntaktyczna. w- 5
PARADYGMATY I JĘZYKI PROGRAMOWANIA Analiza leksykalna i syntaktyczna. Treść 2 Wstęp Analiza leksykalna Analiza syntaktyczna Rekurencja zstępująca Parsery LL Parsery LL sterowane tablicą 3 Wstęp dobra książka
Granica funkcji. 16 grudnia Wykład 5
Granica funkcji 16 grudnia 2010 Tw. o trzech funkcjach Twierdzenie Niech f, g, h : R D R będa funkcjami takimi, że lim f (x) = lim h(x), x x 0 x x0 gdzie x 0 D. Jeżeli istnieje otoczenie punktu x 0 w którym
Prawdopodobieństwo i statystyka
Wykład II: Zmienne losowe i charakterystyki ich rozkładów 13 października 2014 Zmienne losowe Wartość oczekiwana Dystrybuanty Słowniczek teorii prawdopodobieństwa, cz. II Definicja zmiennej losowej i jej
Efektywna analiza składniowa GBK
TEORETYCZNE PODSTAWY INFORMATYKI Efektywna analiza składniowa GBK Rozbiór zdań i struktur zdaniowych jest w wielu przypadkach procesem bardzo skomplikowanym. Jego złożoność zależy od rodzaju reguł produkcji
Języki, automaty i obliczenia
Języki, automaty i obliczenia Wykład 9: Własności języków bezkontekstowych Sławomir Lasota Uniwersytet Warszawski 27 kwietnia 2016 Plan 1 Pompowanie języków bezkontekstowych 2 Własności domknięcia 3 Obrazy
Gramatyki wykorzystywane w analizie języka naturalnego
Gramatyki wykorzystywane w analizie języka naturalnego PCFG=Probabilistic Context-Free Grammars HLPCFG=Head-Lexicalised PCFG HG=Head Grammar HPSG=Head Grammar IG=Indexed Grammar LIG=Linear Indexed Grammar
Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne
Maszyny Turinga Maszyna Turinga jest automatem ta±mowym, skª da si z ta±my (tablicy symboli) potencjalnie niesko«czonej w prawo, zakªadamy,»e w prawie wszystkich (tzn. wszystkich poza sko«czon liczb )
JĘZYKIFORMALNE IMETODYKOMPILACJI
Stefan Sokołowski JĘZYKIFORMALNE IMETODYKOMPILACJI Inst. Informatyki Stosowanej, PWSZ Elbląg, 2009/2010 JĘZYKI FORMALNE reguły gry Wykład1,2X2009,str.1 Zasadnicze informacje: http://iis.pwsz.elblag.pl/
Prawdopodobieństwo i statystyka
Wykład XI: Testowanie hipotez statystycznych 12 stycznia 2015 Przykład Motywacja X 1, X 2,..., X N N (µ, σ 2 ), Y 1, Y 2,..., Y M N (ν, δ 2 ). Chcemy sprawdzić, czy µ = ν i σ 2 = δ 2, czyli że w obu populacjach
1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.
Elementy logiki i teorii zbiorów. 1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych. Pojęcia pierwotne to najprostsze
Bisymulacja. Niezawodność systemów współbieżnych i obiektowych. Grzegorz Maj Grzegorz Maj Bisymulacja
Niezawodność systemów współbieżnych i obiektowych 18.03.2009 Plan prezentacji Przypomnienie: Plan prezentacji Przypomnienie: Gra bisymulacyjna Plan prezentacji Przypomnienie: Gra bisymulacyjna Definicje
Kongruencje pierwsze kroki
Kongruencje wykład 1 Definicja Niech n będzie dodatnią liczbą całkowitą, natomiast a i b dowolnymi liczbami całkowitymi. Liczby a i b nazywamy przystającymi (kongruentnymi) modulo n i piszemy a b (mod
Granica funkcji. 27 grudnia Granica funkcji
27 grudnia 2011 Punkty skupienia Definicja Niech D R będzie dowolnym zbiorem. Punkt x 0 R nazywamy punktem skupienia zbioru D jeżeli δ>0 x D\{x0 } : x x 0 < 0. Zbiór punktów skupienia zbioru D oznaczamy
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 10: Opis wzorców - wyrażenia regularne. http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Wyrażenia regularne Wyrażenia
Dyskretne procesy stacjonarne o nieskończonej entropii nadwyżkowej
Dyskretne procesy stacjonarne o nieskończonej entropii nadwyżkowej Łukasz Dębowski ldebowsk@ipipan.waw.pl i Instytut Podstaw Informatyki PAN Co to jest entropia nadwyżkowa? Niech (X i ) i Z będzie procesem
Nierówność Krafta-McMillana, Kodowanie Huffmana
Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy
Przeciążanie operatorów
Instrukcja laboratoryjna nr 4 Programowanie w języku C 2 (C++ poziom zaawansowany) Przeciążanie operatorów dr inż. Wilk-Jakubowski Jacek mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz Wprowadzenie Oprócz
Granica funkcji. 8 listopada Wykład 4
Granica funkcji 8 listopada 2011 Definicja Niech D R będzie dowolnym zbiorem. Punkt x 0 R nazywamy punktem skupienia zbioru D jeżeli δ>0 x D\{x0 } : x x 0 < δ. Zbiór punktów skupienia zbioru D oznaczamy
Teoretyczne podstawy informatyki. Wykład 12: Gramatyki. E. Richter-Was 1
Teoretyczne podstawy informatyki Wykład 12: Gramatyki 1 18.12.2012 Gramatyki bezkontekstowe Opis wzorców polegający na wykorzystaniu modelu definicji rekurencyjnych, nazywamy gramatyką bezkontekstową (ang.
Programowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer
Usuwanie lewostronnej rekursji. Usuwanie lewostronnej faktoryzacji. Wyznaczanie zbioru FIRST. Wyznaczanie zbioru FOLLOW. Konstrukcja parsera LL
Usuwanie lewostronnej rekursji A Aα β Np. A A+B C A βa A CA A αa ε A +BA ε Usuwanie lewostronnej faktoryzacji A αβ 1... αβ k Np. A ab a A αa A aa A β 1... β k A B ε Wyznaczanie zbioru FIRST 1) A xβ x T
JĘZYKI FORMALNE I METODY KOMPILACJI
Stefan Sokołowski JĘZYKI FORMALNE I METODY KOMPILACJI Inst Informatyki Stosowanej, PWSZ Elbląg, 2015/2016 JĘZYKI FORMALNE reguły gry Wykład1,str1 Zasadnicze informacje: http://iispwszelblagpl/ stefan/dydaktyka/jezform
Obliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga
Liczby zespolone. x + 2 = 0.
Liczby zespolone 1 Wiadomości wstępne Rozważmy równanie wielomianowe postaci x + 2 = 0. Współczynniki wielomianu stojącego po lewej stronie są liczbami całkowitymi i jedyny pierwiastek x = 2 jest liczbą
Granica i ciągłość funkcji. 1 Granica funkcji rzeczywistej jednej zmiennej rzeczywistej
Wydział Matematyki Stosowanej Zestaw zadań nr 3 Akademia Górniczo-Hutnicza w Krakowie WEiP, energetyka, I rok Elżbieta Adamus 3 listopada 06r. Granica i ciągłość funkcji Granica funkcji rzeczywistej jednej
Generatory analizatorów
Generatory analizatorów Generator analizatora leksykalnego flex ( http://www.gnu.org/software/flex/ ) Generator analizatora składniowego bison ( http://www.gnu.org/software/bison/ ) Idea ogólna Opis atomów
Teoria automatów i języków formalnych. Określenie relacji
Relacje Teoria automatów i języków formalnych Dr inŝ. Janusz ajewski Katedra Informatyki Określenie relacji: Określenie relacji Relacja R jest zbiorem par uporządkowanych, czyli podzbiorem iloczynu kartezjańskiego