Języki formalne i automaty Ćwiczenia 4

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

Download "Języki formalne i automaty Ćwiczenia 4"

Transkrypt

1 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 automatu Tworzenie tabeli algorytmu SLR(1)... 4 Sprawdzanie czy dane słowo należy do języka gramatyki SLR(1)... 5 Przykład... 5 Zadania... 9 Zadania na Zadania na Zadania na

2 Wstęp teoretyczny Algorytm SLR(1) służy do sprawdzenia czy dane słowo należy do języka generowanego przez gramatykę SLR(1). Algorytm SLR(1) jest typu bottom-up. Będziemy rozpatrywać wyłącznie gramatyki SLR(1) będące gramatykami bezkontekstowymi. Gramatyka SLR(1) jest szczególnym typem gramatyki LR(1). Gramatyka LR(1) jest podobna do gramatyki LL(1). Jedyną różnicą jest to, że stosujemy wyprowadzenie prawostronne, a więc za każdym razem zastępujemy pierwszy od prawej nieterminal. Gramatyka SLR(1) jest to taka gramatyka LR(1) dla której istnieje algorytm SLR(1) rozpoznający słowa tego języka. Porównanie wyprowadzenia lewostronnego i prawostronnego: Przykład: S aabcb A a B b C c Wyprowadzamy słowo: aabcb. 1. S aabcb aabcb aabcb aabcb 2. S aabcb aabcb aabcb aabcb Pierwsze wyprowadzenie jest lewostronne, drugie prawostronne. Algorytm LL jest typu top-down, algorytm SLR jest typu bottom-up. Algorytm LL działa w ten sposób, że zaczynamy od symbolu startowego S i stosujemy kolejne produkcje tak aby uzyskiwać zgodność na kolejnych symbolach tego słowa począwszy od najbardziej lewego. Algorytm SLR stosuje wyprowadzenie prawostronne, a więc nie może być typu top-down ponieważ wtenczas nie moglibyśmy walidować kolejnych symboli słowa począwszy od najbardziej lewego. W algorytmie SLR wyprowadzenie jest typu bottom-up, a więc wygląda następująco: aabcb aabcb aabcb aabcb S. (1) Jest to algorytm typu bottom-up, a więc w każdym kroku stosujemy tzw. redukcje, to znaczy zastępujemy prawe części odpowiednich produkcji. W związku z tym, że jest to wyprowadzenie prawostronne (jeśli rozpatrujemy je od symbolu startowego S), to jeśli w danym łańcuchu występuje więcej niż jeden nieterminal to musiały być one wyprowadzone w algorytmie SLR w kolejności od lewej do prawej. W wyprowadzeniu (1) dla łańcucha aabcb najpierw wyprowadzone było A, a później B. Rozpatrzmy bliżej to wyprowadzenie: Jeśli wprowadzimy pojęcie stosu to wyprowadzenie powyższe można zamodelować następująco: Bufor wejściowy: aabcb$. Stos: pusty

3 Bufor wejściowy: abcb$. Stos: a Bufor wejściowy: bcb$. Stos: aa Bufor wejściowy: bcb$. Stos: aa Bufor wejściowy: cb$. Stos: aab Bufor wejściowy: cb$. Stos: aab Bufor wejściowy: b$. Stos: aabc Bufor wejściowy: b$. Stos: aabc Bufor wejściowy: $. Stos: aabcb Bufor wejściowy: $. Stos: S W każdym kroku aktualny łańcuch wyprowadzenia to stos + bufor wejściowy. Podział na stos i bufor wejściowy jest po to, aby ułatwić wyprowadzenie prawostronne. Powyższy proces można przedstawić również następująco: ^aabcb a^abcb aa^bcb aa^bcb aab^cb aab^cb aabc^b aabc^b aabcb^ S. Jak widzimy w wyprowadzeniu są dwie możliwe operacje: przemieszczenie terminala z bufora wejściowego na stos, redukcja na stosie. Po usunięciu z powyższego wyprowadzenia operacji przemieszczania terminala otrzymujemy właściwe wyprowadzenie. Algorytm SLR(1) pomaga stwierdzić jakie operacje należy zastosować w poszczególnych krokach wyprowadzenia. Schemat algorytmu SLR(1) wygląda następująco: 1. Dodajemy produkcje S S do zbioru produkcji, symbol startowy jest S. 2. Konstruujemy zbiory FIRST i FOLLOW podobnie jak w algorytmie LL(1).

