Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Gramatyki i translatory Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.

Podobne prezentacje


Prezentacja na temat: "Gramatyki i translatory Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki."— Zapis prezentacji:

1 Gramatyki i translatory Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 14

2 J.Nawrocki, Gramatyki i translatory Języki programowania AnalizatorGenerator.pas.exe Kompilator

3 J.Nawrocki, Gramatyki i translatory Języki programowania Dany jest ciąg cyfr, nawiasów, znaków +, -, *, /. Czy ten ciąg jest poprawnie zbudowanym wyrażeniem arytmetycznym? * * 2 3 = 7 = ???

4 J.Nawrocki, Gramatyki i translatory Plan wykładu Gramatyka i wywód Język formalny Gramatyki bezkontekstowe Idea zejść rekurencyjnych

5 J.Nawrocki, Gramatyki i translatory Produkcje i wywód 1+ =1+ =1+ =1+ = { 1, 11, 111,... } Symbol początkowy: S Produkcje: (reguły zastępowania) S 1 S S 1 Wywód: 111: S 1) 2) S 1 S : S 1 1

6 J.Nawrocki, Gramatyki i translatory Inne produkcje S A B A 1 A A 1 B 0 B B 0 Wywód: 10: SA BA B 1 B ) 2) 3) 4) 5) 100:

7 J.Nawrocki, Gramatyki i translatory Gramatyka S A B A 1 A A 1 B 0 B B 0 Symbol początkowy

8 J.Nawrocki, Gramatyki i translatory Gramatyka S A B A 1 A A 1 B 0 B B 0 Symbol początkowy Symbole nieterminalne N = {S, A, B}

9 J.Nawrocki, Gramatyki i translatory Gramatyka S A B A 1 A A 1 B 0 B B 0 Symbol początkowy Symbole nieterminalne N = {S, A, B} Symbole terminalne T = {0, 1}

10 J.Nawrocki, Gramatyki i translatory Gramatyka S A B A 1 A A 1 B 0 B B 0 Symbol początkowy Symbole nieterminalne N = {S, A, B} Symbole terminalne T = {0, 1} Produkcje

11 J.Nawrocki, Gramatyki i translatory Plan wykładu Gramatyka i wywód Język formalny Gramatyki bezkontekstowe Idea zejść rekurencyjnych

12 J.Nawrocki, Gramatyki i translatory Domknięcie relacji wywodu S A B A 1 A A 1 B 0 B B 0 Wywód: SA BA B 1 B ) 2) 3) 4) 5) S Z S można wywieść 10 stosując 1 lub więcej produkcji

13 J.Nawrocki, Gramatyki i translatory Zbiór ciągów nad alfabetem S A B A 1 A A 1 B 0 B B 0 Alfabet = Zbiór symboli terminalnych T = {0, 1} Zbiór ciągów nad alfabetem T*: Zbiór wszystkich ciągów skończonych zbudowanych z elementów zbioru T. Jeśli T = {0, 1} to T* = {, 0, 1, 00, 01, 10, 11, 000,...} Jeśli T = {a, b, c} to T* = {, a, b, c, aa, ab, ac, ba, bb, bc,...}

14 J.Nawrocki, Gramatyki i translatory Język formalny Gramatyka G = {S, N, T, P} S – Symbol początkowy N – Zbiór symboli nieterminalnych T – Zbiór symboli terminalnych P – Zbiór produkcji L(G) = {x T*: S x + } Język formalny L zdefiniowany przez gramatykę G:

15 J.Nawrocki, Gramatyki i translatory Język formalny L(G) = {x T*: S x + } S A B A 1 A A 1 B 0 B B 0 S 1 B + Czy 1B należy do L(G) ? Czy 11 należy do L(G) ? 11 T* SA BA B 1 B 1 2 1) 2) 3) 4) 5)

16 J.Nawrocki, Gramatyki i translatory Równoważność gramatyk Gramatyki G1 i G2 są równoważne wtedy i tylko wtedy, gdy L(G1) = L(G2) S A B A 1 A A 1 B 0 B B 0 G1 S S 0 S A 0 A 1 A A 1 G2 S 1 S S 1 A A 0 A 0 A G3

17 J.Nawrocki, Gramatyki i translatory Plan wykładu Gramatyka i wywód Język formalny Gramatyki bezkontekstowe Idea zejść rekurencyjnych

18 J.Nawrocki, Gramatyki i translatory Klasyfikacja Chomskyego Gramatyki liniowe Noam Chomsky

