Języki i gramatyki formalne

Wielkość: px
Rozpocząć pokaz od strony:

Download "Języki i gramatyki formalne"

Transkrypt

1 Języki i gramatyki formalne Języki naturalne i formalne Cechy języka naturalnego - duża swoboda konstruowania zdań (brak ścisłych reguł gramatycznych), duża ilość wyjątków. Języki formalne - ścisły i jednoznaczny opis konstrukcji.

2 Gramatyki naturalne i formalne Gramatyki naturalne pozwalają określić zbiory reguł budowy zdań, Gramatyki formalne zajmują się pojęciami abstrakcyjnymi, powstającymi drogą uogólnienia grupy wyrazów, zadania Stanowią sposób badania i opisu zbioru reguł Języki formalne - definicje Alfabet V = {v 0,..., v n } dowolny skończony i niepusty zbiór symboli (liter), z których będą zestawiane słowa języka Słowo nad alfabetem V wszystkie skończone, uporządkowane ciągi złożone z elementów alfabetu. Słowo puste ε słowo nie mające żadnej litery

3 Języki formalne - definicje Język uniwersalny V* zbiór wszystkich słów nad alfabetem V Język dowolny podzbiór języka uniwersalnego V* nad V Syntaktyka (składnia) języka reguły budowy zdań w języku Semantyka języka interpretacja tych reguł, zasady stosowania składni Języki formalne - definicje Jeśli V= {a}, to V*= {ε, a, aa, aaa, } Jeśli V={a,b}, to V*={ε, a, b, aa, ab, bb, aaa, aab, } Długość słowa liczba jego liter

4 Przykład języka i gramatyki Gramatyka generująca słowa: aaaab, bbbb, a, b, Alfabet = { a, b }; Reguła 1: a jest poprawne (tzn. słowo złożone z a jest poprawne). Reguła 2: jeżeli a jest poprawne to ab też jest poprawne. Przykłady poprawnych słów: a - na podstawie Reguły 1. aab na podstawie Reguły 1 i Reguły 2. aaabb - na podstawie Reguły 1 i dwukrotnej Reguły 2. Typy gramatyk formalnych Gramatyka rozpoznająca dla dowolnego rozpatrywanego słowa potrafi rozstrzygnąć, czy słowo to jest poprawne czy nie, a w przypadku odpowiedzi pozytywnej potrafi podać wskazówki dotyczące budowy tego słowa Gramatyka generacyjna potrafi zbudować dowolne słowo poprawne, podając przy tym wskazówki dotyczące jego budowy oraz nie tworzy ani jednego słowa niepoprawnego

5 Typy gramatyk formalnych Gramatyka przetwarzająca dla dowolnie poprawnie zbudowanego słowa potrafi ona zbudować jego odwzorowania również w postaci słowa poprawnego, określając przy tym wskazówki dotyczące kolejności stosowania odwzorowań Gramatyka Noama Chomsky'ego Formalnie gramatykę określamy jako: G = < V, T, P, S > V zbiór symboli terminalnych skończony, niepusty zbiór symboli końcowych, z których budowane są słowa generowane przez gramatykę (zwany czasem alfabetem końcowym) T zbiór symboli nieterminalnych skończony, niepusty zbiór symboli pomocniczych P lista produkcji reguły gramatyki S symbol startowy (aksjomat) jest to wyróżniony symbol pomocniczy, z niego wyprowadzane są wszystkie generowane przez gramatyk G napisy.

6 Gramatyka Chomsky'ego - produkcje Produkcja możliwość zastąpienia symbolu pomocniczego przez słowo, w skład którego mogą wchodzić zarówno symbole pomocnicze, jak i końcowe. Proces wyprowadzania słów języka zdefiniowanego przez gramatykę odbywa się następująco: zaczynamy od symbolu S do poszczególnych symboli pomocniczych stosujemy którąś z produkcji ze zbioru P tak długo, aż wszystkie symbole pomocnicze znikną. Produkcje i wywód V* = { 1, 11, 111,... } Symbol początkowy: Produkcje: (reguły zastępowania) 1) 2) S S 1 S S 1 Wywód: 1: S : S 2 S 1 2 S

7 Produkcje cd. 1) 2) 3) 4) 5) S AB A 1 A A 1 B 0 B B 0 Wywód: 10: S 1 AB 2 1 B :? Gramatyka S AB A 1 A A 1 B 0 B B 0 Symbol początkowy

8 Gramatyka S AB A 1 A A 1 B 0 B B 0 Symbol początkowy Symbole nieterminalne T = {S, A, B} Gramatyka S AB A 1 A A 1 B 0 B B 0 Symbol początkowy Symbole nieterminalne T = {S, A, B} Symbole terminalne V = {0, 1}

9 Gramatyka S AB A 1 A A 1 B 0 B B 0 Symbol początkowy Symbole nieterminalne V = {S, A, B} Symbole terminalne T = {0, 1} Produkcje Przykłady gramatyk Gramatyka generująca wszystkie parzyste słowa złożone z samych liter (uwaga słowo puste jest słowem o parzystej długości!): G 1 =<{S}, {a}, {S ε, S aas}, S>