4 3. Tworzymy deterministyczny skończony automat dla podanej gramatyki. 4. Tworzymy na jego podstawie tabelę algorytmu SLR(1). 5. Sprawdzamy czy podane słowo należy do języka. Sposób tworzenia deterministycznego automatu skończonego Automat skończony to pewien model zachowania składający się ze skończonej liczby stanów, tranzycji pomiędzy stanami i z akcji. Deterministyczny automat skończony to taki automat skończony, że dla każdej pary (stan, symbol wejściowy) jest dokładnie jedna tranzycja do następnego stanu. Oznaczona produkcja to taka, w której pojawia się kropka po prawej stronie produkcji. Kropka ta oznacza, że wszystkie symbole po jej lewej zostały umieszczone na stosie, a po prawej jeszcze nie. W każdym zbiorze oznaczonych produkcji jest jedna wyróżniona główna produkcja oznaczona. Konstrukcja stanów. Zaczynamy od stanu q0, dla którego główną produkcją oznaczoną jest S.S. Od każdego stanu przechodzimy do kolejnego stanu lub tego samego wybierając jedną z produkcji oznaczonych, ale taką, że kropka nie jest na końcu produkcji. Tranzycji odpowiada symbol występujący tuż po kropce. W nowo powstałym stanie główną produkcją oznaczoną będzie ta, z której powstał ten stan, ale z przesuniętą kropką o jeden symbol w prawo. Dla każdego stanu tuż po dodaniu głównej produkcji oznaczonej dodajemy pozostałe produkcje oznaczone postaci w.x. Są to wszystkie produkcje z w po lewej stronie wraz z dodaną kropką na początku, gdzie w to pierwszy po kropce nieterminal występujący w głównej produkcji oznaczonej. Stany, w których występuje co najmniej jedna oznaczona produkcja, taka, że kropka jest na końcu, są stanami końcowymi i są oznaczane podwójnym okręgiem. Intuicyjne rozumienie konstrukcji automatu. Konstrukcja automatu to przejście przez możliwe wyprowadzenia, ale z drugiej strony, a więc zaczynając od ostatniej produkcji jaką będziemy musieli zastosować dla naszego słowa w wyprowadzeniu SLR(1). Po prawej stronie kropki produkcji oznaczonej znajduje się łańcuch, który chcemy wyprowadzić z aktualnego bufora wejściowego, a po lewej stronie znajduje się stos, w którym jest zapisany łańcuch, dla którego chcemy zastosować redukcje. Tranzycja z symbolem terminalnym oznacza umieszczenie na stosie symbolu terminalnego w celu zastosowania redukcji, ale równocześnie symbol terminalny jest zdejmowany z bufora wejściowego. Tranzycja z symbolem nieterminalnym odpowiada przetworzeniu sybolu nieterminalnego, który pojawił się wcześniej na stosie po redukcji. Zaczynamy konstrukcję od stanu q0, dodajemy do niego główną produkcję oznaczoną: S.S. Tworzenie tabeli algorytmu SLR(1) Na podstawie stworzonego automatu konstruujemy tabelę algorytmu SLR(1). Tabela ma wiersze, które odpowiadają wszystkim stanom automatu, a kolumny odpowiadają wszystkim terminalom, nieterminalom oraz znakowi $. Tabelę wypełniamy począwszy od wiersza 1. Dla każdej tranzycji konstruujemy odpowiedni wpis w tabeli. Jeśli w tranzycji jest nieterminal to wpisujemy: (w, N) := i, gdzie i to stan do którego dochodzimy za pomocą tej tranzycji.

