Języki formalne i gramatyki

Slides:



Advertisements
Podobne prezentacje
Lingwistyka Matematyczna
Advertisements

Lingwistyka Matematyczna
Lingwistyka Matematyczna
Systemy czasu rzeczywistego
Sortowanie przez scalanie
Wprowadzenie do informatyki Wykład 6
Informatyka jako dziedzina wiedzy
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Współprogramy III Ten wykład ma na celu pokazanie kolejnej ciekawej możliwości, którą oferują współprogramy. Wspólprogramy reprezentujące wyrażenia regularne.
Metoda pierwszeństwa operatorów
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Systemy czasu rzeczywistego Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Rekursja Teoretyczne podstawy informatyki Wykład 5
Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wprowadzenie do informatyki Wykład 5
Przetwarzanie tekstów i AWK Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Budowa komputera Wstęp do informatyki Wykład 15
Testy akceptacyjne Analiza systemów informatycznych Wykład 9
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Bazy danych Wprowadzenie do informatyki Wykład 9
Asembler i koncepcja von Neumanna
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Wprowadzenie do teoretycznych podstaw informatyki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Język asemblera i koncepcja von Neumanna
Programowanie imperatywne i język C
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Przetwarzanie tekstów i AWK Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Przetwarzanie tekstów i AWK Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 7
Metody formalne Copyright, 2005 © Jerzy R. Nawrocki Analiza systemów informatycznych.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wyrażenia regularne i język AWK
Komunikacja poprzez Internet
Dokumenty i prezentacje Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do.
Wprowadzenie do informatyki Wykład 5
Ogólne jednostki programowe 1
Podprogramy.
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Przetwarzanie tekstu i strony WWW Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Procedury i funkcje.
Języki i automaty część 5.
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Translatory Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 11.
Gramatyki i translatory
Ogólna struktura programu w TP
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
ANALIZA SKŁADNIOWA.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Wyrażenia regularne i język AWK Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne.
Wstęp do programowania Wykład 9
Przetwarzanie języka Wprowadzenie do informatyki Jerzy Nawrocki
Zapis prezentacji:

Języki formalne i gramatyki (c) Jerzy Nawrocki TPI, Wykład 6 Teoretyczne podstawy informatyki Wykład 6 Języki formalne i gramatyki Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/tpi/ Copyright, 2004 © Jerzy R. Nawrocki Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Ulepszenia Wyrażenia regularne a gramatyki J.Nawrocki, Języki formalne i gramatyki