10 Przykłady gramatyk Gramatyka generująca wszystkie parzyste palindromy nad dwuelementowym alfabetem G 2 =<{S}, {a}, {S ε, S asa, S bsb}, S> Język generowany przez gramatykę To, co zostanie, czyli słowo złożone z samych symboli końcowych, nazywamy słowem wyprowadzalnym z gramatyki. Zbiór wszystkich słów wyprowadzalnych z danej gramatyki nazywa się językiem generowanym przez gramatykę.

11 Język generowany przez gramatykę Język generowany przez gramatykę G jest to zbiór wszystkich możliwych słów powstałych na bazie listy produkcji i wyprowadzonych z symbolu startowego języka Gdzie: L(G)={x: x V* S x} V* zbiór wszystkich możliwych słów proces wywodu słowa x z symbolu startowego S na podstawie listy produkcji P Przykład gramatyki generującej język L={a n b n c n d n, n=1, 2,..} Szukana gramatyka: G = < V, T, P, S > V = { S, B, D, E } T = { a, b, c, d} P = { r 1,, r 9 } Lista produkcji: r 1 : S abde r 2 : S abcd r 3 : B abde r 4 : B abc r 5 : bd bbc r 6 : cd Dc r 7 : ED DE r 8 : ce cdd r 9 : de dd

12 Przykład wywodu słowa aaabbbcccddd Wywód 3: Przykład wywodu słowa aaabbbcccddd Teraz nie osiągnęliśmy symboli końcowych. Ta gramatyka nie jest przydatna do definiowania języka programowania.

13 Zastosowania gramatyk Obiektem zastosowań teorii gramatyk są nie dowolne gramatyki, ale gramatyki poszczególnych typów Wyróżnienia tych typów dokonuje się na podstawie postaci reguł. Klasyfikacja Chomsky ego W teorii Chomsky ego wyróżnia się cztery typy gramatyk. Wyodrębnia się je przez nakładanie kolejno coraz silniejszych ograniczeń na układ reguł P Gramatyka klasy 0 charakteryzuje się tym, że wszystkie produkcje mają postać: u w, gdzie u V* \ { ε }, w V*

14 Klasyfikacja Chomsky ego Gramatyka klasy 1 (kontekstowa) charakteryzuje się tym, że wszystkie produkcje mają postać: uaw ubw, gdzie: u,w V*, A S, b V* \ { ε } Gramatyka klasy 2 (bezkontekstowa) w układzie reguł P dopuszcza się jedynie reguły postaci: A b, gdzie A S, b V* \ { ε } Klasyfikacja Chomsky ego Gramatyka klasy 3 (regularna, liniowa) w układzie reguł P dopuszcza reguły postaci: A bb, albo A Bb, gdzie A S, B S { ε }, b T* \ { ε }

15 Klasyfikacja Chomsky ego Każda gramatyka klasy i jest jednocześnie gramatyką klasy j dla 0 j i Każdy zbiór ciągów wywodliwych zgodnie z gramatyką klasy i jest jednocześnie zbiorem ciągów wywodliwych zgodnie z gramatyką niższych klas. Odwrotne twierdzenie nie jest prawdziwe. Im wyższa klasa gramatyki tym mniej precyzyjnie określa się rozmaitość wywodliwych ciągów. Klasyfikacja Chomsky ego Gramatyki klasy 0 Gramatyki kontekstowe Gramatyki bezkontekstowe Gramatyki liniowe

16 Ilustracja poszczególnych gramatyk Jako ilustrację do poszczególnych gramatyk rozpatrzymy przykład ciągów: aaa bbb ccc W skrócie będziemy je oznaczać a k b l c m Gramatyka regularna - przykład Nie nakładamy żadnych ograniczeń na wartości k, l, m Można znaleźć prawostronnie regularną gramatykę G = < V, T, P, S > generującą szukany ciąg: V = { a, b, c } T = { S, V, U} P = { r 1,, r 6 } Lista produkcji: r 1 : S as r 2 : S av r 3 : V bv r 4 : V bu r 5 : U cu r 6 : U c

17 Bezkontekstowa gramatyka - przykład Dla ciągów ograniczonych, gdzie k = m nie można zbudować gramatyki regularnej Ciągi można określić przez gramatykę bezkontekstową G = < V, T, P, S > : V = { a, b, c } T = { S, V} P = { r 1,, r 4 } Lista produkcji: r 1 : S asc r 3 : V Vb r 2 : S avc r 4 : V b Kontekstowa gramatyka - przykład Zdefiniowanie ciągów o jednakowej liczbie wystąpień dla każdej z liter (k = l = m) wymaga gramatyki kontekstowej lub gramatyki klasy 0, np. G = < V, T, P, S > : V = { a, b, c } T = { S, U } P = { r 1,, r 4 } Lista produkcji: r 1 : S abc r 3 : cu Uc r 2 : S asuc r 4 : bu bb