5 Jeśli w tranzycji jest terminal to wpisujemy: (w, t) := si, gdzie s oznacza operację shift, a i to stan, do którego dochodzimy za pomocą tej tranzycji. Jeśli analizując tranzycje trzeba będzie wypełnić komórkę (i, S) to wpisujemy do niej acc, co oznacza accepted. Jeśli analizowany stan jest stanem końcowym to wpisujemy do komórek (i, a) := rj, gdzie i to analizowany stan, a to każdy nieterminal ze zbioru FOLLOW(A), a j to numer produkcji. Jest to operacja redukcji. Sprawdzanie czy dane słowo należy do języka gramatyki SLR(1) Sprawdzanie czy dane słowo należy do języka wygląda następująco: W każdym kroku mamy bufor wejściowy w którym na początku znajduje się analizowane słowo zakończone $, oraz mamy stos na którym na początku znajduje się stan 0. Wybieramy produkcję z tabeli algorytmu SLR(1) z komórki (i, a), gdzie i to aktualny stan na stosie, a a to terminal na początku buforu wejściowego. Terminal ten jest usuwany z bufora wejściowego, a na stos jest dopisywany ten terminal wraz z nowym stanem. Gdy pojawi się w komórce redukcja, wtedy usuwamy ze stosu odpowiednią część zgodnie z redukcją i sprawdzamy następnie komórkę (i, A), gdzie i to aktualny stan a A to lewa strona produkcji związanej z redukcją. Jeśli otrzymamy na samym końcu accepted oraz w buforze wejściowym tylko $ to dane słowo należy do rozpatrywanego języka. Przykład 0. S aabb 1. A aac 2. A ε 3. B bb 4. B c Na początku dodajemy produkcje S S, od tej pory symbolem startowym jest S. 0. S S 1. S aabb 2. A aac 3. A ε 4. B bb 5. B c Podobnie jak dla parsera LL(1) wyznaczamy tabelę zbiorów FIRST i FOLLOW: FIRST FOLLOW A {ε, a} {b, c} B {b, c} {b} S {a} {$} Następnie budujemy deterministyczny automat skończony, który ma postać końcową:

6 Przykładowe kroki w konstrukcji automatu: Zaczynamy od stanu q0. Należy do niego główna produkcja oznaczona S.S, oraz wszystkie produkcje oznaczone, które po lewej stronie mają symbol występujący po kropce czyli S i mają na początku kropkę. Jest taka jedna produkcja oznaczona: S aabb. Rozważając produkcję oznaczoną S.S konstruujemy tranzycję dla S, przechodzimy do nowego stanu q1, do którego dołączamy tą produkcję tylko z przesuniętą kropką o jeden symbol S S.. Kropka jest na końcu więc jest to stan końcowy. Pójdźmy następnie inną drogą wybierzmy w stanie q0 terminal a. Tworzymy stan q2, w którym zapisujemy produkcję oznaczoną S a.abb, oraz wszystkie produkcje oznaczone z A po lewej stronie i kropce na początku prawej strony: A aac i A.. Jest to stan końcowy ponieważ znajduje się w nim produkcja oznaczona z kropką na końcu. W stanie q2 na stosie znajduje się symbol a. Następnie możemy wybrać terminal a z produkcji oznaczonej A.aAc, wtenczas otrzymamy nowy stan q4 z produkcjami A a.ac oraz A.aAc, A., itd. Intuicyjnie zaczynamy od stanu q0. i głównej produkcji oznaczonej S.S. Oznacza ona, że aktualne słowo z bufora wejściowego chcemy wyprowadzić z terminala S, stos jest pusty. W związku z tym umieszczamy S na stosie i przechodzimy do stanu q1, w którym główną produkcją jest S S.. W tym stanie mamy na stosie S, i nie ma potrzeby porównania z buforem wejściowym. Jeśli w tym stanie bufor wejściowy jest pusty to otrzymaliśmy stan accepted, który kończy wyprowadzenie. Zamiast do stanu q1 możemy również przejść do stanu q2, ponieważ S może zostać zastąpione produkcją 1. Wtedy umieszczamy na stosie terminal a, równocześnie zdejmując go z bufora wejściowego, itd. Następnie konstruujemy tabelę algorytmu SLR(1), która wygląda następująco: a b c $ A B S 0 s2 1

