Gramatyki i translatory

Slides:



Advertisements
Podobne prezentacje
Lingwistyka Matematyczna
Advertisements

Lingwistyka Matematyczna
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.
Analiza Składniowa Wstępująca
Lingwistyka Matematyczna
Metoda pierwszeństwa operatorów
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Informatyka jako dziedzina wiedzy Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Przetwarzanie tekstów i AWK Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Obliczalność i złożoność obliczeniowa
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.
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Bazy danych Wprowadzenie do informatyki Wykład 9
Informatyka jako dziedzina wiedzy Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
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.
Przetwarzanie tekstów i AWK
Programowanie imperatywne i język C
Języki formalne i gramatyki
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
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
Od algebry Boole’a do komputera
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.
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
KONSTRUKCJA KOMPILATORÓW WYKŁAD WYKŁAD Robert Plebaniak Robert Plebaniak.
Przetwarzanie tekstu i strony WWW Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Generator analizatorów składniowych
Języki i automaty część 5.
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Informatyka jako dziedzina wiedzy
Translatory Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 11.
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Podstawy języka Instrukcje - wprowadzenie
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Dokumenty elektroniczne Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do.
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Przetwarzanie tekstów i AWK Copyright, 2007 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5
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.
Systemy wspomagające dowodzenie twierdzeń
Wyrażenia regularne i język AWK Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne.
Wstęp do programowania Wykład 9
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Przetwarzanie języka Wprowadzenie do informatyki Jerzy Nawrocki
Zapis prezentacji:

Gramatyki i translatory (c) Jerzy Nawrocki TPI, Wykład 8 Wstęp do informatyki Wykład 14 Gramatyki i translatory Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/wsb-wdi/ Copyright, 2005 © Jerzy R. Nawrocki Procesy współbieżne

J.Nawrocki, Gramatyki i translatory (c) Jerzy Nawrocki Języki programowania TPI, Wykład 8 Kompilator Analizator Generator .pas .exe J.Nawrocki, Gramatyki i translatory Procesy współbieżne

J.Nawrocki, Gramatyki i translatory (c) Jerzy Nawrocki Języki programowania TPI, Wykład 8 Dany jest ciąg cyfr, nawiasów, znaków +, -, *, /. Czy ten ciąg jest poprawnie zbudowanym wyrażeniem arytmetycznym? 1 + 2 * 3 = 7 1 + * 2 3 = ??? J.Nawrocki, Gramatyki i translatory Procesy współbieżne

J.Nawrocki, Gramatyki i translatory (c) Jerzy Nawrocki Plan wykładu TPI, Wykład 8 Gramatyka i wywód Język formalny Gramatyki bezkontekstowe Idea zejść rekurencyjnych J.Nawrocki, Gramatyki i translatory Procesy współbieżne

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

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

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

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

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

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

J.Nawrocki, Gramatyki i translatory (c) Jerzy Nawrocki Plan wykładu TPI, Wykład 8 Gramatyka i wywód Język formalny Gramatyki bezkontekstowe Idea zejść rekurencyjnych J.Nawrocki, Gramatyki i translatory Procesy współbieżne

Domknięcie relacji wywodu S  A B A  1 A  A 1 B  0 B  B 0 1) 2) 3) 4) 5) Wywód: S A B 1 B 1 0  1 2 4 S 1 0  + Z S można wywieść 10 stosując 1 lub więcej produkcji 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, ...} J.Nawrocki, Gramatyki i translatory

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 Język formalny L zdefiniowany przez gramatykę G: L(G) = {x  T*: S x  + } J.Nawrocki, Gramatyki i translatory

J.Nawrocki, Gramatyki i translatory Język formalny 1) 2) 3) 4) 5) S  A B A  1 A  A 1 B  0 B  B 0 L(G) = {x  T*: S x  + } S A B 1 B  1 2 S 1 B  + Czy 1B należy do L(G) ? 11  T* Czy 11 należy do L(G) ? 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 J.Nawrocki, Gramatyki i translatory

J.Nawrocki, Gramatyki i translatory (c) Jerzy Nawrocki Plan wykładu TPI, Wykład 8 Gramatyka i wywód Język formalny Gramatyki bezkontekstowe Idea zejść rekurencyjnych J.Nawrocki, Gramatyki i translatory Procesy współbieżne

Klasyfikacja Chomsky’ego Noam Chomsky Gramatyki liniowe J.Nawrocki, Gramatyki i translatory

Klasyfikacja Chomsky’ego Noam Chomsky Gramatyki bezkontekstowe Gramatyki liniowe J.Nawrocki, Gramatyki i translatory

Klasyfikacja Chomsky’ego Noam Chomsky Gramatyki klasy 0 Gramatyki kontekstowe Gramatyki bezkontekstowe Gramatyki liniowe J.Nawrocki, Gramatyki i translatory

Klasyfikacja Chomsky’ego Gramatyki liniowe J.Nawrocki, Gramatyki i translatory

J.Nawrocki, Gramatyki i translatory Gramatyki liniowe a+ b+ S  S b S  A A  a A  A a Prawoliniowa S  a S S  B 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, Gramatyki i translatory

Klasyfikacja Chomsky’ego Gramatyki bezkontekstowe Gramatyki liniowe J.Nawrocki, Gramatyki i translatory

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, Gramatyki i translatory

Klasyfikacja Chomsky’ego Gramatyki kontekstowe Gramatyki bezkontekstowe Gramatyki liniowe J.Nawrocki, Gramatyki i translatory

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, Gramatyki i translatory

J.Nawrocki, Gramatyki i translatory (c) Jerzy Nawrocki Plan wykładu TPI, Wykład 8 Gramatyka i wywód Język formalny Gramatyki bezkontekstowe Idea zejść rekurencyjnych J.Nawrocki, Gramatyki i translatory Procesy współbieżne

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  C N N  C N – liczba binarna (Numer binarny) C – Cyfra binarna N = C+ N = {C, CC, CCC, ...} J.Nawrocki, Gramatyki i translatory

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 N  C C  0 C  1 N = C+ N = {C, CC, CCC, ...} gdzie C = {0, 1} J.Nawrocki, Gramatyki i translatory

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

J.Nawrocki, Gramatyki i translatory Bufor wejściowy 1 ‘ ‘ Token #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(){ N  C N N  C C  0 C  1 J.Nawrocki, Gramatyki i translatory

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

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

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

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

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

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