18 Gramatyki bezkontekstowe Gramatyka bezkontekstowa to skończony zbiór zmiennych (nazywanych symbolami niekońcowymi, pomocniczymi, kategoriami syntaktycznymi) z których każda reprezentuje pewien język Języki reprezentowane przez zmienne opisywane są za pomocą wzajemnej rekursji, z zastosowaniem symboli pierwotnych (końcowych) Reguły wiążące ze sobą zmienne nazywane są produkcjami Gramatyki bezkontekstowe Motywacją do wprowadzenia gramatyk bezkontekstowych był opis języków naturalnych. W kontekście jezyków naturalnych można zdefiniować reguły: < zdanie > < fraza rzeczownikowa >< frazaczasownikowa > < fraza rzeczownikowa > < przymiotnik >< fraza rzeczownikowa > < fraza rzeczownikowa > < rzeczownik > < rzeczownik > chopiec < przymiotnik > wysoki

19 Gramatyki bezkontekstowe Mają szerokie zastosowanie praktyczne: Wykorzystywane są: do definiowania języków programowania do formalizacji pojęcia analizy syntaktycznej do upraszania translacji języków programowania Gramatyki bezkontekstowe przykład 1 Definicja wyrażenia arytmetycznego z operatorami * i +, oraz argumentami reprezentowanymi przez symbol id < wyrażenie > < wyrażenie >+ < wyrażenie > < wyrażenie > < wyrażenie > < wyrażenie > < wyrażenie > ( < wyrażenie > ) < wyrażenie > id

20 Gramatyki bezkontekstowe przykład 2 Stosując te wyrażenia wielokrotnie możemy otrzymać bardziej złożone wyrażenia: < wyrażenie > < wyrażenie >+ < wyrażenie > < wyrażenie > < wyrażenie > < wyrażenie > < wyrażenie > < wyrażenie > id < wyrażenie > ( < wyrażenie >+ < wyrażenie > ) id < wyrażenie > ( < wyrażenie >+ id) id < wyrażenie > ( < wyrażenie > ) < wyrażenie > ( id + id) id Notacja Backusa-Naura (BNF) Umożliwia opisanie gramatyki bezkontekstowej, w sposób w sposób alternatywny do algebraicznego zapisu. Podstawowe konwencje notacji BNF: symbole nieterminalne są zamknięte w nawiasy < > "strzałka" reguły reprezentowana jest przez ::= alternatywne wyprowadzenia: rozdzielone pionową kreską opcjonalne elementy: zamknięte w nawiasy [ ] jedno- lub wielokrotne powtórzenie: { } n 1 zerowe, jedno lub wiele powtórzeń: { } n 0 połączenie : { }

21 Przykład notacji algebraicznej i BNF Gramatyka G = < V, T, P, S > generująca proste wyrażenia arytmetyczne : V = {a, b, d, +, *, (, )} T = {W, K, C} Semantyka powyższych symboli jest następująca: W wyrażenie; K - składnik, C czynnik; Symbol startowy S: S = W P = { r 1,, r 10 } Przykład notacji algebraicznej V = {a, b, d, +, *, (, )} T = {W, K, C} W wyrażenie; K - składnik, C czynnik, Symbol startowy S: S = W Lista produkcji: r 1 : W K r 2 : W W + K r 3 : W K + W r 4 : K C r 5 : S C * K r 6 : S K * C r 7 : C a r 8 : C b r 9 : C d r 10 : C ( W )

22 Przykład notacji BNF V = {a, b, d, +, *, (, )} T = {W, K, C} W wyrażenie; K - składnik, C czynnik, Symbol startowy S: S = W <W> ::= <K> <W> + <K> <K> + <W> <K> ::= <C> <C> * <K> <K> * <C> <C> ::= ( <W> ) a b d Symbole zapisane bez nawiasów < > i nie będące symbolami używanymi przez notację BNF są symbolami terminalnymi. Drzewa wyprowadzeń Historię wyprowadzeń słowa w danej gramatyce możemy zapisać za pomocą drzewa wywodu (nazywanego też drzewem rozbioru lub drzewem analizy składniowej). Wierzchołki drzewa rozbioru etykietuje się albo symbolami terminalnymi, albo kategoriami syntaktycznymi, albo symbolem ε. Liście są etykietowane jedynie symbolami terminalnymi lub symbolem ε. Wierzchołki wewnętrzne są etykietowane jedynie kategoriami syntaktycznymi.

23 Przykład drzewa wyprowadzeń < wyrażenie > < wyrażenie >+ < wyrażenie > < wyrażenie > < wyrażenie > < wyrażenie > < wyrażenie > ( < wyrażenie > ) < wyrażenie > id < wyrażenie > < wyrażenie > <wyrażenie> * id ( <wyrażenie> ) < wyrażenie > + < wyrażenie > id id Przykład drzewa wyprowadzeń S ::= aas a A ::= SbA SS ba S aas asbas aabas aabbas aabbaa S a A S S b A a a b a