7 1 acc 2 s4 r3 r3 3 3 s6 s7 5 4 s4 r3 r3 8 5 s9 6 s6 s r5 8 s11 9 r1 10 r4 11 r2 r2 Przykładowe wyprowadzenie. Zaczynamy od stanu q0. Gdy zastosujemy tranzycję S idziemy do stanu q1, a więc wpisujemy w [0, S] = 1. Gdy wybierzemy tranzycję a, idziemy do stanu q2, a więc wpisujemy s2. q1 to stan końcowy do którego prowadzi tranzycja S, a więc wpisujemy w nim acc. Następnie analizujemy stan q2. Jeśli w stanie q2 wybierzemy a, to idziemy do stanu q4, a więc [2, a] = s4. Jeśli natomiast wybierzemy A to idziemy do stanu 3, [2, A] = 3. Jest to stan końcowy ze względu na produkcję A., a zatem sprawdzamy jaki jest zbiór FOLLOW(A), i wpisujemy: [2, b] = r3, [2, c]=r4, itd. Sprawdźmy słowo aacbbcb: Góra stosu znajduje się na początku. Bufor wejściowy aacbbcb$. Stos: 0. Sprawdzamy komórkę tabeli [0, a]. Jest w niej s2, a zatem, s oznacza, że a zdejmujemy z bufora wejściowego, kładziemy na stos, i kładziemy 2: Bufor wejściowy acbbcb$. Stos: 2a0. Sprawdzamy komórkę: [2, a]. Jest w niej s4 a zatem: Bufor wejściowy cbbcb$. Stos: 4a2a0. Sprawdzamy komórkę [4, c]. Jest w niej r3, a zatem stosujemy produkcję nr. 3 dla stosu począwszy od lewej, w produkcji mamy produkcję pustą, a więc: Bufor wejściowy cbbcb$. Stos: A4a2a0. Następnie sprawdzamy komórkę: [4, A] w której jest 8. A więc kładziemy 8 na stos: Bufor wejściowy cbbcb$. Stos: 8A4a2a0. I dalej analogicznie sprawdzamy komórkę [8, c] w której jest s11. A więc: Bufor wejściowy bbcb$. Stos: 11c8A4a2a0. Dalej sprawdzamy komórkę [11, b] w której jest r2, a więc redukujemy stos za pomocą produkcji nr. 2: Bufor wejściowy bbcb$. Stos: A2a0. Następnie sprawdzamy komórkę [2, A], w której jest 3, a więc kładziemy 3 na stos: Bufor wejściowy bbcb$.

8 Stos: 3A2a0, itd. Odtworzenie stosowanych produkcji: Zdjęcie ze stosu terminala oznacza przesunięcie w łańcuchu aktualnego wskaźnika. Wyprowadzenie pośrednie wygląda następująco: ^aacbbcb a^acbbcb aa^cbbcb aaa^cbbcb aaac^bbcb a^bbcb Po lewej stronie wskaźnika jest stos, a po prawej stronie wskaźnika jest bufor wejściowy. Końcowe wyprowadzenie otrzymamy usuwając z niego wyprowadzenia w których przesuwamy tylko wskaźnik: aacbbcb aaacbbcb abbcb.

