KONWERTER WYRAŻENIA REGULARNE AUTOMAT GRAMATYKA. Teoria kompilacji i kompilatory. Tomasz Raus. Jacek Boruch

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

Download "KONWERTER WYRAŻENIA REGULARNE AUTOMAT GRAMATYKA. Teoria kompilacji i kompilatory. Tomasz Raus. Jacek Boruch"

Transkrypt

1 KONWERTER WYRAŻENIA REGULARNE AUTOMAT GRAMATYKA Teoria kompilacji i kompilatory Tomasz Raus Jacek Boruch

2 SPIS TREŚCI I Wprowadzenie do tematu... 3 Wstęp... 3 Założenia projektu... 3 II Wstęp teoretyczny... 6 Konwersja Z Wyrażeń Regularnych na Automat... 6 Konwersja Z Automatu na Wyrażenia Regularne... 8 Konwersja Automatu na Gramatykę Regularną Konwersja Gramatyki Regularnej na Automat Konwersja Niedeterministycznego na Deterministyczny Automat Skończony Minimalizacja Deterministycznego Automatu Skończonego III Implementacja Wykorzystane technologie Przykładowe fragmenty kodu z implementacji algorytmów Klient IV Działanie aplikacji Obsługa i wprowadzanie danych Wyniki V Podsumowanie Ogólne wnioski Napotkane problemy Możliwe przyszłe prace VI Literatura

3 I WPROWADZENIE DO TEMATU WSTĘP Języki regularne, podobnie jak zbiory regularne, mają ogromne znaczenie praktyczne. Są one bowiem wykorzystywane do definiowania języków programowania, do formalizacji pojęcia analizy syntaktycznej, do upraszczania translacji języków programowania, oraz przy innych zastosowania z dziedziny przetwarzania łańcuchów. I tak na przykład gramatyki bezkontekstowe są używane przy opisywaniu wyrażeń arytmetycznych z dowolnie zagnieżdżonymi zrównoważonymi nawiasami oraz struktur blokowych w językach programowania (wyznaczonych przez słowa kluczowe begin i end, dopasowane jak nawiasy). Języki regularne mogą być przedstawione w różnej postaci, na przykład za pomocą gramatyki regularnej, automatu skończonego lub wyrażenia regularnego. Wszystkie tego postacie są sobie równoważne. Często zachodzi potrzeba przekształcenia jednej z nich na inną. W takim przypadku istnieją różne algorytmy, które opisują w jaki sposób tego dokonać. Warto jednak jest mieć w posiadaniu narzędzie, które wykona to automatycznie. Jego realizację podjęliśmy w tym projekcie. ZAŁOŻENIA PROJEKTU Naszym celem jest zbudowanie konwertera w oparciu o istniejące już algorytmy, który pozwoli na szybką i prostą konwersję z różnych postaci przedstawienia języka formalnego, takich jak: wyrażenia regularne, gramatyka regularna, automat skończony. Na początku trzeba się przyjrzeć dostępnym algorytmom i zaprojektować w jaki sposób nasz konwerter miałby działać. 3

4 Na powyższym schemacie przedstawiony jest proces konwersji. Wynika z niego, że trzeba by było wykorzystać 6 różnych algorytmów. Zamiast tego można ograniczyć ich liczbę przez konwersję na postać pośrednią. Na przykład przy konwersji z wyrażeń regularnych do gramatyki regularnej można wykorzystać postać automatu skończonego, na który najpierw zamienić z wyrażeń regularnych a następnie na gramatykę regularną. Przestawia to poniższy schemat: 4

5 Za pomocą takiego rozwiązania ograniczyliśmy liczbę algorytmów, którą wykorzystamy w naszym projekcie do 4. Kolejnym założeniem jest stworzenie przyjaznego dla użytkownika klienta, który umożliwi obsługę naszego narzędzia bez potrzeby wdrożenia w różne sposoby formatowania i przedstawiania automatów i gramatyk (np. json, xml). Użytkownik powinien móc utworzyć automat i gramatykę korzystając z odpowiednich narzędzi interfejsu graficznego. 5