24 Przykład drzewa wyprowadzeń Drzewo wyprowadzeń dla ciągu znaków 3 * (2 + 14) przy użyciu gramatyki zdefiniowanej poniżej: <Cyfra> <Liczba> <Cyfra> <Liczba> <Liczba> <Cyfra> <Wyrażenie> <Liczba> <Wyrażenie> ( < Wyrażenie> ) <Wyrażenie> <Wyrażenie> + <Wyrażenie> <Wyrażenie> <Wyrażenie> - <Wyrażenie> <Wyrażenie> <Wyrażenie> * <Wyrażenie> <Wyrażenie> <Wyrażenie> / <Wyrażenie> < W > < W > < W > * < L > ( ) < W > 3 < W > + < W > < L > 2 < L > < L > 1 4 Etapy konstruowania drzewa wyprowadzeń 3*(2+14) (a) Konstruujemy jednowierzchołkowe drzewo dla każdego symbolu terminalnego w drzewie. Używamy produkcji <Cyfra>

25 Etapy konstruowania drzewa wyprowadzeń 3*(2+14) (b) Określamy że cyfry są liczbami. Używamy produkcji <Liczba> <Cyfra> < L > < L > < L > Etapy konstruowania drzewa wyprowadzeń 3*(2+14) (c) Określamy że cyfr i liczba jest liczba. Wynikiem drzewa jest 14. Używamy produkcji <Liczba> <Liczba> <Cyfra> < L > < L > 4 1

26 Etapy konstruowania drzewa wyprowadzeń 3*(2+14) (d) Tworzymy drzewa rozbioru dla wyrażeń 3, 2, 14. Używamy produkcji: <Wyrażenie> <Liczba> < W> < L > < W> < L > < W > < L > < L > Etapy konstruowania drzewa wyprowadzeń 3*(2+14) (e) Tworzymy drzewo dla sumy Używamy produkcji <Wyrażenie> <Wyrażenie> + <Wyrażenie> < W > < W> < L > + < W > < L > < L > 2 1 4

27 Etapy konstruowania drzewa wyprowadzeń 3*(2+14) (f) Tworzymy drzewo dla sumy (2 + 14). Używamy produkcji: < W > ( ) < W > <Wyrażenie> ( <Wyrażenie> ) < W> + < W > < L > < L > < L > Etapy konstruowania drzewa wyprowadzeń 3*(2+14) < W > < W > < W > * < L > ( ) < W > < W > + < W > 3 < L > < L > (g) Tworzymy drzewo 3* (2 + 14). Używamy produkcji: <Wyrażenie> <Wyrażenie> * (<Wyrażenie> ) 2 < L > 4 1

28 Drzewa wyprowadzeń i drzewa wyrażeń Mając sformułowaną gramatykę wyrażeń możemy drzewa rozbioru przekonwertować na drzewa wyrażeń, dokonując trzech transformacji: 1. Wierzchołki związane z poszczególnymi operandami niepodzielnymi są łączone w jeden wierzchołek zaetykietowany danym operandem 2. Symbol operatora (np..+), staje się etykietą wierzchołka umieszczonego nad nim, który wcześniej był zaetykietowany kategoria syntaktyczna wyrażenia. 3. Wierzchołki wewnętrzne, których etykietami wciąż są wyrażenia zostają usunięte. drzewo wyprowadzeń < W > < W > < W > * < L > ( ) < W > 3 < W > + < W > < L > < L > drzewo wyrażeń 3 * ( + ) < L >

29 Niejednoznaczność i projektowanie gramatyk Rozważmy gramatykę: G = < {S}, {a,b}, {S ::= SaS b}, S > Za pomocą tej gramatyki możemy wygenerować dowolną naprzemienną sekwencję liter a oraz b zaczynającą się i kończącą na literę b. Na ile sposobów można otrzymać słowo babab? W notacji liniowej tych sposobów jest 12, np.: S SaS SaSaS SaSab basab babab S SaS Sab SaSab Sabab babab Niejednoznaczność i projektowanie gramatyk Istnieją dwa drzewa wyprowadzeń tego słowa: S SaS SaSaS SaSab basab babab S S a S S a S b b b

30 Niejednoznaczność i projektowanie gramatyk Istnieją dwa drzewa wyprowadzeń tego słowa: S SaS Sab SaSab Sabab babab S S a S b S a S b b Niejednoznaczność i projektowanie gramatyk Można gramatykę tak skonstruować, żeby słowo babab, podobnie jak i każde inne generowane przez powyższą gramatykę, miało tylko jedno drzewo wywodu. Oto ta gramatyka: G = < {S}, {a,b}, {S ::= ε, S ::= bas b}, S > Taka gramatyka ma już tylko jedno drzewo wyprowadzeń dla słowa babab.

