Uniwersytet Mikołaja Kopernika w Toruniu. Robert Ospara. Wizualizacja dopasowania wyrażeń regularnych Perla z użyciem biblioteki Gtk+

Podobne dokumenty
Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Bezpieczeństwo systemów i lokalnej sieci komputerowej

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

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Webowy generator wykresów wykorzystujący program gnuplot

Jednolite zarządzanie użytkownikami systemów Windows i Linux

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

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Gra-zabawka dla niemowląt przygotowana z użyciem w Unity 3D

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Tworzenie oprogramowania

System zarządzający grami programistycznymi Meridius

Dokumentacja projektu QUAIKE Architektura oprogramowania

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Aplikacja webowa do zarządzania maszynami wirtualnymi

Opracowanie dodatkowego rodzaju pytań dla systemu Moodle

System Clonezilla archiwizacja i odtwarzanie partycji dyskowych

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

Zarządzanie certyfikatami w systemie OpenVPN

Wyrażenia regularne. Regular expressions. aka. Regexp

Budowanie interfejsów do baz danych

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Przykłady wykorzystania edukacyjnych portali internetowych oraz dostępnych tam multimediów

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Technika mikroprocesorowa. Języki programowania mikrokontrolerów

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Wstęp do Informatyki dla bioinformatyków

Programowanie proceduralne w języku C++ Podstawy

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie komputerów

Języki formalne i automaty Ćwiczenia 6

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

KARTA KURSU. Języki skryptowe


Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pakiet AutoRun Menu. Sławomir Pogodziński. Podyplomowe Studium Programowania i Zastosowań Komputerów

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

Programowanie procesora Microblaze w środowisku SDK

INŻYNIERIA OPROGRAMOWANIA

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Tworzenie maszyn wirtualnych przy pomocy systemu FAI

2 INSTALACJA OPROGRAMOWANIA. 3 3 GŁÓWNE OKNO PROGRAMU 3 4 MODUŁ OBSŁUGI ARCHIWUM 7

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

Dlaczego warto wybrać Sparkmailing? SPARK MEDIA Advertising & New Media info@sparkmedia.pl tel fax

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Instalacja i opis podstawowych funkcji programu Dev-C++

Programowanie CGI. Jolanta Bachan Informatyka

Wstęp do Informatyki. Klasyfikacja oprogramowania

FAQ: /PL Data: 14/06/2007 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-200

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

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Planista całkowicie sprawiedliwy. Algorytm, śledzenie działania i strojenie

KARTA SZKOLENIA 1/5. Po ukończeniu szkolenia uczestnik będzie potrafił:

System komputerowy. System komputerowy

Król Łukasz Nr albumu:

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

Standardy programowania protokołów komunikacyjnych Laboratorium nr 5 komunikacja multicastowa IPv6

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa

Obliczenia inspirowane Naturą

Platforma Eclipse: Pluginy, RCP oraz GEF

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Od programowania wizualnego do tekstowego

Przewodnik. Korzyści, Wymagania, Obowiązki

PRZEWODNIK PO PRZEDMIOCIE

Ćwiczenie 6. Wiadomości ogólne.

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

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

Projekt i implementacja filtra dzeń Pocket PC

Programowanie w języku Python. Grażyna Koba

Programowanie obiektowe

Wstęp Korzystanie z Eclipse Część interaktywna Zakończenie. Eclipse. M. Albrycht Ł. Zubkowicz. 24 marca M. Albrycht, Ł.

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

NARZĘDZIA WIZUALIZACJI

Testowanie i walidacja oprogramowania

Czym jest Ruby on Rails?

Tworzenie prezentacji, PowerPoint

Usługi sieciowe w kontenerach systemu operacyjnego CoreOS

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

NARZĘDZIA WIZUALIZACJI

BIURO USŁUG INFORMATYCZNYCH "T-SOFT"

Język programowania. Andrzej Bobyk

Wykaz tematów prac dyplomowych w roku akademickim 2013/2014. kierunek: informatyka, studia inżynierskie

System zdalnego nadzoru i zarządzania małą elektrownią wodną

Procesowa specyfikacja systemów IT

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa, Inżynieria oprogramowania, Technologie internetowe

Przejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK.

Transkrypt:

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Robert Ospara Nr albumu: 146951 Praca magisterska na kierunku informatyka Wizualizacja dopasowania wyrażeń regularnych Perla z użyciem biblioteki Gtk+ Praca wykonana pod kierunkiem dr hab. Jacka Kobusa Zakład Mechaniki Kwantowej TORUŃ 2009

Spis treści Wstęp 4 1 Grevis przewodnik dla użytkownika 6 1.1 Interfejs.............................. 6 1.1.1 Pasek menu głównego.................. 7 1.1.2 Pasek narzędziowy.................... 10 1.1.3 Obszar operacyjny.................... 10 1.1.4 Pole Node Meaning.................... 10 1.1.5 Obszar Debug....................... 11 1.1.6 Pole Notebook....................... 12 1.1.7 Pasek statusu....................... 12 1.1.8 Zakładka graph NFA................... 12 1.1.9 Zakładka Explanations.................. 13 1.2 Działanie............................. 13 2 Mechanizm dopasowywania w Perlu 15 2.1 Zasady dopasowania....................... 16 2.2 Mechanizm wycofywania..................... 22 2.2.1 Dopasowanie chciwe................... 24 2.2.2 Dopasowanie leniwe.................... 28 2.3 Dopasowanie opcjonalne..................... 33 3 Implementacja 34 3.1 Zastosowane narzędzia...................... 34 3.2 Kod źródłowy........................... 35 3.3 Instalacja............................. 36 3.4 Działanie............................. 36 3.4.1 Konfiguracja........................ 37 3.4.2 Pliki z przykładami.................... 38 3.4.3 Obsługa sygnałów..................... 39 3.4.4 Pakowanie komponentów................. 39 3.4.5 Końcowe procedury.................... 39 3.4.6 Kompilacja........................ 40 3.4.7 Analiza.......................... 41 3.4.8 Wizualizacja........................ 42 3.5 Problemy techniczne....................... 44 2