6 II WSTĘP TEORETYCZNY KONWERSJA Z WYRAŻEŃ REGULARNYCH NA AUTOMAT Języki akceptowane przez automaty skończone są dokładnie językami opisanymi przez wyrażenia regularne. Na mocy tego twierdzenia na podstawie wyrażenia regularnego można skonstruować automat skończony. Poniżej przedstawione są reguły konstrukcji niedeterministycznego automatu skończonego na podstawie poszczególnych przypadków występujących w wyrażeniach regularnych: Automat dla pustego języka, nie zawierającego żadnego słowa; L( ) = Automat dla języka akceptującego tylko słowo puste; L(ε) = {ε} Automat dla języka akceptującego tylko jeden symbol; L(a) = {a} 6

7 Automat dla konkatenacji dwóch wyrażeń regularnych: α β Automat dla sumy dwóch wyrażeń regularnych: α + β Automat dla domknięcia Kleene'ego wyrażenia regularnego: α 7

8 KONWERSJA Z AUTOMATU NA WYRAŻENIA REGULARNE W przypadku konwersji automatu na wyrażenia regularne dostępnych jest kilka metod, które pozwalają to osiągnąć. Metoda usuwania stanów W tej metodzie rozpatrujemy krawędzie automatu jako wyrażenia regularne i usuwamy pośrednie stany utrzymując wartości na krawędziach zgodne. Główny wzorzec tej metody można zaobserwować z poniższego przykładu. Pierwszy graf posiada stany p, q, r, pomiędzy którymi występują wyrażenia regularne e, f, g, h, i. Chcemy usunąć stan q. Po jego usunięciu trzeba złożyć e, f, g, h, i razem: Niestety ta metoda nie za bardzo nadaje się do implementacji jako algorytm ze względu na dużą ilość przypadków. Wykorzystuje się ją raczej do ręcznego rozwiązywania tego typu zadań. 8

9 Metoda domknięcia przechodniego Metody tej zwykle nie używa się do ręcznego przekształcania gdyż jest za bardzo semantyczna, jednak dobrze nadaje się do implementacji w formie algorytmu ze względu jej względną prostotę, dlatego właśnie ją wybraliśmy. Niech R k i,j reprezentuje wyrażenie regularne dla łańcuchów przebiegających od q i do q j używając stanów {q j,, q k }. Niech n będzie liczbą stanów automatu. Zakłada się że znane jest już wyrażenie regularne R i,j od q i do q j bez stanu pośredniego q k dla każdego i, j. Wtedy można przewidzieć w jaki sposób dodanie innego stanu wpłynie na nowe wyrażenie regularne R i,j : zmienia się on tylko wtedy gdy istnieje bezpośrednie przejście do stanu q k i może być wyrażone w poniższy sposób: R i,j = R i,j + R i,k. R k,k. R k,j Algorytm w pseudokodzie: Inicjalizacja: Domknięcie przechodnie: Ostateczne wyrażenie (zakładając, że qs jest stanem początkowym): 9

10 KONWERSJA AUTOMATU NA GRAMATYKĘ REGULARNĄ 1. Zmień nazwy stanów na wielkie litery. 2. Symbol startowy jest stanem startowym w NAS. 3. Dla każdego przejścia I -> J oznaczone przez a, utwórz produkcję I -> aj. 4. Dla każdego przejścia I -> J oznaczone przez ε, utwórz produkcję I -> J. 5. Dla każdego końcowego stanu K, utwórz produkcję K -> ε. KONWERSJA GRAMATYKI REGULARNEJ NA AUTOMAT 1. Jeżeli jest to konieczne przekształć gramatykę tak, aby wszystkie produkcje miały postać A -> x lub A -> xb, gdzie x to pojedyncza litera lub ε. 2. Stan startowy NAS jest symbolem startowym gramatyki. 3. Dla każdej produkcji I -> aj, utwórz przejście stanów I -> J oznaczone przez a. 4. Dla każdej produkcji I -> J, utwórz przejście stanów I -> J oznaczone przez ε. 5. Jeżeli istnieją produkcję postaci I -> a, dla jakiejś litery a, wtedy utwórz nowy symbol stanu F. Dla każdej produkcji I -> a, utwórz przejście stanów I -> F oznaczone przez a. 6. Końcowe stany NAS to wszystkie F razem z tymi I, dla których istnieje produkcja I -> ε. KONWERSJA NIEDETERMINISTYCZNEGO NA DETERMINISTYCZNY AUTOMAT SKOŃCZONY Niedeterministyczny automat skończony różni się od deterministycznego automatu skończonego tym, że przeczytanie tego samego symbolu w danym stanie może powodować przejście do jednego z kilku różnych stanów. 10