Zastosowania języków formalnych (c) Jerzy Nawrocki Zastosowania języków formalnych TPI, Wykład 6 Kompilatory dla nowych języków programowania (C#, xSQL) Generowanie kodu na podstawie modeli (UML, HRT HOOD) Przypadki testowe (pokrycie, gen.) Szacowanie maksymalnego czasu wykonania programów Analiza łańcuchów DNA (wzorce) Przetwarzanie dokumentów XML J.Nawrocki, Języki formalne i gramatyki Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Podstawowe pojęcia Klasyfikacja Chomsky’ego Zbiory FOLLOW i first Metoda zejść rekurencyjnych Atrybuty i translacja J.Nawrocki, Języki formalne i gramatyki

Środowisko czasu wykon. Fazy kompilacji Wyrażenia regularne Analiza leksykalna .pas Gramatyki Analiza składniowa Generacja kodu pośr. .exe Generacja kodu wynik. Środowisko czasu wykon. J.Nawrocki, Języki formalne i gramatyki

Pojęcia analizy składniowej ??? Jaś szkoły idzie do Teraz OK. Jaś szkoły idzie do J.Nawrocki, Języki formalne i gramatyki

Pojęcia analizy składniowej ??? 1 + * 2 3 Teraz OK. 1 + * 2 3 J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Wyrażenie będące sumą 4444 4444 + 333 4444 + 333 + 22 4444 + 333 + 22 + 1 J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Wyrażenie będące sumą składnik 4444 + 333 4444 + 333 + 22 4444 + 333 + 22 + 1 J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Wyrażenie będące sumą składnik składnik + składnik 4444 + 333 + 22 4444 + 333 + 22 + 1 J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Wyrażenie będące sumą składnik składnik + składnik składnik + składnik + składnik 4444 + 333 + 22 + 1 J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Wyrażenie będące sumą składnik składnik + składnik składnik + składnik + składnik składnik + składnik + składnik + składnik J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Wyrażenie będące sumą składnik 1 składnik + składnik 2 składnik + składnik + składnik 3 składnik + składnik + składnik + składnik wyrażenie: ( składnik + )* składnik J.Nawrocki, Języki formalne i gramatyki

Wyrażenie będące iloczynem (czyli składnik) 1111 czynnik 1111 * 222 czynnik * czynnik 1111 * 222 * 33 czynnik * czynnik * czynnik 1111 * 222 * 33 * 4 czynnik * czynnik * czynnik * czynnik J.Nawrocki, Języki formalne i gramatyki

Wyrażenie będące iloczynem (czyli składnik) 1111 czynnik 1111 * 222 czynnik * czynnik 1111 * 222 * 33 czynnik * czynnik * czynnik 1111 * 222 * 33 * 4 czynnik * czynnik * czynnik * czynnik składnik: ( czynnik * )* czynnik J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Czynnik 1111 liczba ( 1111 + 222 ) ( 1111 + 222 * 33 ) ( wyrażenie ) czynnik: liczba | ( wyrażenie ) J.Nawrocki, Języki formalne i gramatyki

Pojęcia analizy składniowej Gramatyka formalna: reguły budowy zdań T = zbiór symboli terminalnych + * ( ... N = zbiór symboli nieterminalnych Wyrażenie Składnik Czynnik P = zbiór produkcji gramatyki Składnik: Czynnik * Noam Chomsky S = symbol początkowy (S  N) Wyrażenie J.Nawrocki, Języki formalne i gramatyki

Pojęcia analizy składniowej Wywód zdania Symbol początkowy Forma zdaniowa   Forma zdaniowa   Forma zdaniowa   Zdanie  Forma zdaniowa  (T  N)+ Zdanie  (T)+ J.Nawrocki, Języki formalne i gramatyki

Pojęcia analizy składniowej Spostrzeżenia Forma zdaniowa  (T  N)+ Zdanie  (T)+ Każde zdanie jest formą zdaniową ale nie na odwrót. Symbol początkowy gramatyki jest formą zdaniową. J.Nawrocki, Języki formalne i gramatyki

Pojęcia analizy składniowej Produkcja gramatyki (T  N)+     Jeśli w zbiorze gramatyki jest   , to x  y x  y  J.Nawrocki, Języki formalne i gramatyki

Wyrażenia arytmetyczne W + S   S + S  W  S W  W + S  C + S  C + S * C  3. S  C 4. S  S * C  C + C * C   L + C * C  L + L * C  5. C  L 6. C  ( W )  L + L * L   D + L * L  D + D * L  7. L  D 8. L  L D  D + D * D   1 + D * D  1 + 2 * D  9. D  1 10. D  2 11. D  3  1 + 2 * 3 Wywód lewo-/prawostronny J.Nawrocki, Języki formalne i gramatyki

Pojęcia analizy składniowej Domknięcie zwrotne relacji wywodu Forma 1  Forma 2  Forma k ... Forma 1 Forma k * Forma 1 * J.Nawrocki, Języki formalne i gramatyki

Pojęcia analizy składniowej Język formalny L(G) = { x: S * x  x  T* } Symbol początkowy * Zdanie J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Podstawowe pojęcia Klasyfikacja Chomsky’ego Zbiory FOLLOW i first Metoda zejść rekurencyjnych Atrybuty i translacja J.Nawrocki, Języki formalne i gramatyki

Klasyfikacja Chomsky’ego Gramatyki liniowe J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Gramatyki liniowe a+ b+ Prawoliniowa S  A B A  a A A  a B  b B B  b S  A B A  A a A  a B  B b B  b Lewoliniowa Twierdzenie. Dla każdego wyrażenia regularnego istnieje gramatyka lewoliniowa (prawoliniowa) opisująca ten sam język. J.Nawrocki, Języki formalne i gramatyki

Klasyfikacja Chomsky’ego Gramatyki bezkontekstowe Gramatyki liniowe J.Nawrocki, Języki formalne i gramatyki

Gramatyka bezkontekstowa W  S W  W + S 3. S  C 4. S  S * C 5. C  L 6. C  ( W ) 7. L  1 8. L  2 9. L  3 Jeden nieterminal J.Nawrocki, Języki formalne i gramatyki

Klasyfikacja Chomsky’ego Gramatyki kontekstowe Gramatyki bezkontekstowe Gramatyki liniowe J.Nawrocki, Języki formalne i gramatyki

Gramatyka kontekstowa S  a X Y S  a S X Y a X  a b b X  b b c X  c c b Y  b c c Y  c c J.Nawrocki, Języki formalne i gramatyki

Klasyfikacja Chomsky’ego S  a S  a S a  a b Gramatyki klasy 0 Gramatyki kontekstowe Gramatyki bezkontekstowe Gramatyki liniowe J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Podstawowe pojęcia Klasyfikacja Chomsky’ego Zbiory FOLLOW i first Metoda zejść rekurencyjnych Atrybuty i translacja J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Zbiór FOLLOW(X) follow (X) = {a  T: S *  X a } gdzie: S = symbol pocz. ,   (T  N)* S * .. X a .. J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Zbiór FOLLOW(X) FOLLOW(X) = {a  T  {$}: S $ *  X a } S * .. X a .. $ follow(B) = ? S  0 B B  1 $  FOLLOW(B) bowiem S $  0 B $ 1 J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki FOLLOW(X) FOLLOW(X) = {a  T  {$}: S $ *  X a } FOLLOW(S) = ? S  0 B B  1 $  FOLLOW(S) Twierdzenie F0 S $ * S $ J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki FOLLOW(X) FOLLOW(X) = {a  T  {$}: S $ *  X a } Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Twierdzenie F1 Jeśli a  FOLLOW(Y), to S $ * .. Y a .. Jeśli Y   X, to .. Y a ..  ..  X a .. Zatem S $ * ..  X a .. Czyli a  FOLLOW(X) J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki FOLLOW(X) i first(Z) FOLLOW(X) = {a  T  {$}: S $ *  X a } Y   X Z Z  .. FOLLOW(X) = ? first(Z) = {b  T: Z * b } Jeśli Y   X Z, to first(Z)  FOLLOW(X). Twierdzenie F2 Jeśli S * .. Y .., to S * ..  X Z .. Jeśli b  first(Z), to Z * b  Czyli S $ * ..  X b  .. Zatem b  FOLLOW(X) J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Podsumowanie FOLLOW(X) = {a  T  {$}: S $ *  X a } Y   X Z Z  .. first(Z) = {b  T: Z * b } Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2 Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Przykład first(Z) = {bT: Z * b} Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2’ Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 S P K P  ‘0‘ P  ‘0’ P K  ‘e’ K  ‘f’ FOLLOW(S) J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Przykład first(Z) = {bT: Z * b} Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2’ Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 S P K P  ‘0‘ P  ‘0’ P K  ‘e’ K  ‘f’ $  FOLLOW(S) J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Przykład first(Z) = {bT: Z * b} Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2’ Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 S P K P  ‘0‘ P  ‘0’ P K  ‘e’ K  ‘f’ $  FOLLOW(S) FOLLOW(K) J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Przykład first(Z) = {bT: Z * b} Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2’ Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 S P K P  ‘0‘ P  ‘0’ P K  ‘e’ K  ‘f’ $  FOLLOW(S) FOLLOW(K) J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Przykład first(Z) = {bT: Z * b} Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2’ Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 S P K P  ‘0‘ P  ‘0’ P K  ‘e’ K  ‘f’ $  FOLLOW(S) $  FOLLOW(K) J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Przykład first(Z) = {bT: Z * b} Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2’ Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 S P K P  ‘0‘ P  ‘0’ P K  ‘e’ K  ‘f’ $  FOLLOW(S) $  FOLLOW(K) FOLLOW(P) J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Przykład first(Z) = {bT: Z * b} Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2’ Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 S P K P  ‘0‘ P  ‘0’ P K  ‘e’ K  ‘f’ $  FOLLOW(S) $  FOLLOW(K) FOLLOW(P) J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Przykład first(Z) = {bT: Z * b} Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2’ Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 S P K P  ‘0‘ P  ‘0’ P K  ‘e’ K  ‘f’ $  FOLLOW(S) $  FOLLOW(K) first(K)  FOLLOW(P) e,f  FOLLOW(P) first(K) = {e, f} J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Przykład first(Z) = {bT: Z * b} Jeśli Y   X Z, to first(Z)  FOLLOW(X). Tw. F2’ Jeśli Y   X, to FOLLOW(Y)  FOLLOW(X). Tw. F1 $  FOLLOW(S) Tw. F0 S P K P  ‘0‘ P  ‘0’ P K  ‘e’ K  ‘f’ $  FOLLOW(S) $  FOLLOW(K) first(K)  FOLLOW(P) e,f  FOLLOW(P) first(K) = {e, f} J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Podstawowe pojęcia Klasyfikacja Chomsky’ego Zbiory FOLLOW i first Metoda zejść rekurencyjnych Atrybuty i translacja J.Nawrocki, Języki formalne i gramatyki

Metoda zejść rekurencyjnych 1 + 2 * 3 E  W = W  S W  S + W W  S – W S  C S  C * S C  L C  ( W ) L  D L  D L D  0 D  1 function Current: char; (* podgląd *) function CurrentIn(s: SetOfChar): Boolean; (* Czy Current należy do s? *) function Take(t: char): Boolean; (* Czy Curren = t ? Jeśli nie to sygnalizuj błąd. Następny Current *) procedure Next; (* Weź następny element z wejścia *) J.Nawrocki, Języki formalne i gramatyki

Metoda zejść rekurencyjnych E  W = W  S W  S + W W  S – W S  C S  C * S C  L C  ( W ) L  D L  D L D  0 D  1 function D: Boolean; begin if Current = ‘0’ then D:= Take(‘0’) else D:= Take(‘1’) end; J.Nawrocki, Języki formalne i gramatyki

Metoda zejść rekurencyjnych FOLLOW(L)= FOLLOW(C) = {*}  FOLLOW(S)= {*, -, +}  FOLLOW(W)= {*, -, +, ), =} first(L)= first(D)= {0, 1} E  W = W  S W  S + W W  S – W S  C S  C * S C  L C  ( W ) L  D L  D L D  0 D  1 function L: Boolean; var ok: Boolean; begin ok:= D; if CurrentIn(FollowL) then L:= ok else if CurrentIn(FirstL) then L:= ok and L else Expected("0, 1, *, +, - , ), =") end; J.Nawrocki, Języki formalne i gramatyki

Metoda zejść rekurencyjnych E  W = W  S W  S + W W  S – W S  C S  C * S C  L C  ( W ) L  D L  D L D  0 D  1 first(L)= first(D)= {0, 1} function C: Boolean; begin if CurrentIn(FirstL) then C:= L else if Curren = ‘(‘ then C:= Take(‘(‘) and W and Take(‘)’) else Expected("0, 1, (") end; J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Podstawowe pojęcia Klasyfikacja Chomsky’ego Zbiory FOLLOW i first Metoda zejść rekurencyjnych Atrybuty i translacja J.Nawrocki, Języki formalne i gramatyki

Metoda zejść rekurencyjnych function D(var v: integer): Boolean; begin if Current() = ‘0’ then D:= Take(‘0’); v:= 0 end else D:= Take(‘1’); v:= 1 end; E  W = W  S W  S + W W  S – W S  C S  C * S C  L C  ( W ) L  D L  D L D  0 D  1 D.v:= 0 D.v:= 1 J.Nawrocki, Języki formalne i gramatyki

Metoda zejść rekurencyjnych writeln(W.v) E  W = W  S W1  S + W2 W1  S – W2 S  C S1  C * S2 C  L C  ( W ) L  D L1  D L2 D  0 function E: Boolean; var v: integer; begin if CurrentIn(FirstW) then E:= W(v); writeln(v) end end; D.v:= 0 J.Nawrocki, Języki formalne i gramatyki

Metoda zejść rekurencyjnych E  W = W  S W1  S + W2 W1  S – W2 S  C S1  C * S2 C  L C  ( W ) L  D L1  D L2 D  0 writeln(W.v) W.v:= S.v W1.v:= S.v + W2.v W1.v:= S.v – W2.v S.v:= C.v S1.v:= C.v * S2.v C.v:= L.v C.v:= W.v L.v:= D.v; L.r:=2 L1.v:= D.v*L2.r + L2.v; L1.r:= L2.r * 2 D.v:= 0 J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Podsumowanie Gramatyka formalna Produkcje gramatyki Wywód zdania Klasyfikacja Chomsky’ego Zbiory FIRST i follow Metoda zejść rekurencyjnych Atrybuty Wreszcie! J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Literatura J. Cybulka, B. Jankowska, J. Nawrocki, Automatyczne przetwarzanie tekstów. AWK, Lex i YACC, Nakom, Poznań, 2002.  J.Nawrocki, Języki formalne i gramatyki

J.Nawrocki, Języki formalne i gramatyki Ocena wykładu 1. Wrażenie ogólne? (1 - 6) 2. Zbyt wolno czy zbyt szybko? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co poprawić i jak? J.Nawrocki, Języki formalne i gramatyki