Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
|
|
- Helena Chmielewska
- 5 lat temu
- Przeglądów:
Transkrypt
1 Parsery LL() Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki
2 Zadanie analizy generacyjnej (zstępującej, top-down) symbol początkowy już terminale wyprowadzenie lewostronne pierwszy od lewej nieterminal, którym zastępujemy prawą stroną pewnej produkcji Odtworzenie wywodu lewostronnego metodą top-down
3 Istota gramatyki i parsera LL(k) pierwszy od lewej nieterminal Jeśli odpowiedź na każdorazowe pytanie: Którą produkcję A zastosować? jest zawsze jednoznaczna, gramatyka jest klasy LL(k) A a a j a a j a j+ a j+k a j+k+ a n } analizowany łańcuch już wyprowadzone podglądana część wejścia (na ogół k=)
4 Nierekurencyjny analizator top-down
5 Konfiguracja parsera LL Konfiguracja: (ZXXZY, bbb$, 322) stos nieprzeczytana część wejścia wyjście
6 Parser LL(k) G=<V, Σ, P, S> gramatyka opisująca składnię A = <Σ, Γ, Z 0, Δ, M, $> Σ zbiór symboli terminalnych Γ zbiór symboli stosowych Γ = V Σ Z 0 = S symbol początkowy stosu oraz gramatyki Δ alfabet wyjściowy: zbiór numerów produkcji M tablica sterująca parsera M : V $ $ - ogranicznik końca słowa wejściowego * a V * ERROR
7 Parser LL(k) Konfiguracja parsera: Y, x, Y - zawartość stosu Y - wierzchołek stosu x - nieprzeczytana część wejścia - łańcuch numerów produkcji na wyjściu Parser podgląda na wejściu u FIRST ( x) K
8 Działanie parsera LL(k) Automat widzi wierzchołek stosu i k symboli wejściowych. Tablicę M wykorzystuje się, gdy na wierzchołku stosu znajduje się nieterminal. Konfiguracja początkowa: (S, ω$, ε), przy czym: ω analizowane słowo; S symbol początkowy gramatyki
9 Działanie parsera LL(k) Konfiguracja parsera:, x, Y zaś u FIRST x () if Y then if Y a then /*pop*/ a, a,,, else ERROR; (2) if Y V then M Y, u, i then /* wyprowadzenie */ (3) if Y if R Y, x,, x, i /* Y jest produkcją o numerze i */ else ERROR; then if x $ then ACCEPT else ERROR; k
10 Działanie parsera LL(k) Konfiguracja końcowa akceptująca:,$, - ciąg numerów produkcji opisujący rozkład lewostronny * słowa T w gramatyce G. Wówczas L(G)
11 Krok pop wierzchołek stosu taśma wejściowa stos a Y P # R R R P a b a b ab ba b a $ $ q i 4 8b a taśma wyjściowa
12 Krok pop wierzchołek stosu stos taśma wejściowa Y P # R R R P a b a b ab ba b a $ $ q i 4 8b a taśma wyjściowa
13 Krok wyprowadzenia A Bb wierzchołek stosu taśma wejściowa stos A Y P # R R R P a b a b ab ba b a $ $ q i 4 8b a taśma wyjściowa
14 Krok wyprowadzenia A Bb wierzchołek stosu taśma wejściowa stos b B Y P # R R R P a b a b ab ba b a $ $ q i 4 8b 7 taśma wyjściowa
15 Konstrukcja tablicy sterującej M Konstrukcja tablicy M dla parsera LL() We: G N, T, P, Z G jest klasy LL() GBK Wy: tablica V * M : V $ a ERROR gdzie: - zbiór numerów produkcji w gramatyce G
16 Konstrukcja tablicy sterującej M for A P and A - produkcja numer i do begin () for każde a FIRST : a do M A, a :, i ; (2) if FIRST then end; for każde niezdefiniowane A a M A, a : ERROR ; for każde b FOLLOW A do M A, b :, i ; M, do
17 Projektowanie tablicy parsera LL Mając przekształconą gramatykę języka oraz wyznaczone (dla symboli nieterminalnych tej gramatyki) zbiory FIRST i FOLLOW możemy przystąpić do projektowania tablicy parsera LL. ) E TE 2) E +TE 3) E 4) T FT 5) T *FT 6) T 7) F (E) 8) F id
18 Tablica parsera FIRST FOLLOW id + * ( ) $ E (, id $, ) E +, $, ) T (, id +, $, ) T *, +, $, ) F (, id *, +, $, ) ) E TE 2) E +TE 3) E 4) T FT 5) T *FT 6) T 7) F (E) 8) F id
19 Tablica parsera FIRST FOLLOW id + * ( ) $ E (, id $, ) E TE () E TE () E +, $, ) T (, id +, $, ) T *, +, $, ) F (, id *, +, $, ) ) E TE 2) E +TE 3) E 4) T FT 5) T *FT 6) T 7) F (E) 8) F id
20 Tablica parsera FIRST FOLLOW id + * ( ) $ E (, id $, ) E TE () E TE () E +, $, ) T (, id +, $, ) T *, +, $, ) F (, id *, +, $, ) T FT (4) T FT (4) ) E TE 2) E +TE 3) E 4) T FT 5) T *FT 6) T 7) F (E) 8) F id
21 Tablica parsera FIRST FOLLOW id + * ( ) $ E (, id $, ) E TE () E TE () E +, $, ) T (, id +, $, ) T *, +, $, ) F (, id *, +, $, ) T FT (4) F id (8) T FT (4) F (E) (7) ) E TE 2) E +TE 3) E 4) T FT 5) T *FT 6) T 7) F (E) 8) F id
22 Tablica parsera FIRST FOLLOW id + * ( ) $ E (, id $, ) E TE () E TE () E +, $, ) T (, id +, $, ) T *, +, $, ) F (, id *, +, $, ) T FT (4) F id (8) T *FT (5) T FT (4) F (E) (7) ) E TE 2) E +TE 3) E 4) T FT 5) T *FT 6) T 7) F (E) 8) F id
23 Tablica parsera FIRST FOLLOW id + * ( ) $ E (, id $, ) E +, $, ) T (, id +, $, ) E TE () T FT (4) E TE () T FT (4) T *, +, $, ) T (6) T *FT (5) T (6) T (6) F (, id *, +, $, ) F id (8) F (E) (7)
24 Tablica parsera FIRST FOLLOW id + * ( ) $ E (, id $, ) E +, $, ) T (, id +, $, ) E TE () T FT (4) E +TE (2) ) E TE 2) E +TE 3) E 4) T FT 5) T *FT 6) T 7) F (E) 8) F id E (3) E (3) T *, +, $, ) T (6) T *FT (5) T (6) T (6) F (, id *, +, $, ) F id (8) F (E) (7)
25 Tablica parsera FIRST FOLLOW id + * ( ) $ E (, id $, ) E TE () E TE () E +, $, ) E +TE (2) E (3) E (3) T (, id +, $, ) T FT (4) T FT (4) T *, +, $, ) T (6) T *FT (5) T (6) T (6) F (, id *, +, $, ) F id (8) F (E) (7)
26 Symulacja działania parsera LL Stos Wejście Wyjście E id+id$ E T id+id$ E T F id+id$ 4 E T id id+id$ 48 E T +id$ 48 E +id$ 486 E T+ +id$ 4862 E T id$ 4862 E T F id$ E T id id$ E T $ E $ $ akceptacja
27 Metoda zejść rekurencyjnych () Dla każdego symbolu nieterminalnego gramatyki budujemy procedurę (funkcję) rekurencyjną. Z programu nadrzędnego (głównego) wywoływana jest procedura (funkcja) dla symbolu początkowego gramatyki. (2) Wewnątrz procedury (funkcji) dokonuje się wyboru produkcji na podstawie tokenu podglądanego na wejściu (lookahead). Po dokonaniu wyboru zapewnia się zanotowanie numeru wybranej produkcji (raport). Następnie każdy symbol nieterminalny prawej strony produkcji przekształca się w wywołanie odpowiadającej mu procedury (funkcji), każdy symbol terminalny prowadzi do wywołania operacji match, która sprawdza obecność tego symbolu na wejściu. W przypadku zgodności czyta następny token, w przeciwnym razie sygnalizuje błąd. Symbole z prawej strony produkcji znajdują swoje odpowiedniki w procedurze w tej kolejności, w jakiej są one umieszczone w prawej stronie produkcji. Niemożność dokonania wyboru produkcji wewnątrz procedury sygnalizowana jest błędem.
28 Metoda zejść rekurencyjnych id + * ( ) $ ( ) E TE ( ) E TE ( 2) E TE ( 3) E ( 3) E E E T ( 4) FT T F T ( 4) T FT ( 6) T ( 5) T * FT ( 6) T ( 6) T 8)F id ( 7)F E ( E() { if (lookahead == ID lookahead == ( ) { raport(); T(); E(); } else error(); }
29 Metoda zejść rekurencyjnych id + * ( ) $ ( ) E TE ( ) E TE ( 2) E TE ( 3) E ( 3) E E E T ( 4) FT T F T ( 4) T FT ( 6) T ( 5) T * FT ( 6) T ( 6) T 8)F id ( 7)F E ( E() { if(lookahead == + ) { raport(2); match( + ); T(); E(); } else if (lookahead == ) lookahead == $ ) raport(3); else error(); }
30 Metoda zejść rekurencyjnych id + * ( ) $ ( ) E TE ( ) E TE ( 2) E TE ( 3) E ( 3) E E E T ( 4) FT T F T ( 4) T FT ( 6) T ( 5) T * FT ( 6) T ( 6) T 8)F id ( 7)F E ( T() { if(lookahead == ID lookahead == ( ) { raport(4); F(); T(); } else error(); }
31 Metoda zejść rekurencyjnych id + * ( ) $ ( ) E TE ( ) E TE ( 2) E TE ( 3) E ( 3) E E E T ( 4) FT T F T ( 4) T FT ( 6) T ( 5) T * FT ( 6) T ( 6) T 8)F id ( 7)F E ( T() { if (lookahead == * ) { raport(5); match( * ); F(); T(); } else if(lookahead == + lookahead == ) lookahead == $ ) raport(6); else error(); }
32 Metoda zejść rekurencyjnych id + * ( ) $ ( ) E TE ( ) E TE ( 2) E TE ( 3) E ( 3) E E E T ( 4) FT T F T ( 4) T FT ( 6) T ( 5) T * FT ( 6) T ( 6) T 8)F id ( 7)F E ( F() { if(lookahead == ID) { raport(8); match(id); } else if(lookahead == ( ) { raport(7); match( ( ); E(); match( ) ); } else error(); }
33 Metoda zejść rekurencyjnych error() {... } match(t) int t; { if(lookahead == t) lookahead=gettoken(); else error(); } raport() {... } gettoken() {... } int lookahead; main() { lookahead=gettoken(); E(); /*wywołanie procedury dla symbolu początkowego gramatyki*/ }
34 Metoda zejść rekurencyjnych Wejście: id + id * id
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
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ę.
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
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
Gramatyka 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ą
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
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)
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:
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
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
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
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
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
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 =
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 =
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
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
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)
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
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ą
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...
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
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.
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
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
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
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
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
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ę
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
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
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
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 =
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.
Ję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
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
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
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
Lista 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
Wyraż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
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
Program We Kompilator Wy Źródłowy
1. Aho A.V., Ullman J.D. - The Theory of Parsing, Translation and Compiling.1972. 2. Foster J.M. - Automatyczna analiza składniowa. 1976 3. Gries D. - Konstrukcja translatorów dla maszyn cyfrowych, 1984
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
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 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
Obiektowa 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
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
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
Maszyna 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
Generator LLgen. Wojciech Complak Generator LLgen - charakterystyka. Generator LLgen -składnia specyfikacji
Plan wykładu Wojciech Complak Wojciech.Complak@cs.put.poznan.pl charakterystyka generatora LLgen składnia specyfikacji analizatora składniowego dołączanie analizatora leksykalnego rozszerzenia składni
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
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)
1 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
Temat: 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
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,
Ję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
Jaki 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
Podstawy kompilatorów. Generator LLgen. Wojciech Complak.
Generator LLgen Wojciech Complak Wojciech.Complak@cs.put.poznan.pl 1 Plan wykładu charakterystyka generatora LLgen składnia specyfikacji analizatora składniowego dołączanie analizatora leksykalnego rozszerzenia
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)
Algorytmy i struktury danych. wykład 2
Plan wykładu: Pojęcie algorytmu. Projektowanie wstępujące i zstępujące. Rekurencja. Pojęcie algorytmu Pojęcie algorytmu Algorytm skończony zbiór operacji, koniecznych do wykonania zadania z pewnej klasy
Obliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 01 Od maszyn Turinga do automatów komórkowych Jarosław Miszczak IITiS PAN Gliwice 03/03/2016 1 / 16 1 2 3 Krótka historia Znaczenie 2 / 16 Czego dowiedzieliśmy się
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ń,
Dopeł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
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
Ję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
Wykł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
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
Ję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
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
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
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
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
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
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
TRANSLACJA I TRANSLATORY
TRANSLACJA I TRANSLATORY Języki programowania niskiego czy też wysokiego poziomu mają na zadanie przetworzyć ogół algorytmów w nich zapisanych na taką postać aby maszyna cyfrowa była w stanie je wykonać
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
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
Wprowadzenie 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
Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303
Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Stany równoważne Stany p i q są równoważne,
Ję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
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
Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe
I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom
1. 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
ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW
ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW RELACJE MIEDZY KLASAMI ZŁOŻONOŚCI Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 KLASY ZŁOŻONOŚCI KLASE ZŁOŻONOŚCI OPISUJE SIE PODAJAC: Model
Odwrotna 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).
Podstawy Informatyki Gramatyki formalne
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Języki i gramatyki Analiza syntaktyczna Semantyka 2 Podstawowe pojęcia Gramatyki wg Chomsky ego Notacja Backusa-Naura
KATEDRA 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
Języki formalne i techniki translacji
Języki formalne i techniki translacji Laboratorium - Projekt Termin oddania: ostatnie zajęcia przed 17 stycznia 2016 Wysłanie do wykładowcy: przed 23:59 28 stycznia 2016 Używając BISON-a i FLEX-a napisz
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
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
Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne
A. Permutacja losowa Matematyka dyskretna - wykład - część 2 9. Podstawowe algorytmy kombinatoryczne Załóżmy, że mamy tablice p złożoną z n liczb (ponumerowanych od 0 do n 1). Aby wygenerować losową permutację
Ję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
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.
Algorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
Matematyczna 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
Klasyczne 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
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