11 Każdemu niedeterministycznemu automatowi skończonemu odpowiada deterministyczny automat skończony akceptujący dokładnie te same słowa. Możemy go uzyskać dokonując determinizacji automatu skończonego. Aby tego dokonać postępujemy w sposób podany poniżej. ε-domknięcie danego stanu S jest to zbiór wszystkich stanów, włączając w to S, do których można dotrzeć poprzez ε-przejścia. Konstrukcja DFA: Krok 1: Niech stan początkowy DFA będzie utworzony z ε-domknięcia stanu początkowego NFA. Kolejne kroki: Jeżeli S jest jakimkolwiek stanem, który został poprzednio skonstruowany dla DFA i jest utworzony ze stanów t1,, tr NFA, wtedy dla każdego symbolu x dla którego choć jeden ze stanów t1,, tr posiada x-następcę, x-następna stanu S jest ε-domknięciem x-następcy stanów t1,, tr. Każdy stan DFA, który jest utworzony z akceptującego stanu NFA (pośród innych) staje się akceptującym stanem. Po przekształceniu następującego NFA: 11

12 Otrzymujemy DFA, które nie posiada ε-przejść i posiada pojedynczy stan akceptujący: Przykładowy pseudokod, który wykorzystaliśmy do implementacji w naszym narzędziu: 12

13 MINIMALIZACJA DETERMINISTYCZNEGO AUTOMATU SKOŃCZONEGO Minimalizacja to proces przekształcania deterministycznych automatów skończonych do automatów o najmniejszej możliwej liczbie stanów. Niektóre stany w automacie deterministycznym mogą być sobie,,równoważne'' i możemy je skleić. Natomiast badając, czy stany są równoważne trzeba zwrócić uwagę na to jakie słowa z danych stanów prowadzą do stanów akceptujących. Jeśli są tu jakieś różnice, to stanów nie możemy sklejać. Algorytm minimalizacji składa się z dwóch faz: 1. usunięcia stanów nieosiągalnych, 2. wyznaczenia relacji równoważności i sklejenia ze sobą stanów równoważnych. Znalezienie stanów nieosiągalnych jest prostsze. Trudniej natomiast znaleźć stany równoważne. Przypomnijmy, że dwa stany p i q są sobie równoważne, gdy: Pokażemy algorytm, który znajduje wszystkie pary nierównoważnych sobie stanów. Siłą rzeczy, pozostałe pary stanów są sobie równoważne i można je skleić ze sobą. Jeśli stany p i q nie są sobie równoważne, to istnieje rozróżniające je słowo x, takie że: Początkowo zakładamy, że wszystkie stany można skleić ze sobą. Następnie sukcesywnie wyznaczamy pary stanów które nie są sobie równoważne -- w kolejności wg. rosnącej długości najkrótszych rozróżniających je słów. 13

14 Algorytm: 1. Tworzymy tablicę wartości logicznych T {p,q} indeksowaną nieuporządkowanymi parami {p, q} stanów p, q Q. Początkowo T {p,q} = true dla wszystkich p, q Q. 2. Dla wszystkich takich par stanów {p, q}, że p F i q F zaznaczamy T {p,q} = false. Jeśli p jest akceptujący, a q nie, to stany te rozróżnia słowo puste ε. 3. Dla wszystkich par stanów {p, q}i znaków a Σ takich, że T {δ(p,a),δ(q,a)} = false, zaznaczamy również T {p,q} = false. 4. Jeżeli w kroku 3 zmieniliśmy choć jedną komórkę tablicy T z true na false, to powtarzamy krok 3 - tak długo, aż nie będzie on powodował żadnych zmian w tablicy T. 5. Na koniec mamy: p q T {p,q}. 14