31 Niejednoznaczność i projektowanie gramatyk Gramatyka G jest jednoznaczna, jeśli każde słowo wyprowadzalne z G ma tylko jedno drzewo wyprowadzeń. Gramatyka w której istnieją dwa lub więcej drzewa wyprowadzeń o tym samym wyniku oraz tej samej kategorii syntaktycznej etykietującej korzeń jest nazywana gramatyką niejednoznaczną. Wystarczy żeby istniał choć jeden taki ciąg który jest niejednoznaczny. Niejednoznaczność gramatyk wyrażeń może być poważnym problemem. Niektóre drzewa wyprowadzań mogą dawać złe wartości dla wyrażeń. Dwa drzewa rozbioru dla wyrażenia: <W> <W> <W> + <W> <W> - <W> <W> - <W> <L> <L> <W> + <W> <L> <L> <C> <C> <L> <L> <C> <C> 3 1 <C> <C> 1 2 Poprawne drzewo wyprowadzeń = Niepoprawne drzewo wyprowadzeń 1-2+3=-4

32 Niejednoznaczność gramatyk <W> <W> * <W> <W> + <W> <L> <L> <L> <C> <C> <C> 3 <W> <L> <C> 1 <W> + <W> <W> * <W> <L> <L> <C> <C> Niepoprawne drzewo wyprowadzeń * 3 = 9 Poprawne drzewo wyprowadzeń * 3 = 7 <W> <W> + <W> <S> - <S> <Cz> <L> <C> 1 <Cz> <L> <C> 2 <S> <Cz> <L> <C> 3 Poprawne drzewo wyprowadzeń Poprawne drzewo wyprowadzeń * 3 <W> <S> <Cz> <L> <C> 1 <W> + <S> <Cz> <L> <C> 2 <S> * <Cz> <L> <C> 3

33 Istota niejednoznaczności Analizator składniowy który konstruuje drzewa wyprowadzeń dla programów stanowi podstawowy element kompilatora. Jeżeli gramatyka opisująca język programowania jest niejednoznaczna, kompilator nie może podjąć prawidłowej decyzji odnośnie do drzewa rozbioru dla pewnych programów, a w związku z tym nie może zdecydować, jakie działania powinien wykonać program w języku maszynowym. Kompilatory muszą korzystać ze specyfikacji które są jednoznaczne. Zadania Dana jest gramatyka G = <V,T,P,S>: V = { S, A, B } T = { a, b, c } Produkcje: B aa B Sb A cab A BaA S c S ababb Przedstawić wywód i drzewo wywodu słowa abcbacabbaa. S ababb abbaabb absbaabb abcbaabb abcbacabbb abcbacabba

34 Zadania S ababb abbaabb absbaabb abcbaabb abcbacabbb abcbacabba S a b A b B B a B a a S b c a b c Zadania Zdefiniować gramatykę G generującą liczby całkowite. Liczba składa się z niepustego ciągu cyfr i może zawierać znak. V = {0,1,2,3,4,5,6,7,8,9,+,-} T = { LC, L, C, Z} Produkcje: <LC> ::= <Z><L> <L> <L> ::= <C><L> <C> <C> ::= <Z> ::= + - S = LC

35 Dany jest język L(G): G = <V,T,P,S> V = { S, A } T = { a, b } Produkcje: S aas a Zadania A SbA SS ba Czy słowo aabbaa należy do języka? Aby słowo należało do języka należy udowodnić, że Słowo jest wyprowadzalne z S Słowo to musi należeć do T Zadania Dany jest język L(G): G = <V,T,P,S> T = {a,b,,z,+,(,),*} V = {W,S,C} Produkcje: <W> ::= <W>+<S> <S> <S> ::= <S>*<C> <C> <C> ::= (<W>) a b c... z S = W Czy słowo: (((a+b * d) * d + a)) + a+b+d jest słowem poprawnym języka L(G)?

36 Zadania Dany jest język L(G): G = <V,T,P,S> T = {a,b,,z,+,(,),*} V = {W,S,C} Produkcje: <W> ::= <W>+<S> <S> <S> ::= <S>*<C> <C> <C> ::= (<W>) a b c... z S = W Czy słowo: (((a+b * d) * d + a)) + a+b+d jest słowem poprawnym języka L(G)? <W> ::= <W>+<S> <S> <S> ::= <S>*<C> <C> <C> ::= (<W>) a b c... z S = W ( ( ( a + b * d ) * d + a ) ) + a + b + d C C C C C C C C S S S S S S W S W CS SW W CSW CSW W W W S

37 Literatura Harel D., Rzecz o istocie informatyki - algorytmika, WNT, Warszawa

GRAMATYKI BEZKONTEKSTOWE

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 1

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...

Bardziej szczegółowo

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

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

Bardziej szczegółowo

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

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 =

Bardziej szczegółowo

Gramatyki (1-2) Definiowanie języków programowania. Piotr Chrząstowski-Wachjtel

Gramatyki (1-2) Definiowanie języków programowania. Piotr Chrząstowski-Wachjtel Gramatyki (1-2) Definiowanie języków programowania Piotr Chrząstowski-Wachjtel Zagadnienia Jak zdefiniować język programowania? Gramatyki formalne Definiowanie składni Definiowanie semantyki l 2 Pożądane

Bardziej szczegółowo