9 Zadania Zadania na 3.0 Skontruować algorytm SLR(1) dla następującej gramatyki: S SaT S T T TbF T F F cfd F e Czy podana gramatyka jest typu SLR(1)? Wykonać parsowanie dla słowa: eaebe. Na podstawie parsowania zapisać wyprowadzenie dla tego słowa. Zadania na 4.0 Skontruować algorytm SLR(1) dla następującej gramatyki: S SaS S SbS S csd S e Czy podana gramatyka jest typu SLR(1)? Wykonać parsowanie dla słowa: eaebe. Na podstawie parsowania zapisać wyprowadzenie dla tego słowa. Zadania na 5.0 Implementacja algorytmu SLR(1) w Javie. Porównanie wyników z programem JFLAP dla gramatyk z zadań na 3.0 i 4.0.

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

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

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

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

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

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

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

Wykład 5. Jan Pustelnik

Wykład 5. Jan Pustelnik Wykład 5 Jan Pustelnik Konstruowanie parsera Istnieje kilka podstawowych metod konstrukcji parsera bez nawracania Ze względów wydajnościowych parser bez nawracania jest jedynym sensownym rozwiązaniem (prawo

Bardziej szczegółowo

0.1 Lewostronna rekurencja

0.1 Lewostronna rekurencja 0.1 Lewostronna rekurencja Sprawdź czy poniższa gramatyka E jest zgodna z LL(1), tzn. czy umożliwia przeprowadzenie analizy bez powrotu z wyprzedzeniem o jeden symbol. Wyjaśnienie pojęcia LL(1): Pierwsze

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

Języki formalne i automaty Ćwiczenia 5

Języki formalne i automaty Ćwiczenia 5 Języki formalne i automaty Ćwiczenia 5 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 L-systemy... 2 Grafika żółwia... 2 Bibliografia... 5 Zadania... 6 Zadania na 3.0... 6 Zadania

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

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

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

Analizator syntaktyczny

Analizator syntaktyczny Analizator syntaktyczny program źródłowy analizator leksykalny token daj nast. token analizator syntaktyczny drzewo rozbioru syntaktycznego analizator semantyczny kod pośredni tablica symboli Analizator

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

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

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

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

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

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

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

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

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

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

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

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

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin Algorytmy stochastyczne, wykład 5, modelowanie roślin Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 214-3-2 1 2 3 ze stosem Przypomnienie gramatyka to system (Σ, A, s,

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

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

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech anagram(l) = {w : w jest anagaramem v dla pewnego v L}. (a) Czy jeśli L jest

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

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

Imię, nazwisko, nr indeksu

Imię, nazwisko, nr indeksu Imię, nazwisko, nr indeksu (kod) (9 punktów) Wybierz 9 z poniższych pytań i wybierz odpowiedź tak/nie (bez uzasadnienia). Za prawidłowe odpowiedzi dajemy +1 punkt, za złe -1 punkt. Punkty policzymy za

Bardziej szczegółowo

Odwrotna Notacja Polska

Odwrotna Notacja Polska Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).

Bardziej szczegółowo

Dopełnienie to można wyrazić w następujący sposób:

Dopełnienie to można wyrazić w następujący sposób: 1. (6 punktów) Czy dla każdego regularnego L, język f(l) = {w : każdy prefiks w długości nieparzystej należy do L} też jest regularny? Odpowiedź. Tak, jęsli L jest regularny to też f(l). Niech A będzie

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

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

Odtworzenie wywodu metodą wstępującą (bottom up)

Odtworzenie wywodu metodą wstępującą (bottom up) Przeglądane wejśca od lewej strony do prawej L (k) Odtwarzane wywodu prawostronnego Wystarcza znajomosc "k" następnych symbol łańcucha wejścowego hstor dotychczasowych redukcj, aby wyznaczyc jednoznaczne

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

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

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

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

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu

Bardziej szczegółowo

UONET+ moduł Dziennik. Rejestrowanie frekwencji uczniów na lekcjach w widoku Lekcja

UONET+ moduł Dziennik. Rejestrowanie frekwencji uczniów na lekcjach w widoku Lekcja UONET+ moduł Dziennik Rejestrowanie frekwencji uczniów na lekcjach w widoku Lekcja W module Dziennik widok Lekcja przeznaczony jest przede wszystkim do wprowadzania zapisów związanych z bieżącą lekcją

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

1 Automaty niedeterministyczne

1 Automaty niedeterministyczne Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów

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

Usuwanie lewostronnej rekursji. Usuwanie lewostronnej faktoryzacji. Wyznaczanie zbioru FIRST. Wyznaczanie zbioru FOLLOW. Konstrukcja parsera LL

Usuwanie lewostronnej rekursji. Usuwanie lewostronnej faktoryzacji. Wyznaczanie zbioru FIRST. Wyznaczanie zbioru FOLLOW. Konstrukcja parsera LL Usuwanie lewostronnej rekursji A Aα β Np. A A+B C A βa A CA A αa ε A +BA ε Usuwanie lewostronnej faktoryzacji A αβ 1... αβ k Np. A ab a A αa A aa A β 1... β k A B ε Wyznaczanie zbioru FIRST 1) A xβ x T