15 III IMPLEMENTACJA WYKORZYSTANE TECHNOLOGIE Do stworzenia naszego konwertera wybraliśmy technologie, w których posiadamy największe doświadczenie, żeby móc skupić się na wprowadzaniu samych funkcji zamiast uczyć nowego języka. Wybór padł na język programowania Java, który posiada potężne możliwości w tworzeniu i organizacji kodu, struktur danych jak i samych algorytmów. Z drugiej strony chcieliśmy także stworzyć wygodne środowisko dla użytkownika, który mógłby bez problemu wprowadzać dane za pomocą graficznych kontrolek. Dlatego zdecydowaliśmy się stworzyć aplikację webową, której część serwerowa oparta jest na Javie, a część kliencka na HTML, CSS, JavaScript. Aby w pełni móc zaprezentować wizualizację automatów wykorzystaliśmy w naszym projekcie bibliotekę języka JavaScript o nazwie Viz. Jej wykorzystanie zostanie szerzej omówione w następnym paragrafie. Lista wykorzystanych technologii: Back-end: o JAVA o tomcat Front-end: o HTML + CSS + JavaScript o jquery o Bootstrap o Viz.js 15

16 Ważniejsze elementy aplikacji od strony back-end: W pakiecie algorithm znajdują się implementacje algorytmów, http servlet kieruje request do controllera, który mapuje request do opowiedniej metody w oparciu o konwersję, którą klient zażądał. Pakiet model reprezentuje wszystkie klasy odpowiadające za model aplikacji. 16

17 PRZYKŁADOWE FRAGMENTY KODU Z IMPLEMENTACJI ALGORYTMÓW Minimalizacja DAS Stanem startowym jest stan startowy DFA. Metoda filterunnecessarystates eliminuje stany nieosiągalne oraz takie, które nie są końcowe i nie ma z nich wyjścia. Następnie tworzona jest tablica logiczna reprezentująca relacje pomiędzy stanami, false oznacza, że stany nie są równe, na początku wszystkie ustawiamy na true, funkcja removefinalstatescombinations oznacza stany jako nierówne dla tych, w których jeden tylko jeden jest końcowym. W kolejnym kroku metoda removedifferentstates usuwa nierówne stany zgodnie z algorytmem przedstawionym w sekcji algorytmów. Na końcu ustawiane są stany końcowe. 17

18 NFA -> DFA 18

19 REGEX -> NAS 19

20 KLIENT Część kliencka, jak już wcześniej zostało wspomniane, opiera się o technologie HTML, CSS i JS. Elementy interfejsu zostały umieszczone w dokumencie HTML. Za ich wygląd w głównej mierze odpowiada biblioteka Bootstrap. Dostarcza ona arkusz stylów CSS oraz skrypty JS, na podstawie których zbudowane są poszczególne kontrolki. Za działanie kontrolek odpowiadają skrypty JS. Także w tym języku zaprogramowana jest cała komunikacja z częścią serwerową. Przebiega ona asynchronicznie za pomocą AJAX-a w postaci zapytania GET lub POST. Dane zapisane są w formacie JSON według przyjętej własnej konwencji. Przykładowy kod JSON przedstawiający dane automatu DAS: Jak zostało wspomniane w poprzednim paragrafie rysowanie automatu odbywa się przy pomocy biblioteki Viz.js, która służy do rysowania różnego typu diagramów. Do rysowania służy funkcja Viz(), która jako pierwszy argument przyjmuje łańcuch z odpowiednio sformatowanymi danymi, a drugi opcje, np. format. 20

21 Poniżej znajduje się kod, który odpowiada za rysowanie diagramów automatów: 21

22 IV DZIAŁANIE APLIKACJI OBSŁUGA I WPROWADZANIE DANYCH Tak jak już zostało wspomniane to wcześniej celem naszego narzędzia było stworzenie przyjaznego interfejsu użytkownika, dlatego wprowadziliśmy pewnie udogodnienia przy tworzeniu automatów oraz gramatyk. Całość interfejsu, zgodnie z przyjętymi założeniami, została podzielona na trzy części: Wyrażenia Regularne, Gramatyka oraz Automat. Każda część odpowiada za osobną postać opisywanego języka. Wyrażenia Regularne W tym miejscu znajduje się zwyczajne pole tekstowe, które umożliwia wpisanie łańcucha znaków, z którego składa się dane wyrażenie regularne w odpowiednim, przyjętym przez nas formacie. Format wyrażeń regularnych jest następujący:. oznacza konkatenację oznacza sumę * oznacza domknięcie Kleene'ego 22

