Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.

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ęść 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
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Wprowadzenie do teoretycznych podstaw informatyki
Przetwarzanie tekstów i AWK Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 7
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Język asemblera i koncepcja von Neumanna
Przetwarzanie tekstów i AWK
Programowanie imperatywne i język C
Języki formalne i gramatyki
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
Podprogramy.
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.
Generator analizatorów składniowych
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Instrukcja warunkowa i wyboru
Translatory Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 11.
Gramatyki i translatory
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Dokumenty elektroniczne Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do.
Przetwarzanie tekstów i AWK Copyright, 2007 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5
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 Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki Wykład 7

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Z ostatniego wykładu Uproszczony analizator leksykalny Metoda zejść rekurencyjnych Zbiory first

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Z ostatniego wykładu Uproszczony analizator leksykalny Metoda zejść rekurencyjnych Zbiory first

J.Nawrocki, Języki formalne i gramatyki Z ostatniego wykładu 1+ =1+ =1+ =1+ = { 1, 11, 111,... } Gramatyka Symbole terminalne Symbole nieterminalne Symbol początkowy Produkcje 1 S S S  1 S  S 1

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

J.Nawrocki, Języki formalne i gramatyki Z ostatniego wykładu – Sprawdzanie gramatyki 1. S  1 2. S  S 1 1+ =1+ =1+ =1+ = { 1, 11, 111,... }  1:S 1. 1  11:S 2. S 1   111:S 2. S 1 1  S 1  2.

J.Nawrocki, Języki formalne i gramatyki Z ostatniego wykładu Forma 1  Forma 2  Forma k ... Forma 1Forma k ** Domknięcie zwrotne relacji wywodu

J.Nawrocki, Języki formalne i gramatyki Z ostatniego wykładu Symbol początkowy Zdanie ** Język formalny L(G) = { x: S  * x  x  T* }

J.Nawrocki, Języki formalne i gramatyki Z ostatniego wykładu – Klasyfikacja Chomsky’ego Gramatyki bezkontekstowe Noam Chomsky

J.Nawrocki, Języki formalne i gramatyki Z ostatniego wykładu - Gramatyka bezkontekstowa () 1. W  ( W ) 1 2. W  1 Jeden nieterminal Noam Chomsky

