Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

Podobne dokumenty
Symbol, alfabet, łańcuch

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

Matematyczne Podstawy Informatyki

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Języki formalne i automaty Ćwiczenia 1

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Matematyczne Podstawy Informatyki

Jaki język zrozumie automat?

Matematyczne Podstawy Informatyki

Języki programowania zasady ich tworzenia

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

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

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

Maszyna Turinga języki

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

GRAMATYKI BEZKONTEKSTOWE

Hierarchia Chomsky ego Maszyna Turinga

Gramatyki atrybutywne

JĘZYKI FORMALNE I METODY KOMPILACJI

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 formalne i automaty Ćwiczenia 6

JĘZYKIFORMALNE IMETODYKOMPILACJI

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Języki formalne i automaty Ćwiczenia 9

Translacja wprowadzenie

Wprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy

Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań

Paradygmaty i języki programowania. Analiza leksykalna Skaner, RE, DAS, NAS, ε- NAS

Zadanie analizy leksykalnej

Języki formalne i automaty Ćwiczenia 7

Analiza semantyczna. Gramatyka atrybutywna

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

JIP. Analiza składni, gramatyki

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]

Logika Matematyczna (1)

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Teoria układów logicznych

JĘZYKI FORMALNE I METODY KOMPILACJI

Języki formalne i automaty Ćwiczenia 2

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

JAO - Wprowadzenie do Gramatyk bezkontekstowych

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

Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne

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

Składnia rachunku predykatów pierwszego rzędu

Teoria automatów i języków formalnych. Określenie relacji

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

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Logika Matematyczna (1)

Języki i gramatyki formalne

Definicja 2. Twierdzenie 1. Definicja 3

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

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)

Kultura logicznego myślenia

Technologie informacyjne - wykład 12 -

Metody Kompilacji Wykład 1 Wstęp

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

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

Automat Moore a. Teoria układów logicznych

Programowanie komputerów

Gramatyki rekursywne

Elementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1

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

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

KONSTRUKCJA KOMPILATORÓW

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

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

Języki, automaty i obliczenia

(j, k) jeśli k j w przeciwnym przypadku.

Podstawy Informatyki Maszyna Turinga

Adam Meissner.

Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne

Gramatyki regularne i automaty skoczone

Obliczenia inspirowane Naturą

TEORIA ZŁOŻONOŚCI PROBLEMY I ALGORYTMY OGRANICZENIE DOLNE I GÓRNE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń

Metodologie programowania

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, δ)

Logika dla matematyków i informatyków Wykªad 1

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

Definicje. Algorytm to:

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

1. Maszyna Turinga, gramatyki formalne i ONP

Wstęp do logiki. Semiotyka cd.

Hierarchia Chomsky ego

Gramatyka operatorowa

Filozofia z elementami logiki Język jako system znaków słownych część 2

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

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

Zadanie 1. Potęgi (14 pkt)

Obliczenia inspirowane Naturą

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:

Grupy, pierścienie i ciała

1 Automaty niedeterministyczne

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

Paradygmaty programowania

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Podstawy Informatyki Gramatyki formalne

Transkrypt:

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 and Tools, Addison-Wesley, 1986 (tłumaczenie polskie: Kompilatory. Reguły, metody i narzędzia, WNT 2002). Homenda W.: Elementy lingwistyki matematycznej i teorii automatów, Oficyna Wydawnicza Politechniki Warszawskiej 2005. Hopcroft J. E., Motwani R., Ullman J. D.: Wprowadzenie do teorii automatów, języków i obliczeń, PWN, 2005. Waite W. M., Goos G.: Konstrukcja kompilatorów, WNT, 1989.

Lingwistyka, języki (1) Dziedzina wiedzy: Lingwistyka matematyczna Czym będziemy się zajmować: Opisywać języki Opis języka (semiotyka) (a) syntaktyka (opis składni) (b) semantyka (znaczenie) (c) pragmatyka (uŝyteczność) Jaki aspekt języka będziemy opisywać? Składnia zasady budowy poprawnych wypowiedzi w języku (tylko poprawnych; nie bierze się pod uwagę aspektu znaczeniowego i pragmatycznego, nie analizuje się znaczenia wypowiedzi, a tym bardziej prawdziwości lub fałszu wypowiedzi) Lingwistyka, języki (2) Jakie języki będziemy opisywać? Języki: (a)naturalne (np. polski, angielski, chiński,...) (b)formalne (sztuczne, np. Pascal, C, Java, Algol,...) Zajmujemy się wyłącznie opisem języków formalnych.