23 Gramatyka W przypadku gramatyki wprowadzanie jest trochę bardziej skomplikowane, jednak z punktu widzenia użytkownika bardziej przejrzyste. Znajdują się tutaj trzy pola tekstowe odpowiadające za symbole: startowy, nieterminalne oraz terminalne. Każdy z nich wpisujemy oddzielając przecinkiem od poprzedniego. Poniżej znajduje się lista produkcji. Kolejne produkcje dodajemy wpisując odpowiednie wartości w pola Z i DO i klikając w zielony przycisk z +. Po jego naciśnięciu produkcja pojawia się powyżej. Aby ją usunąć należy nacisnąć czerwony przycisk x. Całość prezentuje się następująco: 23

24 Automat W przypadku automatu wprowadzanie danych odbywa się podobnie jak w przypadku gramatyki. Również znajduje się lista tym razem stanów, które dodajemy za pomocą odpowiedniego formularza. Aby zobaczyć jak wygląda wprowadzony automat można użyć przycisku Generuj, który odpowiada za generowanie graficznej reprezentacji w formie diagramu. Za pomocą odpowiednich przycisków możemy przełączać się również pomiędzy niedeterministyczną a deterministyczną oraz minimalną postacią automatu. 24

25 Po konwersji na DAS i jego minimalizacji nazwy stanów są złączeniem nazw stanów równoważnych, z których utworzono nowe. Aby je skrócić można nacisnąć zielony przycisk: Pozostałe Każda sekcja (postać) posiada przycisk Konwertuj. Po jego wciśnięciu wprowadzona postać zostaje przekonwertowana do pozostałych dwóch i wyświetlona w odpowiednich miejscach. Na górze znajduje się również przycisk Resetuj, który odpowiada za wyczyszczenie wszystkich wprowadzonych przez użytkownika danych. 25

26 WYNIKI Test 1 (minimalizacja automatu) Dla podanego poniżej wyrażenia regularnego generowany jest automat skończony, a następnie zostaje on wyświetlony w postaci minimalnej. Po minimalizacji: 26

27 Przed minimalizacją: 27

28 Test 2 Dla podanego poniżej automatu generowane jest odpowiednie wyrażenie regularne i gramatyka. 28

29 29

30 Test 3 Dla podanej poniżej gramatyki generowany jest automat i odpowiednie wyrażenie regularne. 30

31 31

32 V PODSUMOWANIE OGÓLNE WNIOSKI Podsumowując, wszystkie założenia naszego projektu zostały spełnione. Przyjęta struktura i konwencja konwersji została w odpowiedni sposób zaimplementowana i przetestowana z pozytywnym skutkiem. Interfejs narzędzia jest przyjazny dla użytkownika i umożliwia łatwe i szybkie wprowadzanie odpowiednich danych. NAPOTKANE PROBLEMY Jedynym lecz nie małym problemem na jaki się napotkaliśmy było przełożenie znalezionych przez nas algorytmów na język programowania. Większość opisana była w sposób przystępny dla człowieka, jako sposób na rozwiązanie pewnego problemu od strony matematycznej. Naszym zadaniem było natomiast zaimplementowanie ich w języku Java i zapewnienie poprawnego działania dla różnych danych. MOŻLIWE PRZYSZŁE PRACE Przydatną funkcją naszego narzędzia mogłaby być możliwość jeszcze bardziej przyjaznego sposobu wprowadzania danych do automatów poprzez bezpośrednie tworzenie ich graficznej reprezentacji przez użytkownika za pomocą przygotowanych elementów (pól, strzałek). Wykracza to jednak daleko poza cel tego projektu i pozostaje jedynie koncepcją, która mogłaby być wdrożona w nieokreślonej przyszłości. 32

33 VI LITERATURA John E. Hopcroft, Jeffrey D. Ullman Wprowadzenie do teorii automatów, języków i obliczeń, Wydawnictwo Naukowe PWN, Warszawa 2003 Harry H. Porter III Lexical Analysis, Portland State University James L. Hein, Discrete Structures, Logic, and Computability, Jones and Bartlett Publishers, 2010, Chapter 11 Inne: Viz.js Github Webpage Bootstrap Webpage 33

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

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 Stany równoważne Stany p i q są równoważne,

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

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

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

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

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

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

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

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

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

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych Szczepan Hummel Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych 24.11.2005 1. Minimalizacja automatów deterministycznych na słowach skończonych (DFA) [HU] relacja

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

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

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

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

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

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

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

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

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

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

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

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

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

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

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

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