J.Nawrocki, Języki formalne i gramatyki Zastosowania języków formalnych 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 Fazy kompilacji Analiza leksykalna.pas Środowisko czasu wykon. Analiza składniowa Generacja kodu pośr. Generacja kodu wynik..exe Wyrażenia regularne Gramatyki

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Z ostatniego wykładu Uproszczony analizator leksykalny Metoda zejść rekurencyjnych Zbiory first

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny procedure InitCurrent; function Current: Char; procedure Next; ((1))

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny procedure InitCurrent; function Current: Char; procedure Next; ((1))

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny ((1)) procedure InitCurrent; function Current: Char; procedure Next; (

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny procedure InitCurrent; function Current: Char; procedure Next; ((1))

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny procedure InitCurrent; function Current: Char; procedure Next; ((1))

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny var CurrentChar: Char; procedure InitCurrent; begin read(CurrentChar); end; function Current: Char; procedure Next; ((1))

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny var CurrentChar: Char; procedure InitCurrent; begin read(CurrentChar); end; function Current: Char; begin Current:= CurrentChar; end; procedure Next; ((1))

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny var CurrentChar: Char; procedure InitCurrent; begin read(CurrentChar); end; function Current: Char; begin Current:= CurrentChar; end; procedure Next; begin read(CurrentChar); end; ((1))

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny ((1)) function Take(c: Char): Boolean; procedure InitCurrent; function Current: Char; procedure Next;

J.Nawrocki, Języki formalne i gramatyki Uproszczony analizator leksykalny ((1)) function Take(c: Char): Boolean; var old: Char; begin old:= Current; Next; Take:= c=old; end; procedure InitCurrent; function Current: Char; procedure Next;

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Z ostatniego wykładu Uproszczony analizator leksykalny Metoda zejść rekurencyjnych Zbiory first

J.Nawrocki, Języki formalne i gramatyki Idea metody zejść rekurencyjnych () 1. W  ( W ) 1 2. W  1 begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean;

J.Nawrocki, Języki formalne i gramatyki Idea metody zejść rekurencyjnych () 1. W  ( W ) 1 2. W  1 begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; begin ( if Current = ‘ ( ’ then () W:= Take(‘ ( ’) and W and Take (‘ ) ’) 1 else W:= Take(‘ 1 ’) end; ((1))

J.Nawrocki, Języki formalne i gramatyki Idea metody zejść rekurencyjnych () 1. W  ( W ) 1 2. W  1 begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; begin ( if Current = ‘ ( ’ then () W:= Take(‘ ( ’) and W and Take (‘ ) ’) 1 else W:= Take(‘ 1 ’) end; ((1)) W

J.Nawrocki, Języki formalne i gramatyki Idea metody zejść rekurencyjnych () 1. W  ( W ) 1 2. W  1 begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; begin ( if Current = ‘ ( ’ then () W:= Take(‘ ( ’) and W and Take (‘ ) ’) 1 else W:= Take(‘ 1 ’) end; ((1)) W

J.Nawrocki, Języki formalne i gramatyki Idea metody zejść rekurencyjnych () 1. W  ( W ) 1 2. W  1 begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; begin ( if Current = ‘ ( ’ then () W:= Take(‘ ( ’) and W and Take (‘ ) ’) 1 else W:= Take(‘ 1 ’) end; ((1))

J.Nawrocki, Języki formalne i gramatyki Plan wykładu Z ostatniego wykładu Uproszczony analizator leksykalny Metoda zejść rekurencyjnych Zbiory first

J.Nawrocki, Języki formalne i gramatyki Nieterminale mogą być problemem begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; 0 1. W  A W  B 1 3. A  B ...

J.Nawrocki, Języki formalne i gramatyki Nieterminale mogą być problemem begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; begin if Current =... then 0 W:= A and Take(‘ 0 ’) 1 else W:= B and Take(‘ 1 ’) end; 0 1. W  A W  B 1 3. A  B ...

J.Nawrocki, Języki formalne i gramatyki Nieterminale mogą być problemem begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; begin if Current =... then 0 W:= A and Take(‘ 0 ’) 1 else W:= B and Take(‘ 1 ’) end; A .. first(A) = {b  T: A  * b  } 0 1. W  A W  B 1 3. A  B ...

J.Nawrocki, Języki formalne i gramatyki Zbiory first A .. first(A) = {b  T: A  * b  } 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  4 (2 first(A) = { (, 2 }

J.Nawrocki, Języki formalne i gramatyki Zbiory first A .. first(A) = {b  T: A  * b  } 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  4 (2 first(A) = { (, 2 } 34 first(B) = { 3, 4 }

J.Nawrocki, Języki formalne i gramatyki Zbiory first A .. first(A) = {b  T: A  * b  } 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  4 (2 first(A) = { (, 2 } 34 first(B) = { 3, 4 } first(W) = first(A)  first(B)

J.Nawrocki, Języki formalne i gramatyki Zbiory first A .. first(A) = {b  T: A  * b  } 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  4 (2 first(A) = { (, 2 } 34 first(B) = { 3, 4 } first(W) = first(A)  first(B)

J.Nawrocki, Języki formalne i gramatyki Zbiory first A .. first(A) = {b  T: A  * b  } 0 1. W  A W  0 B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  4 (2 first(A) = { (, 2 } 34 first(B) = { 3, 4 } first(W) = first(A) ...

J.Nawrocki, Języki formalne i gramatyki Zbiory first A .. first(A) = {b  T: A  * b  } 0 1. W  A W  0 B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  4 (2 first(A) = { (, 2 } 34 first(B) = { 3, 4 } 0 first(W) = first(A)  { 0 }

J.Nawrocki, Języki formalne i gramatyki Zbiory first 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  4 (2 first(A) = { (, 2 } 34 first(B) = { 3, 4 } begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; begin (2 if Current = ‘ ( ’ or Current = ‘ 2 then 0 W:= A and Take(‘ 0 ’) 1 else W:= B and Take(‘ 1 ’) end;

J.Nawrocki, Języki formalne i gramatyki Co by było gdyby? 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  4 (2 first(A) = { (, 2 } 34 first(B) = { 3, 4 } begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; begin (2 if Current = ‘ ( ’ or Current = ‘ 2 then 0 W:= A and Take(‘ 0 ’) 1 else W:= B and Take(‘ 1 ’) end;

J.Nawrocki, Języki formalne i gramatyki Co by było gdyby? 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  2 (2 first(A) = { (, 2 } 34 first(B) = { 3, 4 } begin InitCurrent; if W then writeln('OK') else writeln('Error') end. function W: Boolean; begin (2 if Current = ‘ ( ’ or Current = ‘ 2 ‘ then 0 W:= A and Take(‘ 0 ’) 1 else W:= B and Take(‘ 1 ’) end; 32 first(B) = { 3, 2 } Musi być: first(A)  first(B) = 

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  2 ( n 2 ) n 0 | 3 * 2 1 gdzie n  0 ( k 2 ) k 0 | 2 0 | | 2 1 gdzie k  1

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  2 ( k 2 ) k 0 | 2 0 | | 2 1 gdzie k  W  N 0 () 4. N  ( N ) (2 ) 5. N  ( 2 )

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  2 ( k 2 ) k 0 | 2 0 | | 2 1 gdzie k  W  N W  T 2 1 () 4. N  ( N ) (2 ) 5. N  ( 2 ) 3 6. T  3 T 3 7. T  3

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  2 ( k 2 ) k 0 | 2 0 | | 2 1 gdzie k  W  N W  T T  3 T 3 7. T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) 0 8. K  K  1

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  A W  B 1 () 3. A  ( A ) 3 5. B  3 B 2 4. A  B  W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) Gramatyki równoważne

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) first(N) = ( { ( }

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) ( first(N) = { ( } first(T) = 3 { 3 }

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function W: Boolean; begin end; ( first(N) = { ( } 3 first(T) = { 3 }

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function W: Boolean; begin 0 W:= N and Take(‘ 0 ’) end; ( first(N) = { ( } 3 first(T) = { 3 }

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function W: Boolean; begin ( if Current = ‘ ( ’ then 0 W:= N and Take(‘ 0 ’) end; ( first(N) = { ( } 3 first(T) = { 3 }

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function W: Boolean; begin ( if Current = ‘ ( ’ then 0 W:= N and Take(‘ 0 ’) 21 W:= T and Take(‘ 2 ’) and Take(‘ 1 ’) end; ( first(N) = { ( } 3 first(T) = { 3 }

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function W: Boolean; begin ( if Current = ‘ ( ’ then 0 W:= N and Take(‘ 0 ’) 3 else if Current = ‘ 3 ’ 21 W:= T and Take(‘ 2 ’) and Take(‘ 1 ’) end; ( first(N) = { ( } 3 first(T) = { 3 }

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function W: Boolean; begin ( if Current = ‘ ( ’ then 0 W:= N and Take(‘ 0 ’) 3 else if Current = ‘ 3 ’ 21 W:= T and Take(‘ 2 ’) and Take(‘ 1 ’) 2 else W:= Take(‘ 2 ’) and K end; ( first(N) = { ( } 3 first(T) = { 3 }

J.Nawrocki, Języki formalne i gramatyki Jak sobie z tym poradzić? 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function W: Boolean; begin ( if Current = ‘ ( ’ then 0 W:= N and Take(‘ 0 ’) 3 else if Current = ‘ 3 ’ 21 W:= T and Take(‘ 2 ’) and Take(‘ 1 ’) 2 else W:= Take(‘ 2 ’) and K end; ( first(N) = { ( } 3 first(T) = { 3 }

J.Nawrocki, Języki formalne i gramatyki Funkcja związana z nieterminalem T 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function T: Boolean; begin end;

J.Nawrocki, Języki formalne i gramatyki Funkcja związana z nieterminalem T 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function T: Boolean; var ok: Boolean; begin 3 ok:= Take (‘ 3 ’); end;

J.Nawrocki, Języki formalne i gramatyki Funkcja związana z nieterminalem T 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function T: Boolean; var ok: Boolean; begin 3 ok:= Take (‘ 3 ’); T:= ok and T end;

J.Nawrocki, Języki formalne i gramatyki Funkcja związana z nieterminalem T 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function T: Boolean; var ok: Boolean; begin 3 ok:= Take (‘ 3 ’); 3 if Current = ‘ 3 ’ then T:= ok and T end; 3 first(T) = { 3 }

J.Nawrocki, Języki formalne i gramatyki Funkcja związana z nieterminalem T 0 1. W  N W  T K  T  3 T 1 9. K  T  3 () 4. N  ( N ) 2 3. W  2 K (2 ) 5. N  ( 2 ) function T: Boolean; var ok: Boolean; begin 3 ok:= Take (‘ 3 ’); 3 if Current = ‘ 3 ’ then T:= ok and T else T:= ok end;

J.Nawrocki, Języki formalne i gramatyki Podsumowanie Wreszcie! Gramatyka formalna Produkcje gramatyki Wywód zdania Klasyfikacja Chomsky’ego Metoda zejść rekurencyjnych Zbiory first Założenie: brak produkcji pustych

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

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?