Bardziej szczegółowo

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

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

Polcode Code Contest PHP-10.09

Polcode Code Contest PHP-10.09 Polcode Code Contest PHP-10.09 Przedmiotem konkursu jest napisanie w języku PHP programu, którego wykonanie spowoduje rozwiązanie zadanego problemu i wyświetlenie rezultatu. Zadanie konkursowe Celem zadania

Bardziej szczegółowo

Zakład Systemów Rozproszonych

Zakład Systemów Rozproszonych Zakład Systemów Rozproszonych Politechnika Rzeszowska Moduł 5: Wybrane programy użytkowe Edytor Vi Edytor Vi uruchamiany jest w oknie terminala. Przy jego pomocy możemy dokonywać następujących operacji:

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

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

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

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych.

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych. Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych, pod warunkiem, że

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

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

Analiza metodą zstępującą. Bartosz Bogacki.

Analiza metodą zstępującą. Bartosz Bogacki. Analiza metodą zstępującą Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy analizy metodą zstępującą. Zapraszam serdecznie do wysłuchania.

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

Tworzenie dokumentów oraz prezentacji programu Młodzi Aktywiści Prezydencji przy wykorzystaniu EduTuby

Tworzenie dokumentów oraz prezentacji programu Młodzi Aktywiści Prezydencji przy wykorzystaniu EduTuby Tworzenie dokumentów oraz prezentacji programu Młodzi Aktywiści Prezydencji przy wykorzystaniu EduTuby W tym dokumencie pokażemy wam jak stworzyć dokument oraz prezentację wykorzystując do tego możliwości,

Bardziej szczegółowo

Rozwiązywanie układów równań liniowych

Rozwiązywanie układów równań liniowych Rozwiązywanie układów równań liniowych Marcin Orchel 1 Wstęp Jeśli znamy macierz odwrotną A 1, to możęmy znaleźć rozwiązanie układu Ax = b w wyniku mnożenia x = A 1 b (1) 1.1 Metoda eliminacji Gaussa Pierwszy

Bardziej szczegółowo

Definicja 2. Twierdzenie 1. Definicja 3

Definicja 2. Twierdzenie 1. Definicja 3 INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ ZAKŁAD SZTUCZNEJ INTELIGENCJI I AUTOMATÓW Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 205 temat: ZASTOSOWANIE JĘZYKA WYRAŻEŃ

Bardziej szczegółowo

Turing i jego maszyny

Turing i jego maszyny Turing Magdalena Lewandowska Politechnika Śląska, wydział MS, semestr VI 20 kwietnia 2016 1 Kim był Alan Turing? Biografia 2 3 Mrówka Langtona Bomba Turinga 4 Biografia Kim był Alan Turing? Biografia Alan

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 04 Systemy Lindenmayera Jarosław Miszczak IITiS PAN Gliwice 19/10/2016 1 / 37 1 L-Systemy 2 GroIMP i XL ALife 2 / 37 L-Systemy L-systemy czyli systemy Lindenmayera.

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

Wprowadzenie do maszyny Turinga