JAO - Wprowadzenie do Gramatyk bezkontekstowych

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

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

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ą

Bardziej szczegółowo

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

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

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

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

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 2

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

Bardziej szczegółowo

Podstawy Informatyki Gramatyki formalne

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

Bardziej szczegółowo

Efektywna analiza składniowa GBK

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

Bardziej szczegółowo

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] 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

Bardziej szczegółowo

Języki i gramatyki. Języki i gramatyki formalne. Języki i gramatyki formalne. Języki i gramatyki formalne. Gramatyki formalne

Języki i gramatyki. Języki i gramatyki formalne. Języki i gramatyki formalne. Języki i gramatyki formalne. Gramatyki formalne Języki i gramatyki formalne Języki i gramatyki formalne Cechy języka naturalnego - duża swoboda konstruowania zdań (brak ścisłych reguł gramatycznych), duża ilość wyjątków. Języki formalne - ścisły i jednoznaczny

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Hierarchia Chomsky ego

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

Bardziej szczegółowo

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ń 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

Bardziej szczegółowo

Hierarchia Chomsky ego Maszyna Turinga

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

Bardziej szczegółowo

Lista 5 Gramatyki bezkontekstowe i automaty ze stosem

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

Bardziej szczegółowo

Wprowadzenie. Teoria automatów i języków formalnych. Literatura (1)

Wprowadzenie. Teoria automatów i języków formalnych. Literatura (1) Wprowadzenie Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Literatura (1) 1. Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison-Wesley,

Bardziej szczegółowo

Teoretyczne podstawy informatyki. Wykład 12: Gramatyki. E. Richter-Was 1

Teoretyczne podstawy informatyki. Wykład 12: Gramatyki. E. Richter-Was 1 Teoretyczne podstawy informatyki Wykład 12: Gramatyki 1 18.12.2012 Gramatyki bezkontekstowe Opis wzorców polegający na wykorzystaniu modelu definicji rekurencyjnych, nazywamy gramatyką bezkontekstową (ang.

Bardziej szczegółowo

1. Maszyna Turinga, gramatyki formalne i ONP

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

Bardziej szczegółowo

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}

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

Bardziej szczegółowo

Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

JIP. Analiza składni, gramatyki

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

Bardziej szczegółowo

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

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

Bardziej szczegółowo

Teoretyczne Podstawy Informatyki

Teoretyczne Podstawy Informatyki Instytut Informatyki Stosowanej Teoretyczne Podstawy Informatyki Wykªad 2. J zyki i gramatyki formalne Zdzisªaw Spªawski Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki

Bardziej szczegółowo

JĘZYKI FORMALNE I METODY KOMPILACJI

JĘZYKI FORMALNE I METODY KOMPILACJI Stefan Sokołowski JĘZYKI FORMALNE I METODY KOMPILACJI Inst Informatyki Stosowanej, PWSZ Elbląg, 2015/2016 JĘZYKI FORMALNE reguły gry Wykład1,str1 Zasadnicze informacje: http://iispwszelblagpl/ stefan/dydaktyka/jezform

Bardziej szczegółowo

Jaki język zrozumie automat?

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

Bardziej szczegółowo

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

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

Bardziej szczegółowo

Opis wzorców polegający na na wykorzystaniu modelu definicji rekurencyjnych, nazywamy gramatyką bezkontekstową (ang. contex-free grammar).

Opis wzorców polegający na na wykorzystaniu modelu definicji rekurencyjnych, nazywamy gramatyką bezkontekstową (ang. contex-free grammar). 1 2 Opis wzorców polegający na na wykorzystaniu modelu definicji rekurencyjnych, nazywamy gramatyką bezkontekstową (ang. contex-free grammar). Jednym z ważnych zastosowań gramatyksą specyfikacje języków

Bardziej szczegółowo

Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń

Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń Projekt Matematyka dla ciekawych świata spisał: Michał Korch 21 marca 2019 1 Gramatyki! Gramatyka to taki przepis

Bardziej szczegółowo

Gramatyki regularne i automaty skoczone

Gramatyki regularne i automaty skoczone Gramatyki regularne i automaty skoczone Alfabet, jzyk, gramatyka - podstawowe pojcia Co to jest gramatyka regularna, co to jest automat skoczony? Gramatyka regularna Gramatyka bezkontekstowa Translacja

Bardziej szczegółowo

Symbol, alfabet, łańcuch

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)

Bardziej szczegółowo

Wyrażenia regularne.

Wyrażenia regularne. Teoretyczne podstawy informatyki Wykład : Wyrażenia regularne. Prof. dr hab. Elżbieta Richter-Wąs.2.202 Wyrażenia regularne Wyrażenia regularne (ang. regular expressions) stanowią algebraiczny sposób definiowania

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 4

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

Bardziej szczegółowo

Analiza semantyczna. Gramatyka atrybutywna

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

Bardziej szczegółowo

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ż. 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 =

Bardziej szczegółowo

Definiowanie języka przez wyrażenie regularne(wr)

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

Bardziej szczegółowo