JAO - Języki, Automaty i Obliczenia - Wykład 2. JAO - Języki, Automaty i Obliczenia - Wykład 2

JAO - Języki, Automaty i Obliczenia - Wykład 2. JAO - Języki, Automaty i Obliczenia - Wykład 2 Dowodzenie nieregularności języka [lemat o pompowaniu] Jeśli L regularny to istnieje stała c spełniająca : jeżeli z L, z c to istnieje dekompozycja w = u v x tak, że uv i x L dla każdego i 0 [lemat o skończonej

Bardziej szczegółowo

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

Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne Automat skończony (AS), ang. Finite Automaton (FA) Automat skończony (automat czytający, maszyna Rabina-Scotta)

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

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

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja aplikacji internetowej do wyszukiwania promocji Autor: Sylwester Wiśniewski Promotor: dr Jadwiga Bakonyi Kategorie: aplikacja webowa Słowa

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

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

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

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

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

(j, k) jeśli k j w przeciwnym przypadku. Zadanie 1. (6 punktów) Rozważmy język słów nad alfabetem {1, 2, 3}, w których podciąg z pozycji parzystych i podciąg z pozycji nieparzystych są oba niemalejące. Na przykład 121333 należy do języka, a 2111

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

Tworzenie szablonów użytkownika

Tworzenie szablonów użytkownika Poradnik Inżyniera Nr 40 Aktualizacja: 12/2018 Tworzenie szablonów użytkownika Program: Plik powiązany: Stratygrafia 3D - karty otworów Demo_manual_40.gsg Głównym celem niniejszego Przewodnika Inżyniera

Bardziej szczegółowo

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Tomasz Kapelak Nr albumu: 187404 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2 - 1 - MS EXCEL CZ.2 FUNKCJE Program Excel zawiera ok. 200 funkcji, będących predefiniowanymi formułami, słuŝącymi do wykonywania określonych obliczeń. KaŜda funkcja składa się z nazwy funkcji, która określa

Bardziej szczegółowo

Formuły formułom funkcji adresowania odwoływania nazwy Funkcja SUMA argumentami SUMA

Formuły formułom funkcji adresowania odwoływania nazwy Funkcja SUMA argumentami SUMA Formuły Dzięki formułom Excel jest potężnym narzędziem wykonującym na bieżąco skomplikowane obliczenia. Bez nich byłby jedynie martwą tabelą rozciągniętą na wiele kolumn i wierszy, taką pokratkowaną komputerową

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 10b: Wzorce i automaty. http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Wzorce i automaty Problematyka wzorców

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

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Funkcja uwikłana (równanie nieliniowe) jest to funkcja, która nie jest przedstawiona jawnym przepisem, wzorem wyrażającym zależność wartości

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

Metoda Karnaugh. B A BC A

Metoda Karnaugh. B A BC A Metoda Karnaugh. Powszechnie uważa się, iż układ o mniejszej liczbie elementów jest tańszy i bardziej niezawodny, a spośród dwóch układów o takiej samej liczbie elementów logicznych lepszy jest ten, który

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

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia Nazwa przedmiotu: Kierunek: Rodzaj przedmiotu: obowiązkowy dla wszystkich specjalności Rodzaj zajęć: wykład, ćwiczenia Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences

Bardziej szczegółowo

Łączenie liczb i tekstu.

Łączenie liczb i tekstu. Łączenie liczb i tekstu. 1 (Pobrane z slow7.pl) Rozpoczynamy od sposobu pierwszego. Mamy arkusz przedstawiony na rysunku poniżej w którym zostały zawarte wypłaty pracowników z wykonanym podsumowaniem.

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania, Programowanie aplikacji internetowych Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU

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

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

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i

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

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów A Zasady współpracy Ocena rozwiązań 3.0 25 40 punktów 3.5 41 65 punktów 4.0 66 80 punktów 4.5 81 100 punktów 5.0 101 130 punktów Warunki zaliczenia przedmiotu Student uzyska ocenę zaliczającą (3.0) o ile

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6 Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki

Bardziej szczegółowo

Budowa argumentacji bezpieczeństwa z użyciem NOR-STA Instrukcja krok po kroku

Budowa argumentacji bezpieczeństwa z użyciem NOR-STA Instrukcja krok po kroku Budowa argumentacji bezpieczeństwa z użyciem NOR-STA Instrukcja krok po kroku NOR-STA jest narzędziem wspierającym budowę, ocenę oraz zarządzanie strukturą argumentacji wiarygodności (assurance case),

Bardziej szczegółowo

Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF

Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF 1. Wstęp Treści zawarte w tym dokumencie mogą być przydatne w przypadku konieczności dokonania konwersji dokumentów tworzonych z

Bardziej szczegółowo

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy 1 Podstawowym przeznaczeniem arkusza kalkulacyjnego jest najczęściej opracowanie danych liczbowych i prezentowanie ich formie graficznej. Ale formuła arkusza kalkulacyjnego jest na tyle elastyczna, że

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

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 10: Maszyny Turinga Sławomir Lasota Uniwersytet Warszawski 29 kwietnia 2015 Plan Maszyny Turinga (Niedeterministyczna) maszyna Turinga M = (A, Q, q 0, F, T, B, δ) A

Bardziej szczegółowo

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny AiRIII gr. 2TI sekcja 1 Autorzy: Tomasz Bizon Józef Wawrzyczek 2 1. Wstęp Celem projektu było stworzenie sklepu

Bardziej szczegółowo

Zajęcia 4 - Wprowadzenie do Javascript

Zajęcia 4 - Wprowadzenie do Javascript Zajęcia 4 - Wprowadzenie do Javascript Co to jest Javascript Javascript jest językiem skryptowym pozwalającym na dołączanie dodatkowej funkcjonalności do stron WWW. Jest ona najczęściej związana z modyfikacją

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI TEORETYCZNE PODSTAWY INFORMATYKI Podstawowe pojęcia teorii automatów i języków Zbiór grupa obiektów, nazywanych elementami zbioru, traktowana jako całość {0,5,7,21,57,12,18} Ciąg lista obiektów nazywanych

Bardziej szczegółowo

AUTOMATYKA INFORMATYKA

AUTOMATYKA INFORMATYKA AUTOMATYKA INFORMATYKA Technologie Informacyjne Sieć Semantyczna Przetwarzanie Języka Naturalnego Internet Edytor Serii: Zdzisław Kowalczuk Inteligentne wydobywanie informacji z internetowych serwisów

Bardziej szczegółowo

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie

Bardziej szczegółowo

MS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30

MS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30 MS Word 2010 Długi dokument Praca z długim dokumentem Kinga Sorkowska 2011-12-30 Dodawanie strony tytułowej 1 W programie Microsoft Word udostępniono wygodną galerię wstępnie zdefiniowanych stron tytułowych.

Bardziej szczegółowo

3.1. Na dobry początek

3.1. Na dobry początek Klasa I 3.1. Na dobry początek Regulamin pracowni i przepisy BHP podczas pracy przy komputerze Wykorzystanie komputera we współczesnym świecie Zna regulamin pracowni i przestrzega go. Potrafi poprawnie

Bardziej szczegółowo

Aby zastosowad tabelę przestawną należy wybrad dowolną komórkę w arkuszu i z menu Wstawianie wybierz opcję Tabela Przestawna.

Aby zastosowad tabelę przestawną należy wybrad dowolną komórkę w arkuszu i z menu Wstawianie wybierz opcję Tabela Przestawna. Zajęcia nr 3: Tabele i wykresy przestawne Przypuśdmy, że mamy zbiór do analizy: Aby zastosowad tabelę przestawną należy wybrad dowolną komórkę w arkuszu i z menu Wstawianie wybierz opcję Tabela Przestawna.

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

dr inż. Małgorzata Langer Architektura komputerów

dr inż. Małgorzata Langer Architektura komputerów Instrukcja współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią,

Bardziej szczegółowo

Referat Pracy Dyplomowej

Referat Pracy Dyplomowej Referat Pracy Dyplomowej Team Pracy: Projekt i realizacja gry w technologii HTML5 z wykorzystaniem interfejsu programistycznego aplikacji Facebook Autor: Adam Bartkowiak Promotor: dr inż. Roman Simiński

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap. Kod szkolenia: Tytuł szkolenia: FRONT-END Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap. Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest zarówno dla

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

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

Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Arkusza obserwacji

Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Arkusza obserwacji Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Arkusza obserwacji Uruchom plik setup.exe Pojawi się okno instalacji programu MAC Diagnoza EP. Wybierz przycisk AKCEPTUJĘ. Następnie zainstaluj

Bardziej szczegółowo

EXCEL TABELE PRZESTAWNE

EXCEL TABELE PRZESTAWNE EXCEL TABELE PRZESTAWNE ZADANIE 1. (3 punkty). Ze strony http://www.staff.amu.edu.pl/~izab/ pobierz plik o nazwie Tabela1.xlsx. Używając tabel przestawnych wykonaj następujące polecenia: a) Utwórz pierwszą

Bardziej szczegółowo

WOJEWÓDZTWO PODKARPACKIE

WOJEWÓDZTWO PODKARPACKIE WOJEWÓDZTWO PODKARPACKIE UNIA EUROPEJSKA EUROPEJSKI FUNDUSZ ROZWOJU REGIONALNEGO Instrukcja instalacji generatora wniosku o dofinansowanie projektu ze środków EFRR w ramach I osi priorytetowej Regionalnego

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

4.Arkusz kalkulacyjny Calc

4.Arkusz kalkulacyjny Calc 4.Arkusz kalkulacyjny Calc 4.1. Okno programu Calc Arkusz kalkulacyjny Calc jest zawarty w bezpłatnym pakiecie OpenOffice.org 2.4. Można go uruchomić, podobnie jak inne aplikacje tego środowiska, wybierając

Bardziej szczegółowo

FUNKCJE TEKSTOWE W MS EXCEL

FUNKCJE TEKSTOWE W MS EXCEL FUNKCJE TEKSTOWE W MS EXCEL ASC W językach korzystających z dwubajtowego zestawu znaków (DBCS) zmienia znaki o pełnej szerokości (dwubajtowe) na znaki o połówkowej szerokości (jednobajtowe). : ASC(tekst)

Bardziej szczegółowo

Tworzenie formularzy w Microsoft Office Word 2007

Tworzenie formularzy w Microsoft Office Word 2007 Tworzenie formularzy w Microsoft Office Word 2007 Opublikowano: 5 kwietnia 2007 Autor: Michał Staniszewski W życiu codziennym często wypełniamy różnego rodzaju formularze, podania i coraz częściej mają

Bardziej szczegółowo

10110 =

10110 = 1. (6 punktów) Niedeterministyczny automat skończony nazwiemy jednoznacznym, jeśli dla każdego akceptowanego słowa istnieje dokładnie jeden bieg akceptujący. Napisać algorytm sprawdzający, czy niedeterministyczny

Bardziej szczegółowo

Współpraca FDS z arkuszem kalkulacyjnym

Współpraca FDS z arkuszem kalkulacyjnym Współpraca FDS z arkuszem kalkulacyjnym 1. Wstęp: Program Pyrosim posiada możliwość bezpośredniego podglądu wykresów uzyskiwanych z urządzeń pomiarowych. Wszystkie wykresy wyświetlane są jako plik graficzny

Bardziej szczegółowo

Automaty Büchi ego i równoważne modele obliczeń

Automaty Büchi ego i równoważne modele obliczeń Politechnika Krakowska im. Tadeusza Kościuszki Wydział Fizyki, Matematyki i Informatyki Kierunek Matematyka Paulina Barbara Rozwód Automaty Büchi ego i równoważne modele obliczeń praca magisterska studia

Bardziej szczegółowo

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji. Spis Treści 1. Wprowadzenie... 2 1.1 Wstęp... 2 1.2 Cel pracy... 2 1.3 Zakres pracy... 2 1.4 Użyte technologie... 2 1.4.1 Unity 3D... 3 2. Sztuczna inteligencja w grach komputerowych... 4 2.1 Zadanie sztucznej

Bardziej szczegółowo