Lingwistyka, języki (3) Języki formalne: symbol łańcuch (słowo) sekwencja symboli język zbiór łańcuchów Języki naturalne: litera wyraz sekwencja liter zdanie sekwencja wyrazów tekst sekwencja zdań język zbiór tekstów Definiowanie języków formalnych Wyliczenie wszystkich poprawnych napisów w danym języku (bezuŝyteczne, gdy język zawiera nieskończenie wiele napisów). Podanie zasad budowy wszystkich poprawnych napisów w danym języku (gramatyka języka). Podanie algorytmu orzekającego, czy dany napis jest poprawnym napisem w danym języku (automat abstrakcyjny). Podanie ogólnego wzoru określającego postać wszystkich poprawnych napisów w danym języku (wyraŝenie regularne wykorzystywane do definiowania szczególnie prostych języków zwanych językami regularnymi).

Symbol, alfabet, łańcuch (1) Symbol Symbol jest to pojęcie niedefiniowane (synonimy: znak, litera) Alfabet Alfabet jest to niepusty, skończony zbiór symboli, np.: Σ 1 = {a, b, c,..., x, y, z } - alfabet łaciński Σ 2 = {0, 1 } - alfabet binarny Symbol, alfabet, łańcuch (2) Łańcuch Łańcuch (synonim słowo) to skończony ciąg zestawionych razem symboli z alfabetu. Rekurencyjna definicja łańcucha nad alfabetem Σ: 1) ε jest łańcuchem nad Σ (ε - łańcuch pusty, nie zawierający Ŝadnego znaku), 2) jeśli x jest łańcuchem nad Σ i a Σ to xa jest łańcuchem nad Σ, 3) nic innego nie jest łańcuchem poza tym, co wynika z punktów (1) i (2).

ZłoŜenie (konkatenacja) łańcuchów (1) Konkatenacja (złoŝenie) łańcuchów Jeśli x i y są łańcuchami x = x 1 x 2...x m y = y 1 y 2...y n to xy = x 1 x 2...x m y 1 y 2...y n jest nazywane konkatenacją (złoŝeniem) łańcuchów x i y. Przykład: x = ab y = cde xy = abcde ale: yx = cdeab ZłoŜenie (konkatenacja) łańcuchów (2) Dla dowolnego łańcucha x zachodzi xε = εx = x Konkatenacja łańcuchów jest: nieprzemienna (na ogół xy yx) łączna ( xyz = (xy)z = x(yz) ) posiada element neutralny ε będący łańcuchem pustym (xε = εx = x)

Notacja potęgowa Notacja potęgowa Niech a będzie symbolem. Niech x będzie łańcuchem. Wtedy łańcuchy złoŝone z wielokrotnych powtórzeń symbolu a lub łańcucha x oznaczamy w uproszczeniu: a 0 = ε a 1 = a a 2 = aa a 3 = aaa,..., itd. x 0 = ε x 1 = x x 2 = xx x 3 = xxx,..., itd. Długość łańcucha Długość łańcucha Długość x łańcucha x to liczba symboli tworzących ten łańcuch. Definicja rekurencyjna długości łańcucha: 1) ε = 0, 2) jeśli x jeśli łańcuchem, zaś a jest symbolem (a Σ), to ax = 1 + x.

Rewers łańcucha Rewersem (odbiciem zwierciadlanym) x R łańcucha x = x 1 x 2...x n nazywamy łańcuch x R = x n x n-1...x 1, w którym symbole zapisane są w odwrotnym porządku, przy czym ε R = ε. Definicja rekurencyjna odbicia zwierciadlanego: 1) ε R = ε, 2) jeśli x jest łańcuchem nad alfabetem Σ, zaś a jest symbolem (a Σ), to (ax) R = x R a, 3) nic innego nie jest odbiciem zwierciadlanym poza tym, co wynika z punktów (1) i (2). Palindrom Palindromem nazywamy łańcuch, który czytany od przodu oraz czytany wspak brzmi tak samo, czyli x R = x Definicja rekurencyjna palindromu: 1) ε jest palindromem, 2) jeśli a jest symbolem (a Σ), to łańcuch zbudowany z pojedynczego symbolu a jest palindromem, 3) jeśli x jeśli palindromem, zaś a jest symbolem (a Σ), to łańcuch axa jest palindromem, 4) nic innego nie jest palindromem poza tym, co wynika z punktów (1), (2) i (3). Przykłady palindromów: oko, kajak, kobyłamamałybok.