JĘZYKIFORMALNE IMETODYKOMPILACJI

JĘZYKIFORMALNE IMETODYKOMPILACJI Stefan Sokołowski JĘZYKIFORMALNE IMETODYKOMPILACJI Inst. Informatyki Stosowanej, PWSZ Elbląg, 2009/2010 JĘZYKI FORMALNE reguły gry Wykład1,2X2009,str.1 Zasadnicze informacje: http://iis.pwsz.elblag.pl/

Bardziej szczegółowo

Języki, automaty i obliczenia

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

Bardziej szczegółowo

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

Gramatyki atrybutywne

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

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 9

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

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 10: Opis wzorców - wyrażenia regularne. http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Wyrażenia regularne Wyrażenia

Bardziej szczegółowo

Metodologie programowania

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

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 7

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

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 8

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

Bardziej szczegółowo

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

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

Bardziej szczegółowo

Języki formalne i gramatyki

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

Bardziej szczegółowo

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

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)

Bardziej szczegółowo

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki Parsery LL() Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy generacyjnej (zstępującej, top-down) symbol początkowy już terminale wyprowadzenie lewostronne pierwszy od lewej

Bardziej szczegółowo

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

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

Bardziej szczegółowo

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

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ę.

Bardziej szczegółowo

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

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

Bardziej szczegółowo

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka Języki i operacje na językach Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Definicja języka Definicja języka Niech Σ będzie alfabetem, Σ* - zbiorem wszystkich łańcuchów

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 6

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

Bardziej szczegółowo

Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia)

Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia) Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia) Kamil Matuszewski 20 lutego 2017 22 lutego 2017 Zadania, które

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 05 Biologia i gramatyka Jarosław Miszczak IITiS PAN Gliwice 07/04/2016 1 / 40 1 Nieformalne określenie fraktali. 2 Wymiar pudełkowy/fraktalny. 3 Definicja fraktali.

Bardziej szczegółowo

Języki, automaty i obliczenia

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

Bardziej szczegółowo

JĘZYKI FORMALNE I METODY KOMPILACJI

JĘZYKI FORMALNE I METODY KOMPILACJI Stefan Sokołowski JĘZYKI FORMALNE I METODY KOMPILACJI Inst Informatyki Stosowanej, PWSZ Elbląg, 2018/2019 JĘZYKI FORMALNE reguły gry Wykład1,str1 Zasadnicze informacje: http://iispwszelblagpl/ stefan/dydaktyka/jezform

Bardziej szczegółowo

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią. Semantyczne twierdzenie o podstawianiu Jeżeli dana formuła rachunku zdań jest tautologią i wszystkie wystąpienia pewnej zmiennej zdaniowej w tej tautologii zastąpimy pewną ustaloną formułą, to otrzymana

Bardziej szczegółowo

10. Translacja sterowana składnią i YACC

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)

Bardziej szczegółowo

AUTOMATY SKOŃCZONE. Automat skończony przedstawiamy formalnie jako uporządkowaną piątkę:

AUTOMATY SKOŃCZONE. Automat skończony przedstawiamy formalnie jako uporządkowaną piątkę: AUTOMATY SKOŃCZONE DETERMINISTYCZNY AUTOMAT SKOŃCZONY - DAS Automat skończony jest modelem matematycznym systemu o dyskretnych wejściach i wyjściach. System taki w danej chwili może znajdować się w jednym

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Teoria automatów

Wstęp do Techniki Cyfrowej... Teoria automatów Wstęp do Techniki Cyfrowej... Teoria automatów Alfabety i litery Układ logiczny opisywany jest przez wektory, których wartości reprezentowane są przez ciągi kombinacji zerojedynkowych. Zwiększenie stopnia

Bardziej szczegółowo

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu. Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu. 1 Logika Klasyczna obejmuje dwie teorie:

Bardziej szczegółowo

Składnia rachunku predykatów pierwszego rzędu

Składnia rachunku predykatów pierwszego rzędu Początek Gramatyka Kwantyfikatory Poprawność Logika obliczeniowa Instytut Informatyki Początek Gramatyka Kwantyfikatory Poprawność Plan wykładu 1 Na (dobry) początek Zrozumieć słowa Oswoić znaki 2 Gramatyka

Bardziej szczegółowo

Gramatyki rekursywne

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 =

Bardziej szczegółowo

Logika Matematyczna (1)

Logika Matematyczna (1) Logika Matematyczna (1) Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Wprowadzenie Jerzy Pogonowski (MEG) Logika Matematyczna (1) Wprowadzenie 1 / 20 Plan konwersatorium

Bardziej szczegółowo

Wstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka.

Wstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka. Wstęp do Programowania Obiektowego Wykład 13 Paradygmaty. Składnia i semantyka. 1 PRZEGLĄD PODSTAWOWYCH PARADYGMATÓW 2 Cztery podstawowe paradygmaty 1. Programowanie imperatywne. 2. Programowanie funkcyjne.

Bardziej szczegółowo

Algorytmy zapisywane w pseudojęzyku programowania. Klasa 2 Lekcja 6