19 J.Nawrocki, Gramatyki i translatory Klasyfikacja Chomskyego Gramatyki liniowe Gramatyki bezkontekstowe Noam Chomsky

20 J.Nawrocki, Gramatyki i translatory Gramatyki kontekstowe Klasyfikacja Chomskyego Gramatyki liniowe Gramatyki bezkontekstowe Noam Chomsky Gramatyki klasy 0

21 J.Nawrocki, Gramatyki i translatory Klasyfikacja Chomskyego Gramatyki liniowe

22 J.Nawrocki, Gramatyki i translatory Gramatyki liniowe b 1.S S b 2.S A a 3.A a a 4.A A a Lewoliniowa Prawoliniowa a 1.S a S 2.S B b 3.B b B b 4.B b aba+ b+aba+ b+ Twierdzenie. Dla każdego wyrażenia regularnego istnieje gramatyka lewoliniowa ( prawoliniowa ) opisująca ten sam język.

23 J.Nawrocki, Gramatyki i translatory Klasyfikacja Chomskyego Gramatyki liniowe Gramatyki bezkontekstowe

24 J.Nawrocki, Gramatyki i translatory Gramatyka bezkontekstowa 1.W S + 2.W W + S 3. S C * 4. S S * C 5. C L () 6. C ( W ) 1 7. L L L 3 Jeden nieterminal

25 J.Nawrocki, Gramatyki i translatory Gramatyki kontekstowe Klasyfikacja Chomskyego Gramatyki liniowe Gramatyki bezkontekstowe

26 J.Nawrocki, Gramatyki i translatory Gramatyka kontekstowa a 1. S a X Y a 2. S a S X Y aa b 3. a X a b bb b 4. b X b b cc c 5. c X c c bb c 6. b Y b c cc c 7. c Y c c

27 J.Nawrocki, Gramatyki i translatory Plan wykładu Gramatyka i wywód Język formalny Gramatyki bezkontekstowe Idea zejść rekurencyjnych

28 J.Nawrocki, Gramatyki i translatory Problem Język liczb binarnych L = {0, 1, 00, 01, 10, 11,...}. Po liczbie jest spacja. Napisać program sprawdzania, czy x L. N – liczba binarna (Numer binarny) C – Cyfra binarna N = C + N = {C, CC, CCC,...} N C N N C

29 J.Nawrocki, Gramatyki i translatory Problem Język liczb binarnych L = {0, 1, 00, 01, 10, 11,...}. Po liczbie jest spacja. Napisać program sprawdzania, czy x L. N – liczba binarna (Numer binarny) C – Cyfra binarna N = C + N = {C, CC, CCC,...} gdzie C = {0, 1} N C N N C C 0 C 1

30 J.Nawrocki, Gramatyki i translatory Bufor wejściowy #define Bool int #define True 1 #define False 0 void Init() Bool Widzisz(char c) void Nastepny() 1011 N C N N C C 0 C 1

31 J.Nawrocki, Gramatyki i translatory Bufor wejściowy #define Bool int #define True 1 #define False 0 char Token; void Init(){ scanf("%c", &Token); return; } Bool Widzisz(char c){ return Token == c; } void Nastepny(){ scanf("%c", &Token); return; } 1011 Token N C N N C C 0 C 1

32 J.Nawrocki, Gramatyki i translatory Bufor wejściowy void main(){ Init(); if (N()){ printf("OK\n"); }else{ printf("Error\n"); } return; } Token N C N N C C 0 C 1

33 J.Nawrocki, Gramatyki i translatory Bufor wejściowy Bool C(){ if (Widzisz('0') || Widzisz('1')){ Nastepny(); return True; }else{ return False; } Token N C N N C C 0 C 1

34 J.Nawrocki, Gramatyki i translatory Bufor wejściowy #define N_ogr ' ' Bool N(){ Bool ok; ok= C(); if (ok && Widzisz(N_ogr)){ return ok; }else{ if (ok){ return N(); }else{ return False; } Token N C N N C C 0 C 1

35 J.Nawrocki, Gramatyki i translatory Podsumowanie Gramatyka formalna Wywód zdania Język formalny Gramatyki bezkontekstowe Idea zejść rekurencyjnych Wreszcie!

36 J.Nawrocki, Gramatyki i translatory Literatura J. Cybulka, B. Jankowska, J. Nawrocki, Automatyczne przetwarzanie tekstów. AWK, Lex i YACC, Nakom, Poznań, 2002.

37 J.Nawrocki, Gramatyki i translatory 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?


Pobierz ppt "Gramatyki i translatory Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki."

Podobne prezentacje


Reklamy Google