Podsumowanie 47 Spis literatury 48

Wstęp Wyrażenia regularne, potocznie zwane regexami (z ang. regular expression), pozwalają na zwięzły i elastyczny opis zbiorów słów. Mechanizm wyrażeń regularnych jest wykorzystywany przez szereg popularnych języków programowania (Perl, Java, Ruby, Python), edytory tekstów (sed, grep, find, vi, emacs), systemy bazodanowe, itp. Dla każdego wyrażenia regularnego można zbudować odpowiadający mu automat skończony. Automaty dzielimy na deterministyczne automaty skończone (DFA, z ang. Deterministic Finite Automata) oraz niedeterministyczne automaty skończone (NFA, z ang. Nondeterministic Finite Automata). Mechanizm DFA działa szybciej, lecz w przeciwieństwie do mechanizmu NFA nie pozwala na implementację takich cech jak przechwytywanie, przewidywanie, bądź też użycie kwantyfikatorów niezachłannych. Z kolei mechanizmy NFA można podzielić na dwie podklasy: tradycyjne oraz POSIX-owe [1]. W praktyce spotyka się również łączenie obu mechanizmów w zależności od wyrażenia i kontekstu, aby wykorzystać najlepsze cechy obu z tych mechanizmów. Jeden z najprostszych pomysłów polega na przeszukaniu łańcucha silnikiem DFA w celu sprawdzenia, czy dopasowanie w ogóle się powiedzie, a następnie wykorzystanie wolniejszego mechanizmu NFA dla określenia wyniku dopasowania. W języku interpretowanym Perl wyrażenia regularne są implementowane w oparciu o mechanizm niedeterministycznych automatów skończonych. T.Kojm podjął próbę stworzenie narzędzia pozwalającego na obserwację działania mechanizmu wyrażeń regularnych w procesie dopasowania wzorca w Perlu [2]. Tak powstał program revis (ang. Regular Expression VISualiser) napisany w Perlu, którego działanie opiera się na analizie danych dostarczonych przez interpreter Perla uruchomiony w trybie debuggowania wyrażeń regularnych. Program ten dostarcza tekstowego interfejsu użytkownika dzięki wykorzystaniu modułu Curses. Zasadniczym celem niniejszej pracy jest rozwinięcie tego pomysłu przez zbudowanie interfejsu graficznego w oparciu o bibliotekę GTK w wersji 2 dla Perla 5.8.x (program grevis), ulepszenie wizualizacji procesu dopasowania, poszerzenie możliwości programu revis oraz usunięcie jego ograniczeń i błędów. Program grevis może stanowić pomoc dla wszystkich próbujących nauczyć się stosować wyrażenia regularne w Perlu. Otóż zwykle programiści piszący skrypty perlowe muszą testować używane wyrażenia regularne w oddzielnych programach. Często nie rozumieją oni do końca jak przebiega dopasowanie i dlatego skazani są na stosowanie metody prób i błędów. W takich sytuacjach pomocne może być użycie debuggera 4

SPIS TREŚCI 5 wyrażeń regularnych. Jego działanie można zobaczyć uruchamiając w powłoce np. takie polecenie: perl -e use re debug; \ "aaaaaaaaaa" =~ /a?a?a?a?a?a?a?a?a?a?aaaaaaaaaa/ Debugger dostarcza dużej ilości informacji, których analiza i zrozumienie nie jest łatwe. Zadaniem programu grevis jest przekształcenie tych danych do postaci wygodnej i zrozumiałej dla zwykłego użytkownika. Istnieje szereg projektów, które pomagają w budowie i debuggowaniu wyrażeń regularnych. Warto wymienić następujące: KOMODO 1, REGE- XBUDDY 2, regex-coach 3, regex editor 4, EditPad Pro 5, Expresso 6, rozszerzenia dla Microsoft Visual Studio 7, rozszerzenia dla Eclipsa 8. W przeciwieństwie do tych programów grevis ukazuje krok po kroku procesu dopasowania w połączeniu ze zmianami w stanach automatu NFA. Treść tej pracy zawiera opis wszystkich elementów GUI aplikacji grevis, przykłady użycia programu, wraz z analizą wyświetlanych informacji oraz dokumentację dotyczącą implementacji projektu. Do pracy została dołączona płyta CD-ROM, na której umieszczone zostały źródła pracy w formacie LaTeX oraz program grevis. Oprogramowanie zostało udostępnione na zasadach GNU General Public License. 1 http://aspn.activestate.com 2 http://www.regexbuddy.com 3 http://weitz.de/regex-coach 4 http://myregexp.com 5 http://www.regular-expressions.info/editpadpro.html 6 http://www.ultrapico.com/expresso.htm 7 http://www.microsoft.com/visualstudio/en-us/default.mspx 8 http://www.eclipse.org