Algorytmy zapisywane w pseudojęzyku programowania. Klasa 2 Lekcja 6 Algorytmy zapisywane w pseudojęzyku programowania Klasa 2 Lekcja 6 Dlaczego stosujemy pseudojęzyk? Każdy język j programowania określa pewną notację,, służąs żącą do zapisywania tekstu programu. Zanim

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 3

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

Bardziej szczegółowo

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S.

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S. 1 Zbiór potęgowy - Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S. - Dowolny podzbiór R zbioru 2 S nazywa się rodziną zbiorów względem S. - Jeśli S jest n-elementowym zbiorem,

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1. 3. Wykłady 3 i 4: Języki i systemy dedukcyjne. Klasyczny rachunek zdań. 3.1. Monoidy wolne. Niech X będzie zbiorem niepustym. Zbiór ten będziemy nazywać alfabetem. Skończony ciąg elementów alfabetu X będziemy

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Algebra Boole a

Wstęp do Techniki Cyfrowej... Algebra Boole a Wstęp do Techniki Cyfrowej... Algebra Boole a Po co AB? Świetne narzędzie do analitycznego opisu układów logicznych. 1854r. George Boole opisuje swój system dedukcyjny. Ukoronowanie zapoczątkowanych w

Bardziej szczegółowo

Zadanie analizy leksykalnej

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:

Bardziej szczegółowo

Adam Meissner.

Adam Meissner. Instytut Automatyki i Inżynierii Informatycznej Politechniki Poznańskiej Adam Meissner Adam.Meissner@put.poznan.pl http://www.man.poznan.pl/~ameis SZTUCZNA INTELIGENCJA Podstawy logiki pierwszego rzędu

Bardziej szczegółowo

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017 Logika Stosowana Wykład 1 - Logika zdaniowa Marcin Szczuka Instytut Informatyki UW Wykład monograficzny, semestr letni 2016/2017 Marcin Szczuka (MIMUW) Logika Stosowana 2017 1 / 30 Plan wykładu 1 Język

Bardziej szczegółowo

Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.

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

Bardziej szczegółowo

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4 ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4 Dla każdego zadania określić: graf przejść tablicę stanów automatu skończonego akceptującego określoną klasę słów podać dwa przykłady ilustrujące parę AS

Bardziej szczegółowo

Obliczenia inspirowane Naturą

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

Bardziej szczegółowo

Metody Kompilacji Wykład 3

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

Bardziej szczegółowo

Paradygmaty dowodzenia

Paradygmaty dowodzenia Paradygmaty dowodzenia Sprawdzenie, czy dana formuła rachunku zdań jest tautologią polega zwykle na obliczeniu jej wartości dla 2 n różnych wartościowań, gdzie n jest liczbą zmiennych zdaniowych tej formuły.

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

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

Bardziej szczegółowo

Wstęp do logiki. Semiotyka cd.

Wstęp do logiki. Semiotyka cd. Wstęp do logiki Semiotyka cd. Semiotyka: język Ujęcia języka proponowane przez językoznawców i logików różnią się istotnie w wielu punktach. Z punktu widzenia logiki każdy język można scharakteryzować

Bardziej szczegółowo

Część wspólna (przekrój) A B składa się z wszystkich elementów, które należą jednocześnie do zbioru A i do zbioru B:

Część wspólna (przekrój) A B składa się z wszystkich elementów, które należą jednocześnie do zbioru A i do zbioru B: Zbiory 1 Rozważmy dowolne dwa zbiory A i B. Suma A B składa się z wszystkich elementów, które należą do zbioru A lub do zbioru B: (x A B) (x A x B). Część wspólna (przekrój) A B składa się z wszystkich

Bardziej szczegółowo

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki Instytut Informatyki Literatura http://www.w3c.org/tr/ - Technical Reports K. B. Stall - XML Family of Specifications, Addison-Wesley 2003 P. Kazienko, K. Gwiazda - XML na poważnie, Helion 2002 XML Rozszerzalny

Bardziej szczegółowo

Maszyna Turinga języki

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ę

Bardziej szczegółowo

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

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

Bardziej szczegółowo

3.4. Przekształcenia gramatyk bezkontekstowych

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

Bardziej szczegółowo

Logika Matematyczna (1)

Logika Matematyczna (1) Logika Matematyczna (1) Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl 4 X 2007 Jerzy Pogonowski (MEG) Logika Matematyczna (1) 4 X 2007 1 / 18 Plan konwersatorium Dzisiaj:

Bardziej szczegółowo

Semantyka i Weryfikacja Programów - Laboratorium 6

Semantyka i Weryfikacja Programów - Laboratorium 6 Semantyka i Weryfikacja Programów - Laboratorium 6 Analizator leksykalny i składniowy - kalkulator programowalny Cel. Przedstawienie zasad budowy i działania narzędzi do tworzenia kompilatorów języków

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 5 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 7 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk

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ń,

Bardziej szczegółowo

Gramatyka operatorowa

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ą

Bardziej szczegółowo