Wprowadzenie do maszyny Turinga Wprowadzenie do maszyny Turinga Deterministyczna Maszyna Turinga (DTM) jest pewną klasą abstrakcyjnych modeli obliczeń. W tej instrukcji omówimy konkretną maszynę Turinga, którą będziemy zajmować się podczas

Bardziej szczegółowo

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1 A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe ZAGADNIENIE TRANSPORTOWE(ZT) Danychjest pdostawców,którychpodażwynosi a,a 2,...,a p i qodbiorców, którychpopytwynosi b,b 2,...,b

Bardziej szczegółowo

Języki i gramatyki formalne

Języki i gramatyki formalne 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

Bardziej szczegółowo

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa Zadanie 1. Rozważmy jezyk złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa równe. Narysować diagram minimalnego automatu deterministycznego akceptujacego

Bardziej szczegółowo

Obiektowa implementacja parsera klasy LL(1)

Obiektowa implementacja parsera klasy LL(1) Obiektowa implementacja parsera klasy LL(1) Piotr Jeruszka 1 1 Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, II stopień Specjalność: Aplikacje biznesowe i bazy danych, Rok II Streszczenie

Bardziej szczegółowo

1. SFC W PAKIECIE ISAGRAF 2. EDYCJA PROGRAMU W JĘZYKU SFC. ISaGRAF WERSJE 3.4 LUB 3.5 1

1. SFC W PAKIECIE ISAGRAF 2. EDYCJA PROGRAMU W JĘZYKU SFC. ISaGRAF WERSJE 3.4 LUB 3.5 1 ISaGRAF WERSJE 3.4 LUB 3.5 1 1. SFC W PAKIECIE ISAGRAF 1.1. Kroki W pakiecie ISaGRAF użytkownik nie ma możliwości definiowania własnych nazw dla kroków. Z każdym krokiem jest związany tzw. numer odniesienia

Bardziej szczegółowo

2 Kryptografia: algorytmy symetryczne

2 Kryptografia: algorytmy symetryczne 1 Kryptografia: wstęp Wyróżniamy algorytmy: Kodowanie i kompresja Streszczenie Wieczorowe Studia Licencjackie Wykład 14, 12.06.2007 symetryczne: ten sam klucz jest stosowany do szyfrowania i deszyfrowania;

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

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

