Języki formalne i automaty Ćwiczenia 3
|
|
- Halina Świątek
- 6 lat temu
- Przeglądów:
Transkrypt
1 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 FOLLOW Konstrukcja tabeli parsowania algorytmu LL(1)... 4 Algorytm sprawdzania konkretnych słów Zadania... 8 Zadania na Zadania na Zadania na
2 Wstęp teoretyczny Wyprowadzenie lewostronne to takie wyprowadzenie, w którym za każdym razem zastępujemy pierwszy od lewej nieterminal. Przykład: Gramatyka S F S asbfc F d Wyprowadzenie lewostronne słowa: adbdc. S asbfc afbfc adbfc adbdc Algorytm LL(1) Algorytm LL(1) służy do sprawdzenia czy dane słowo należy do języka generowanego przez gramatykę LL(1). Algorytm działa w czasie liniowym. Gramatyka LL to taka, w której czytamy słowo podczas sprawdzania od lewej do prawej, oraz taka, że możemy podjąć podczas wyprowadzenia lewostronnego jednoznaczną decyzję, którą produkcje wybrać. Gramatyka LL(1) to gramatyka LL taka, że podczas podejmowania decyzji, którą produkcję wybrać analizujemy dokładnie jeden symbol słowa. Algorytm LL(1) będzie brany pod uwagę tylko dla gramatyk bezkontekstowych, można zauważyć, że z tego względu, jeśli istnieje dowolne wyprowadzenie danego słowa, to zawsze istnieje wyprowadzenie lewostronne tego słowa. Przykład gramatyki, która nie jest typu LL(1). S blc a L LdS S Przykładowe wyprowadzenie dla słowa baadac. S blc Po pierwszym kroku mamy zgodność symbolu pierwszego słowa, następnie mamy znaleźć taki ciąg produkcji aby otrzymać zgodność dla drugiego symbolu słowa. Tutaj są dwie możliwości: S blc bsc bac oraz S blc bldsc bsdsc basdsc Widzimy, że w obu wyprowadzeniach otrzymaliśmy zgodność drugiego symbolu słowa (a). Dlatego, że istnieje więcej niż jedno wyprowadzenie dla drugiego symbolu słowa gramatyka ta nie jest typu LL(1). Zauważmy ponadto, że słowo bac i tak byłoby odrzucone ponieważ trzeci symbol jest inny, ale gramatyka jest typu 1, a więc nie możemy korzystać w wyprowadzeniu z informacji o kolejnych symbolach słowa, a jedynie o aktualnie rozpatrywanym.
3 Przykład 2 S blc a L am S M ε Przykładowe wyprowadzenia dla słowa bac: S blc bamc oraz S blc bsc bac Gramatyka nie jest typu LL(1) ponieważ otrzymaliśmy zgodność drugiego symbolu słowa dwoma różnymi lewostronnymi wyprowadzeniami. Definicja zbiorów FIRST 1 i FOLLOW 1 Zbiory te będą zdefiniowane dla gramatyk bezkontekstowych. α jest pojedynczym symbolem terminalnym lub nieterminalnym. Zbiór FIRST 1 (α) jest zbiorem wszystkich terminalnych przedrostków długości 1 łańcuchów, które mogą być wyprowadzone z α oraz słowa pustego, jeśli może być wyprowadzone z α. Zbiór FOLLOW 1 (α) jest zbiorem wszystkich terminalnych łańcuchów długości 1, które występują tuż za symbolem α w dowolnych wyprowadzeniach. Algorytmy wyznaczenia zbiorów FIRST i FOLLOW. Wyznaczenie zbioru FIRST 1 (α): 1. Jeśli α jest terminalem to FIRST 1 (α) = {α}. 2. Jeśli istnieje produkcja postaci: α ε to FIRST 1 (α) = FIRST 1 (α) {ε} 3. Jeśli α jest nieterminalem to dla każdej produkcji postaci α y 1 y 2 y k : FIRST 1 (α) = FIRST 1 (α) FIRST 1 (y 1 ) Od i = 2 do k Jeśli ε FIRST 1 (y 1 ) FIRST 1 (y i-1 ) to FIRST 1 (α) = FIRST 1 (α) FIRST 1 (y i ) Jeśli ε FIRST 1 (y 1 ) ε FIRST 1 (y k ) to FIRST 1 (α) = FIRST 1 (α) {ε} Wyznaczenie FIRST 1 (x 1 x 2 x n )gdzie x i są terminalami lub nieterminalami przebiega następująco: 1. FIRST 1 (x 1 x 2 x n ) = FIRST 1 (x 1 ) \ {ε} 2. Od i = 2 do n Jeśli ε FIRST 1 (x 1 ) FIRST 1 (x i-1 ) to FIRST 1 (x 1 x 2 x n ) = FIRST 1 (x 1 x 2 x n ) FIRST 1 (x i ) \ {ε}
4 Jeśli ε FIRST 1 (x 1 ) ε FIRST 1 (x n ) to FIRST 1 (x 1 x 2 x n ) = FIRST 1 (x 1 x 2 x n ) {ε} Wyznaczenie zbioru FOLLOW 1 (B), gdzie B jest nieterminalem: 1. Jeśli B = S to FOLLOW 1 (B) = FOLLOW 1 (B) {$} 3. Dla każdej produkcji postaci A αbβ: FOLLOW 1 (B) = FOLLOW 1 (B) FIRST 1 (β) \ {ε} 4. Dla każdej produkcji postaci A αb lub (A αbβ ε FIRST 1 (β)): FOLLOW 1 (B) = FOLLOW 1 (B) FOLLOW 1 (A) Zauważmy, że zbiór FOLLOW nie zawiera symbolu ε. Przykład: 1. S aabb 2. A aac 3. A ε 4. B bb 5. B c Wyznaczmy przykładowo: FIRST 1 (A) - w związku z produkcją 3 FIRST 1 (A) = {ε}, w związku z produkcją 2 FIRST 1 (A) = {a, ε}. FIRST 1 (aac) w związku z regułą 1 FIRST 1 (aac) = {a} FIRST 1 (B) w związku z produkcją 4 FIRST 1 (B) = {b}, w związku z produkcją 5 FIRST 1 (B) = {b, c} FOLLOW 1 (A) w związku z produkcją 1 FOLLOW 1 (A) = {b, c}, produkcja 2 nie wnosi nic nowego. Dla potrzeb algorytmu tworzymy tabelkę ze zbiorami FIRST i FOLLOW dla każdego nieterminala. FIRST FOLLOW A {ε, a} {b, c} B {b, c} {b} S {a} {$} Konstrukcja tabeli parsowania algorytmu LL(1) Algorytm rozpoznawania czy dane słowo należy do języka i do wyznaczenia wyprowadzenia wykorzystuje następującą tabelę: wiersze odpowiadają nieterminalom, kolumny odpowiadają terminalom i symbolowi $, w komórkach tabeli znajdują się prawe strony odpowiednich produkcji. Algorytm wypełniania tabeli: 1. Dla każdej produkcji wyznacz FIRST(p), gdzie p to prawa strona produkcji. Zapisz prawą stronę
5 produkcji w komórkach (A, a) dla każdego a, gdzie A to lewa strona produkcji, a to terminal znajdujący się w zbiorze FIRST(P). 2. Dla każdej produkcji, jeśli ε FIRST(p) to zapisz prawą stronę produkcji w komórkach (A, a) dla każdego a, gdzie A to lewa strona produkcji, a to terminal lub symbol $ znajdujący się w zbiorze FOLLOW(A). Jeśli w danej komórce należy wpisać prawą stronę więcej niż jednej produkcji, to gramatyka nie jest typu LL(1). Przykład dla gramatyki z poprzedniego zadania: a b c $ A aac ε ε B bb c S aabb Dla produkcji 1: FIRST(aABb) wynosi {a}, a więc do komórki (S, a) wpisujemy aabb. Dla produkcji 2: FIRST(aAc) wynosi {a}, a więc do komórki (A, a) wpisujemy aac. Dla produkcji 3: FIRST(ε) wynosi {ε}. Dla produkcji 4: FIRST(bB) wynosi {b}, a więc do komórki (B, b) wpisujemy bb. Dla produkcji 5: FIRST(c) wynosi {c}, a więc do komórki (B, c) wpisujemy c. Dla produkcji 3 w FIRST(ε) znajduje się ε. A więc zapisujemy do komórek (A, b) i (A, c) ε. Algorytm sprawdzania konkretnych słów. Mamy pewne słowo do sprawdzenia czy należy do gramatyki. W każdym krok aktualizujemy bufor wejściowy w którym znajduje się słowo oraz znak $ na końcu, oraz aktualizujemy stos, na którym na początku znajduje się symbol S. Algorytm sprawdzenia polega na zdejmowaniu ze stosu kolejnych symboli, jeśli jest to symbol terminalny to sprawdzamy czy jest identyczny z pierwszym symbolem z buforu wejściowego, jeśli jest to usuwamy go również z buforu wejściowego. Jeśli jest to symbol nieterminalny to zastępujemy go odpowiednią produkcją i umieszczamy prawą stronę produkcji na stosie. Jeśli w buforze wejściowym pozostał tylko symbol $, wtedy możemy zastosować również produkcje z kolumny $. Algorytm zatrzymuje się w następujących stanach: w buforze wejściowym pozostał $, a stos jest pusty, wtedy i tylko wtedy słowo należy do danego języka. terminal na stosie oraz w buforze wejściowym nie są zgodne, lub nie można już zastosować żadnych produkcji, wtedy i tylko wtedy słowo nie należy do danego języka Przykładowo dla podanej wcześniej gramatyki sprawdźmy słowo: aacbbcb 1. Bufor wejściowy: aacbbcb$ Stos: S
6 2. Zdejmujemy S, zastępujemy łańcuchem znajdującym się w komórce (S, a) Bufor wejściowy: aacbbcb$ Stos: aabb 3. Zdejmujemy a, w słowie wejściowym również jest a, a więc: Bufor wejściowy: acbbcb$ Stos: ABb 4. Zdejmujemy A, zastępujemy komórką (A, a) Bufor wejściowy: acbbcb$ Stos: aacbb 5. Zdejmujemy a, w słowie wejściowym również jest a, a więc: Bufor wejściowy: cbbcb$ Stos: AcBb 6. Zdejmujemy A, zastępujemy komórką (A, c) Bufor wejściowy: cbbcb$ Stos: cbb 7. Zdejmujemy c Bufor wejściowy: bbcb$ Stos: Bb 8. Zdejmujemy B i zastępujemy komórką (B, b) Bufor wejściowy: bbcb$ Stos: bbb 9. Zdejmujemy b Bufor wejściowy: bcb$ Stos: Bb 10. Zdejmujemy B i zastępujemy (B, b) Bufor wejściowy: bcb$ Stos: bbb 11. Zdejmujemy b Bufor wejściowy: cb$ Stos: Bb 12. Zdejmujemy B i zastępujemy (B, c) Bufor wejściowy: cb$ Stos: cb
7 13. Zdejmujemy c. Bufor wejściowy: b$ Stos: b 14. Zdejmujemy b. Bufor wejściowy: $ Stos: Jako, że stos jest pusty a wejście równe $, słowo należy do języka. Wyprowadzenie tego słowa wygląda następująco: S aabb aaacbb aacbb aacbbb aacbbbb aacbbcb Inne słowo: cbcbcb 1. Bufor wejściowy: cbcbcb $ Stos: S 2. Zdejmujemy S, zastępujemy łańcuchem znajdującym się w komórce (S, a) Bufor wejściowy: cbcbcb$ Stos: aabb Zdejmujemy ze stosu symbol a, pierwszy symbol w wejściu jest inny, a mianowicie c, a więc dane słowo nie należy do tego języka. Inne słowo: aab 1. Bufor wejściowy: aba $ Stos: S 2. Zdejmujemy S, zastępujemy łańcuchem znajdującym się w komórce (S, a) Bufor wejściowy: aba$ Stos: aabb 3. Zdejmujemy a Bufor wejściowy: ba$ Stos: ABb 4. Zdejmujemy A i zastępujemy b Bufor wejściowy: ba$ Stos: bbb 5. Zdejmujemy b Bufor wejściowy: a$ Stos: Bb 6. Zdejmujemy B, niestety nie jest możliwe zastąpienie B, ponieważ komórka (B, a) jest pusta, a więc słowo nie należy do tego języka
8 Zadania Zadania na 3.0 Wykonać algorytm LL(1) dla następujących gramatyk: S ads S b D a D bsd Sprawdzić słowa: aaab, oraz aab. oraz S ab A bc B A B ε C c C d Sprawdzić słowo abc. Czy powyższe gramatyki są typu LL(1)? Zadania na 4.0 Sprawdzić na podstawie tabeli parsowania czy poniższa gramatyka jest typu LL(1). S DaS S b D a D bsd Zadania na 5.0 Implementacja algorytmu LL(1) w Javie. Porównanie wyników z programem JFLAP dla gramatyk z zadań na 3.0 i 4.0.
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
Bardziej szczegółowoJę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
Bardziej szczegółowoJę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...
Bardziej szczegółowoJę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
Bardziej szczegółowo3.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
Bardziej szczegółowoParsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Parsery LL() Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy generacyjnej (zstępującej, top-down) symbol początkowy już terminale wyprowadzenie lewostronne pierwszy od lewej
Bardziej szczegółowo0.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
Bardziej szczegółowo2.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
Bardziej szczegółowoJę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
Bardziej szczegółowoGramatyki, 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 =
Bardziej szczegółowoAutomat 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
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 7
Języki formalne i automaty Ćwiczenia 7 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Automaty... 2 Cechy automatów... 4 Łączenie automatów... 4 Konwersja automatu do wyrażenia
Bardziej szczegółowoJAO - 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
Bardziej szczegółowoMetody 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ę.
Bardziej szczegółowoAnalizator 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
Bardziej szczegółowoMaszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu
Problem Hilberta: 9 Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? 2 Przykłady
Bardziej szczegółowoHierarchia 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
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 6
Języki formalne i automaty Ćwiczenia 6 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Wyrażenia regularne... 2 Standardy IEEE POSIX Basic Regular Expressions (BRE) oraz Extended
Bardziej szczegółowoGramatyki 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 =
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 5
Języki formalne i automaty Ćwiczenia 5 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 L-systemy... 2 Grafika żółwia... 2 Bibliografia... 5 Zadania... 6 Zadania na 3.0... 6 Zadania
Bardziej szczegółowoWykł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
Bardziej szczegółowoMatematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń
Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń Projekt Matematyka dla ciekawych świata spisał: Michał Korch 4 kwietnia 2019 1 Dodajmy kontekst! Rozważaliśmy
Bardziej szczegółowoMatematyczne 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ą
Bardziej szczegółowoMatematyczne 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
Bardziej szczegółowoMetody 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
Bardziej szczegółowoWprowadzenie 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
Bardziej szczegółowoHierarchia 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
Bardziej szczegółowoJaki język zrozumie automat?
Jaki język zrozumie automat? Wojciech Dzik Instytut Matematyki Uniwersytet Śląski Katowice wojciech.dzik@us.edu.pl 7. Forum Matematyków Polskich, 12-17 września 2016, Olsztyn Prosty Automat do kawy Przemawiamy
Bardziej szczegółowoGRAMATYKI 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
Bardziej szczegółowoAnaliza 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.
Bardziej szczegółowoAnaliza 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)
Bardziej szczegółowoEfektywna 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
Bardziej szczegółowoJęzyki, automaty i obliczenia
Języki, automaty i obliczenia Wykład 12: Gramatyki i inne modele równoważne maszynom Turinga. Wstęp do złożoności obliczeniowej Sławomir Lasota Uniwersytet Warszawski 20 maja 2015 Plan 1 Gramatyki 2 Języki
Bardziej szczegółowoDefiniowanie 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
Bardziej szczegółowoJIP. 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
Bardziej szczegółowoSymbol, 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)
Bardziej szczegółowoLista 5 Gramatyki bezkontekstowe i automaty ze stosem
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Teoretyczne Podstawy Informatyki Lista 5 Gramatyki bezkontekstowe i automaty ze stosem 1 Wprowadzenie 1.1 Gramatyka bezkontekstowa
Bardziej szczegółowoZadanie 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 =
Bardziej szczegółowoOdwrotna Notacja Polska
Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).
Bardziej szczegółowoJę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
Bardziej szczegółowoZadanie 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:
Bardziej szczegółowoAlgorytmy 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,
Bardziej szczegółowoWprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy
Wprowadzenie do programowania języki i gramatyki formalne dr hab. inż. Mikołaj Morzy plan wykładu wprowadzenie gramatyki podstawowe definicje produkcje i drzewa wywodu niejednoznaczność gramatyk hierarchia
Bardziej szczegółowoLingwistyka 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
Bardziej szczegółowoObliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1
Obliczanie 1 Obliczanie Co to jest obliczanie? Czy wszystko można obliczyć? Czy to, co intuicyjnie uznajemy za obliczalne można obliczyć za pomocą mechanicznej procedury? 2 Czym jest obliczanie? Dawid
Bardziej szczegółowoJę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
Bardziej szczegółowoGramatyka operatorowa
Gramatyki z pierwszeństwem operatorów Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka operatorowa Definicja: G = G BK jest gramatyką operatorową (i) (ii) G jest gramatyką
Bardziej szczegółowo11 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.
Bardziej szczegółowoMetody 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
Bardziej szczegółowoJAO - 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
Bardziej szczegółowo10. 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)
Bardziej szczegółowoMatematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń
Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń Projekt Matematyka dla ciekawych świata spisał: Michał Korch 21 marca 2019 1 Gramatyki! Gramatyka to taki przepis
Bardziej szczegółowoUsuwanie 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
Bardziej szczegółowoZadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech
Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech anagram(l) = {w : w jest anagaramem v dla pewnego v L}. (a) Czy jeśli L jest
Bardziej szczegółowoKATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204
Opracował: prof. dr hab. inż. Jan Kazimierczak KATEDA INFOMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 204 Temat: Hardware'owa implementacja automatu skończonego pełniącego
Bardziej szczegółowoMaszyna 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ę
Bardziej szczegółowoOdtworzenie 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
Bardziej szczegółowoObliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 04 Systemy Lindenmayera Jarosław Miszczak IITiS PAN Gliwice 19/10/2016 1 / 37 1 L-Systemy 2 GroIMP i XL ALife 2 / 37 L-Systemy L-systemy czyli systemy Lindenmayera.
Bardziej szczegółowo1. Maszyna Turinga, gramatyki formalne i ONP
1. Maszyna uringa, gramatyki formalne i OP 1.1.Maszyna uringa Automat skończony składa się ze skończonego zbioru stanów i zbioru przejść ze stanu do stanu, zachodzących przy różnych symbolach wejściowych
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowo1. Reguły minimalne (optymalne) Podstawowe twierdzenia i definicje. Definicja 1 Funkcję postaci f. nazwiemy n-argumentową funkcją boolowską.
1. Reguły minimalne (optymalne) Podstawowe twierdzenia i definicje Definicja 1 Funkcję postaci f n :{ 0, 1} { 0, 1} nazwiemy n-argumentową funkcją boolowską. Definicja 2 1 2 Term g = x 1 x x ( ϕ ) ( ϕ
Bardziej szczegółowoGramatyki 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
Bardziej szczegółowoDopełnienie to można wyrazić w następujący sposób:
1. (6 punktów) Czy dla każdego regularnego L, język f(l) = {w : każdy prefiks w długości nieparzystej należy do L} też jest regularny? Odpowiedź. Tak, jęsli L jest regularny to też f(l). Niech A będzie
Bardziej szczegółowoTemat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych
Opracował: dr inż. Zbigniew Buchalski KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów
Bardziej szczegółowoJĘ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
Bardziej szczegółowoZłożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoJęzyki i gramatyki formalne
Języki i gramatyki formalne Języki naturalne i formalne Cechy języka naturalnego - duża swoboda konstruowania zdań (brak ścisłych reguł gramatycznych), duża ilość wyjątków. Języki formalne - ścisły i jednoznaczny
Bardziej szczegółowoPARADYGMATY 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
Bardziej szczegółowoObliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 05 Biologia i gramatyka Jarosław Miszczak IITiS PAN Gliwice 07/04/2016 1 / 40 1 Nieformalne określenie fraktali. 2 Wymiar pudełkowy/fraktalny. 3 Definicja fraktali.
Bardziej szczegółowoGramatyki regularne i automaty skoczone
Gramatyki regularne i automaty skoczone Alfabet, jzyk, gramatyka - podstawowe pojcia Co to jest gramatyka regularna, co to jest automat skoczony? Gramatyka regularna Gramatyka bezkontekstowa Translacja
Bardziej szczegółowoImię, nazwisko, nr indeksu
Imię, nazwisko, nr indeksu (kod) (9 punktów) Wybierz 9 z poniższych pytań i wybierz odpowiedź tak/nie (bez uzasadnienia). Za prawidłowe odpowiedzi dajemy +1 punkt, za złe -1 punkt. Punkty policzymy za
Bardziej szczegółowoJĘ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/
Bardziej szczegółowoWprowadzenie: 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
Bardziej szczegółowoDef. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne
Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu
Bardziej szczegółowoMetody 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
Bardziej szczegółowo1 Automaty niedeterministyczne
Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów
Bardziej szczegółowoPrzykł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
Bardziej szczegółowoJęzyki, automaty i obliczenia
Języki, automaty i obliczenia Wykład 11: Obliczalność i nieobliczalność Sławomir Lasota Uniwersytet Warszawski 6 maja 2015 Plan 1 Problemy częściowo rozstrzygalne 2 Problemy rozstrzygalne 3 Funkcje (częściowo)
Bardziej szczegółowoKlasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33
Klasyczne i kwantowe podejście do teorii automatów i języków formalnych mgr inż. Olga Siedlecka olga.siedlecka@icis.pcz.pl Zakład Informatyki Stosowanej i Inżynierii Oprogramowania Instytut Informatyki
Bardziej szczegółowoObiektowa implementacja parsera klasy LL(1)
Obiektowa implementacja parsera klasy LL(1) Piotr Jeruszka 1 1 Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, II stopień Specjalność: Aplikacje biznesowe i bazy danych, Rok II Streszczenie
Bardziej szczegółowoCzęść wspólna (przekrój) A B składa się z wszystkich elementów, które należą jednocześnie do zbioru A i do zbioru B:
Zbiory 1 Rozważmy dowolne dwa zbiory A i B. Suma A B składa się z wszystkich elementów, które należą do zbioru A lub do zbioru B: (x A B) (x A x B). Część wspólna (przekrój) A B składa się z wszystkich
Bardziej szczegółowoJęzyki formalne i gramatyki
J.Nawrocki, M. Antczak, A. Hoffa, S. Wąsik Plik źródłowy: 08cw10-jfig.doc; Data: 2008-10-22 13:29:00 Ćwiczenie nr 10 Języki formalne i gramatyki Wprowadzenie 1. Napisz analizator leksykalny (LEX) i analizator
Bardziej szczegółowozłożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa
Zadanie 1. Rozważmy jezyk 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 równe. Narysować diagram minimalnego automatu deterministycznego akceptujacego
Bardziej szczegółowoObliczenia 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
Bardziej szczegółowoZakład Systemów Rozproszonych
Zakład Systemów Rozproszonych Politechnika Rzeszowska Moduł 5: Wybrane programy użytkowe Edytor Vi Edytor Vi uruchamiany jest w oknie terminala. Przy jego pomocy możemy dokonywać następujących operacji:
Bardziej szczegółowo1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.
1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie
Bardziej szczegółowoDefinicja 2. Twierdzenie 1. Definicja 3
INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ ZAKŁAD SZTUCZNEJ INTELIGENCJI I AUTOMATÓW Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 205 temat: ZASTOSOWANIE JĘZYKA WYRAŻEŃ
Bardziej szczegółowoPolitechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Metody optymalizacji Metody poszukiwania ekstremum funkcji jednej zmiennej Materiały pomocnicze do ćwiczeń
Bardziej szczegółowoTuring i jego maszyny
Turing Magdalena Lewandowska Politechnika Śląska, wydział MS, semestr VI 20 kwietnia 2016 1 Kim był Alan Turing? Biografia 2 3 Mrówka Langtona Bomba Turinga 4 Biografia Kim był Alan Turing? Biografia Alan
Bardziej szczegółowoJęzyki, automaty i obliczenia
Języki, automaty i obliczenia Wykład 10: Maszyny Turinga Sławomir Lasota Uniwersytet Warszawski 29 kwietnia 2015 Plan Maszyny Turinga (Niedeterministyczna) maszyna Turinga M = (A, Q, q 0, F, T, B, δ) A
Bardziej szczegółowoJednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów:
Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów: Listy rozkładane są do różnych przegródek. O tym, do której z nich trafi koperta, decydują różne fragmenty
Bardziej szczegółowo1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie
Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest
Bardziej szczegółowoElementy Teorii Obliczeń
Wykład 2 Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 10 stycznia 2009 Maszyna Turinga uwagi wstępne Maszyna Turinga (1936 r.) to jedno z najpiękniejszych i najbardziej intrygujacych
Bardziej szczegółowo- autorzy programu - wyjście z programu
Wstęp Multimedialny program przeznaczony dla uczniów szkół podstawowych, poznających tajniki gramatyki języka polskiego: zarówno dla tych, którzy stawiają pierwsze kroki w rozpoznawaniu poszczególnych
Bardziej szczegółowoMacierz o wymiarach m n. a 21. a 22. A =
Macierze 1 Macierz o wymiarach m n A = a 11 a 12 a 1n a 21 a 22 a 2n a m1 a m2 a mn Mat m n (R) zbiór macierzy m n o współczynnikach rzeczywistych Analogicznie określamy Mat m n (Z), Mat m n (Q) itp 2
Bardziej szczegółowoWyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.
Wyrażenie nawiasowe Wyrażeniem nawiasowym nazywamy dowolny skończony ciąg nawiasów. Każdemu nawiasowi otwierającemu odpowiada dokładnie jeden nawias zamykający. Poprawne wyrażenie nawiasowe definiujemy
Bardziej szczegółowoZadanie 2: Arytmetyka symboli
1 Cel ćwiczenia Zadanie 2: Arytmetyka symboli Wykształcenie umiejętności abstrahowania operacji arytmetycznych. Zapoznanie się i przećwiczenie mechanizmu tworzenia przeciążeń funkcji operatorowych. Utrwalenie
Bardziej szczegółowoAUTOMATY SKOŃCZONE. Automat skończony przedstawiamy formalnie jako uporządkowaną piątkę:
AUTOMATY SKOŃCZONE DETERMINISTYCZNY AUTOMAT SKOŃCZONY - DAS Automat skończony jest modelem matematycznym systemu o dyskretnych wejściach i wyjściach. System taki w danej chwili może znajdować się w jednym
Bardziej szczegółowoWykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ
Wykład5,str1 p 0,Z 0Z 0,0 00 q λ,z λ r Wykład5,str1 Słowo na wejściu: 0011 część nieprzeczytana Z p 0,Z 0Z 0,0 00 q λ,z λ r Wykład5,str1 Słowo na wejściu: 0011 część nieprzeczytana 0 Z p 0,Z 0Z 0,0 00
Bardziej szczegółowo