ZYKI BEZKONTEKSTOWE (KLASA

ZYKI BEZKONTEKSTOWE (KLASA Spis treści 6. JĘZYKI BEZKONTEKSTOWE (KLASA "2")... 2 6.1. GRAMATYKI BEZKONTEKSTOWE... 2 6.2. AUTOMATY ZE STOSEM... 12 7. DETERMINISTYCZNE JĘZYKI BEZKONTEKSTOWE I ICH AKCEPTORY... 16 7.1. GRAMATYKI I JĘZYKI

Bardziej szczegółowo

Aby przejść do edycji w tym module należy wybrać zakładkę "Dla Pracowników" -> "Sprawdziany".

Aby przejść do edycji w tym module należy wybrać zakładkę Dla Pracowników -> Sprawdziany. Sprawdziany Sprawdziany Moduł "Sprawdziany" oferuje osobom prowadzącym zajęcia wygodny sposób informowania studentów o wynikach/ocenach jakie uzyskali (np. z kartkówek, różnego rodzaju zadań, ogólne jakie

Bardziej szczegółowo

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe ARCHITEKTURA KOMPUTERÓW Systemy liczbowe 20.10.2010 System Zakres znaków Przykład zapisu Dziesiętny ( DEC ) 0,1,2,3, 4,5,6,7,8,9 255 DEC Dwójkowy / Binarny ( BIN ) 0,1 11111 Ósemkowy ( OCT ) 0,1,2,3, 4,5,6,7

Bardziej szczegółowo

Siemens C35i, C45, M35i, ME45, S35i, S45, SL42/SL45, MT50, M50, C55, C56, CT56, 6688i, M46, 3118 Wprowadzanie kanałów do telefonu

Siemens C35i, C45, M35i, ME45, S35i, S45, SL42/SL45, MT50, M50, C55, C56, CT56, 6688i, M46, 3118 Wprowadzanie kanałów do telefonu Siemens C25 2. Wybierz opcję Inne 3. Wybierz CB Ustawienia 4. Wybierz Tematy 5. Wybierz Dodaj nowy temat; pojawi się lista kanałów 6. Wybierz Zdefiniować nowy t...; pojawia się: Nr Id. Tematu 7. Wpisz

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

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym S t r o n a 1 Bożena Ignatowska Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym Wprowadzenie W artykule zostaną omówione zagadnienia związane z wykorzystaniem funkcji tekstowych w arkuszu

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

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje

Bardziej szczegółowo

pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy.

pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy. komunikat do zakodowania: a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b a 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 przyjmujemy długość bufora słownikowego

Bardziej szczegółowo

UONET+ moduł Dziennik

UONET+ moduł Dziennik UONET+ moduł Dziennik Dokumentowanie lekcji w systemie UONET+ W systemie UONET+ bieżące lekcje rejestruje się i dokumentuje w module Dziennik w widoku Dziennik/ Lekcja. Dokumentowanie lekcji w tym widoku,

Bardziej szczegółowo

5. Bazy danych Base Okno bazy danych

5. Bazy danych Base Okno bazy danych 5. Bazy danych Base 5.1. Okno bazy danych Podobnie jak inne aplikacje środowiska OpenOffice, program do tworzenia baz danych uruchamia się po wybraniu polecenia Start/Programy/OpenOffice.org 2.4/OpenOffice.org

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

Podręcznik Użytkownika 360 Księgowość Projekty i centra kosztów

Podręcznik Użytkownika 360 Księgowość Projekty i centra kosztów Podręcznik Użytkownika Projekty i centra kosztów Projekty i centra kosztów mogą być wykorzystane do szczegółowych analiz dochodów i wydatków. Aby móc wprowadzić transakcje do projektów i centrów kosztów

Bardziej szczegółowo

Maszyna Turinga (Algorytmy Część III)

Maszyna Turinga (Algorytmy Część III) Maszyna Turinga (Algorytmy Część III) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-12-18 08:22:34 +0100 Upraszczanie danych Komputery są coraz szybsze i sprawniejsze. Na potrzeby rozważań naukowych

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

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi cyfry 7 5 8 2 pozycje 3 2 1 0 Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień

Bardziej szczegółowo

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie. Lokalizacja Informacje ogólne Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie. To pojęcie jest używane przez schematy szaf w celu tworzenia

Bardziej szczegółowo

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051 Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051 Katedra Automatyki, Wydział EAIiE Akademia Górniczo-Hutnicza w Krakowie Marcin Piątek Kraków 2008 1. Ważne uwagi i definicje Poniższy

Bardziej szczegółowo

TABULATORY - DOKUMENTY BIUROWE

TABULATORY - DOKUMENTY BIUROWE TABULATORY - DOKUMENTY BIUROWE Autoformatowanie Znaczniki tabulacji Ćwiczenie 1 Ćwiczenie 2 Wcięcia i tabulatory Objaśnienia i podpisy Wcięcia w akapitach Ćwiczenia Tabulatory są umownymi znacznikami powodującymi

Bardziej szczegółowo

PARADYGMATY I JĘZYKI PROGRAMOWANIA. Analiza leksykalna i syntaktyczna. w- 5

PARADYGMATY I JĘZYKI PROGRAMOWANIA. Analiza leksykalna i syntaktyczna. w- 5 PARADYGMATY I JĘZYKI PROGRAMOWANIA Analiza leksykalna i syntaktyczna. Treść 2 Wstęp Analiza leksykalna Analiza syntaktyczna Rekurencja zstępująca Parsery LL Parsery LL sterowane tablicą 3 Wstęp dobra książka

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