Didactische ondersteuning van theoretische informatica



Vergelijkbare documenten
In dit hoofdstuk introduceren we de hoofdrolspelers van het college: eindige automaten.

Formeel Denken. Herfst Contents

Het kwadraat van een tweeterm a+b. (a+b)²

Werkblad TI-83: Over de hoofdstelling van de integraalrekening

Reguliere Expressies en Automaten: Overzicht

Opdrachten bij hoofdstuk 2

Bekijk onderstaand algoritme recalg. Bepaal recalg(5) en laat zien hoe u het antwoord hebt verkregen.

opgaven formele structuren procesalgebra

HOOFDSTUK 1 BASISBEGRIPPEN

Hoofdstuk 2: Bewerkingen in R

INTERVIEWEN 1 SITUATIE

Formeel Denken 2012 Uitwerkingen Tentamen

Grammatica s en Ontleden Deeltentamen 1 (van 2)

Het reëel getal b is een derdewortel van het reëel getal a c. Een getal en zijn derdewortel hebben hetzelfde toestandsteken.

Vorig college. IN2505-II Berekenbaarheidstheorie. Intermezzo / kleine opfriscursus. Deterministische eindige automaten (DFA) College 6

Zelfstudie practicum 1

edatenq is een toepassing die de ondernemingen de mogelijkheid biedt om hun statistische aangiften in te vullen en door te sturen via internet.

Inhoud leereenheid 13. Integreren. Introductie 125. Leerkern 126. Samenvatting 149. Zelftoets 150

Getallenverzamelingen

1.3 Wortels. x x 36 6 = x = 1.5 Breuken. teller teller noemer noemer. Delen: vermenigvuldig met het omgekeerde.

gefragmenteerde bestanden Bestand Bestand Bestand Bestand Bestand a Bestand a Bestand a Bestand a Bestand Bestand Bestand Bestand c Bestand a

Snelstartgids Access Online: Betalingen en Rapportage

Hoofdstuk 0: algebraïsche formules

edatenq is een toepassing die de ondernemingen de mogelijkheid biedt om hun statistische aangiften in te vullen en door te sturen via internet.

Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Donderdag 20 mei uur

6.0 INTRO. 1 a Bekijk de sommen hiernaast en ga na of ze kloppen = = = = = 2...

6.4 Rekenen met evenwichtsreacties

Werkkaarten GIGO 1184 Elektriciteit Set

11 Wiskundige denkactiviteiten: digitale bijlage

Voorbereidende opgaven Kerstvakantiecursus

Breuken en verhoudingen

1.3 Wortels. = a b c. x = 1.5 Breuken. teller teller. noemer noemer. Delen: vermenigvuldig met het omgekeerde.

Hoofdstuk 2 DE STELLING VAN PYTHAGORAS

Hoofdstuk 8 Beslissen onder risico en onzekerheid

Pak jouw passer en maak de afstand tussen de passerpunten 3 cm.

Voorbereidende opgaven Stoomcursus

Praktische Opdracht Lineair Programmeren V5

Moderne wiskunde: berekenen zwaartepunt vwo B

Inhoud college 7 Basiswiskunde

ja, studentaccount is groter dan standaard account en nog steeds gratis. Wel moet je mail adres van school en website van school invoeren ter controle

De formule van het opslagpercentage voor alle producten luidt:

Henk Pijls Korteweg-de Vries Instituut voor Wiskunde Universiteit van Amsterdam

JOB-monitor 2016 Vragenlijst

Wat doen we met de vuile was?

GBK Leden profiel beheer

De oppervlakte van de rechthoek uit de vorige opgave hangt van dezelfde variabelen af.

Aanzet 1 tot een document van parate kennis en vaardigheden wiskunde 1 ste graad

REKENEN MACHTEN MET. 5N4p EEBII 2013 GGHM

Opgave 1 Stel je eens een getal voor, bijvoorbeeld: 504,76. a b c

Routeplanning middels stochastische koeling

Praktische opdracht Optimaliseren van verpakkingen Inleidende opgaven

Voorbereidende opgaven Stoomcursus

Bijlage agendapunt 7: Inhoudelijke planning overlegtafels 2015

1 Vlaamse Wiskunde Olympiade : Eerste Ronde.

1a Een hoeveelheid stof kan maar op één manier veranderen. Hoe?

Discrete Wiskunde. D. Bruin J.M. Jansen

Merkwaardige producten en ontbinden in factoren

Continuïteit en Nulpunten

De tijdens de training aangeboden ski-imitaties gebruiken we zowel als middel maar ook als doel.

KATHOLIEKE UNIVERSITEIT LEUVEN SUBFACULTEIT ECONOMIE EN BEDRIJFSWETENSCHAPPEN HUB HANDELSWETENSCHAPPEN

Kennismaken. Wie zitten er bij jou in de klas? 4. Welke afspraken maak jij met je klas? 8

Het Poincarévermoeden in dimensie 2 Erik Visse

Wat is goed voor een mooie, gezonde huid? Kruis de goede antwoorden aan. weinig slaap. buitenlucht goede voeding. ontspanning veel fruit eten

Automaten & Complexiteit (X )

a = 1 b = 0 k = 1 ax + b = lim f(x) lim

Inhoudsopgave. Inhoud

HOEVEEL KEREN WIJ UIT? 5.1 Keren we altijd alles uit? WANNEER KEREN WIJ NIET UIT? WAT DOEN WIJ BIJ FRAUDE? 9.1 Wat zijn de gevolgen van fraude?

Route F - Desert. kangoeroerat

Handreiking voor zij-instroom in de zuivelindustrie

Lijn, lijnstuk, punt. Verkennen. Uitleg. Opgave 1

Nieuwe internet radio eigenschap

Inhoudsopgave. Voorwaarden Hypotheek SpaarVerzekering Model Delta Lloyd Levensverzekering NV. 1 Wat bedoelen wij met? 3

Grammatica s en Ontleden Deeltentamen 1 (van 2) Dinsdag 18 december 2007 (15:00-17:00)

Rapportage Enquête ondergrondse afvalinzameling Zaltbommel

V = gap E zdz ( 4.1B.1 ) f (z, ξ)dξ = g(z).

1. Differentiaalvergelijkingen

Krommen en oppervlakken in de ruimte

Inhoud. Inleiding 5. 1 Handgereedschappen Verbindingen Elektrische techniek Pompen Verbrandingsmotoren 138

Riante bouwkavel met ruime bebouwingsmogelijkheden

3 Snijpunten. Verkennen. Uitleg

StyleView Scanner Shelf

Examen VWO. wiskunde B1,2 (nieuwe stijl)

Hoofdstuk 5: Vergelijkingen van de

Assertiviteit. Agressiviteit

Natuurlijke getallen op een getallenas en in een assenstelsel

Hoofdstuk 4 : Ongelijkheden

1 Uw secretaresse vraagt u wie u voor deze sessie wilt uitnodigen. Aan welke mensen denkt u?

Nakomelingen van rendieren kunnen een paar uur na de geboorte al met de kudde meerennen. Zijn rendieren nestvlieders of nestblijvers?

Erasmus MC Junior Med School

Rekenregels van machten

Ontleden? Leuk! Inleiding. Opzet van deze lesbrief. Door Henk Jongsma, hoofdauteur Op Niveau tweede fase

Inhoudsopgave LES 1: NAAR SCHOOL LES 2: VRIJE TIJD LES 3: THUIS LES 4: NEDERLAND LES 5: TOEKOMST 126

100 sin(α) kn. 3,0 m. De horizontale en verticale componenten van de kracht van 100 kn worden in dit voorbeeld bepaald:

De noodzakelijke voorwaarden voor een evenwicht kunnen derhalve samengevat worden als: F = 0 geen resulterende kracht in x richting.

Parate kennis wiskunde

U heeft een vraag gesteld over de cliënttevredenheidsonderzoeken Wmo en Jeugd. Via deze memo wil ik u hierover informeren.

Digitale informatieverwerking

Datastructuren en algoritmen Uitwerkingen voorbeeldserie huiswerkopgaven

Welke van de volgende beweringen over de kromme snavel is of welke zijn juist voor jonge flamingo's? Maak het hokje met een juiste bewering zwart.

Wiskunde voor 2 havo. Deel 1. Versie Samensteller

Transcriptie:

Didctische ondersteuning vn theoretische informtic Annelotte BOLLEN promotor: Prof. dr. Frnk NEVEN Acdemiejr 2004-2005 Eindverhndeling voorgedrgen tot het ekomen vn de grd licentit in de informtic fstudeervrint multimedi

Voorwoord Je studies fronden is het einde vn een levensfse. An de universiteit gt dit geprd met de grootste opgve die je ls student moet volrengen, nmelijk het mken vn een thesis. Het schrijven vn dit voorwoord is een moment om even stil te stn en chteruit te kijken. Het liep niet steeds vn een leien dkje en ik esef eens te meer dt er nog zoveel te ontdekken vlt, de opleiding omvt slechts het topje vn de ijserg. Alles leren is nmelijk onmogelijk... zeker in een steeds vernieuwende en groeiende opleiding ls informtic. Mr door de rede vorming die een universiteit niedt, ezit ik nu de sis die ik nodig he om te groeien in mijn vk. Tijdens mijn studie he ik, dnkzij de professoren en ssistenten, kennis kunnen vergren vn de verschillende deelgeieden in de informtic. In het ijzonder wil ik mijn promotor ednken voor zijn rd en geduld tijdens het verloop vn mijn thesis. Ik leerde niet lleen over een vkgeied; door de jren heen he ik mezelf kunnen ontplooien en leerde ik de deelgeieden vn het mens-zijn kennen: tl-, communictie- en reltievrdigheden. Hiervoor en ik dnk verschuldigd n l mijn vrienden, in het ijzonder n Kristien, John en Frederik. Zij zorgden mee voor de schitterende tijd die ik in Diepeneek gehd he. Het is dnkzij de levendige discussies, de lnge nchten en de ervring smen te werken met nderen dt ik geworden en wie ik nu en. Zonder de steun en het geduld vn mijn vriend Tom zou ik enkele mnden geleden de hnddoek in de ring heen gegooid. Dnkzij hem en ik echter lijven volhouden en kon ik door het os de omen terug zien. Mr niet lleen drvoor moet ik hem ontzettend ednken. Ook voor het nlezen vn deze thesis en zinvolle ontspnning kon ik steeds op hem rekenen. En ls ltste, mr zeker niet ls minste, wil ik grg mijn ouders ednken. Zij heen me de mogelijkheid geoden om te studeren, zij lijven onvoorwrdelijk in mij geloven en steunen me in lles wt ik doe. Bednkt! Annelotte Bollen 10 ugustus 2005

Inhoudsopgve 1 Inleiding 5 1.1 Doelstellingen vn het vk Theoretische Informtic.............. 5 1.2 Methodisch-didctische sisprincipes...................... 6 1.3 Indeling vn de thesis............................... 7 2 Grmmtic s en prsing 8 2.1 Didctische wenken................................. 8 2.2 Contextvrije grmmtic.............................. 9 2.2.1 Vooreeld.................................. 9 2.3 Prsing....................................... 10 2.3.1 Wt is prsing............................... 10 2.3.2 Het CYK prsing lgoritme........................ 10 2.3.3 Vooreeld.................................. 12 2.4 CYK prsing in JFLAP.............................. 15 2.4.1 Wt is JFLAP?............................... 15 2.4.2 Werkwijze voor CYK prsing in JFLAP................. 16 2.5 Oefeningen..................................... 21 2.5.1 Oefening 1................................. 21 2.5.2 Oefening 2................................. 21 2.6 Besluit........................................ 21 3 Stringutomten en reguliere expressies 22 3.1 Didctische wenken................................. 22 3.2 Thompson-constructie............................... 23 3.2.1 Vooreeld: Thompson-utomt voor ( ( ) ) +.......... 24 3.3 Glushkov-constructie................................ 26 3.3.1 Vooreeld: Glushkov-utomt voor ( ( ) ) +.......... 27 3.3.2 Expliciete constructie vn Glushkov-utomt voor E = ( ( ) ) + 29 3.3.3 Eigenschppen vn de Glushkov-utomt................ 30 3.4 Vergelijking..................................... 31 3.4.1 Vn Thompson nr Glushkov...................... 31 3.4.2 Vn Glushkov nr Thompson...................... 32 3.4.3 Geruik vn de twee constructies..................... 33 3.5 Besluit........................................ 33 2

4 Boomutomten 34 4.1 Didctische wenken................................. 34 4.1.1 Differentitie................................ 34 4.1.2 Integrtie.................................. 34 4.2 Boomutomten.................................. 35 4.2.1 Boomutomt en stringutomt.................... 35 4.2.2 Definitie................................... 35 4.2.3 Vooreeld: oolense formules [13]................... 36 4.3 Toepssing XML en DTD............................. 37 4.3.1 XML: extensile Mrkup Lnguge................... 37 4.3.2 Equivlentie vn XML........................... 39 4.3.3 DTD s.................................... 41 4.3.4 DTD ls oomutomt.......................... 44 4.3.5 Onduelzinnig gedefinieerde DTD s................... 46 4.4 Toepssing XPth................................. 49 4.4.1 Stndrd XPth.............................. 49 4.4.2 Core XPth................................. 51 4.4.3 Minimle XPth expressies en oomutomten............. 54 4.4.4 Core XPth en oomutomten..................... 56 4.4.5 Equivlentie vn XPth expressies.................... 57 4.5 Besluit........................................ 61 5 Stringutomten en pttern mtching 62 5.1 Didctische wenken................................. 62 5.2 Wt is pttern mtching.............................. 62 5.3 Overzicht vn lgoritmen............................. 63 5.3.1 Nïeve oplossingsmethode......................... 63 5.3.2 Knuth Morris Prtt lgoritme (KMP).................. 64 5.3.3 Het Boyer-Moore lgoritme (BM)..................... 66 5.3.4 Zoeken met een deterministische eindige utomt........... 68 5.3.5 Forwrd DAWG Mtching lgorithm (Suffix utomton)............................. 69 5.3.6 Reverse Fctor lgorithm......................... 71 5.4 Besluit........................................ 72 6 Finite stte dventures 73 6.1 Didctische wenken................................. 73 6.2 Wt zijn finite stte dventures?......................... 73 6.3 Methode....................................... 74 6.3.1 Inleiding................................... 74 6.3.2 Level 0................................... 75 6.3.3 Level 1................................... 75 6.3.4 Level 2................................... 76 6.3.5 Level 3................................... 77 6.3.6 Level 4................................... 77 6.4 Besluit........................................ 78 3

7 XViz, een visulistietool voor XPth 79 7.1 Didctische wenken................................. 79 7.2 XViz......................................... 79 7.2.1 Werkwijze.................................. 79 7.2.2 Relties................................... 81 7.2.3 Het progrmm............................... 81 7.3 Besluit........................................ 82 8 Besluit vn deze thesis 83 4

Hoofdstuk 1 Inleiding 1.1 Doelstellingen vn het vk Theoretische Informtic De term theoretische informtic is de nm die gegeven wordt n het deelgeied vn de informtic dt het meest gemeen heeft met de toegepste wiskunde. Theoretische informtici zijn zij die ezig zijn met het zoeken vn fundmentele oplossingen voor lgemene informticvrgstukken. Het is niet moeilijk om in te zien dt we hier spreken over een zeer uitgereid onderwerp. De studenten vn het tweede chelorjr informtic krijgen een inleiding in de theoretische informtic. Jmmer genoeg ontreekt het veel studenten n motivtie voor deze cursus. Dit komt wrschijnlijk door het strcte niveu, de hoge moeilijkheidsgrd en het ontreken vn een duidelijke link met de prktijk. Deze thesis trcht n de hnd vn didctische sisprincipes de oorzk vn dit proleem te chterhlen en reikt enkele oplossingen n. Vi het trjectoek [1] worden n de leerlingen de doelstellingen vn het vk theoretische informtic meegedeeld. Nst prktische doelstellingen zols toepssingen en implementtie zijn dit de hoofddoelstellingen: 1. De student leert de sisprincipes vn reguliere tlen 2. De student leert de sisprincipes vn context-vrije tlen 3. De student leert de sisprincipes vn eslisrheid en oneslisrheid Bij reguliere tlen krijgen de studenten ook een definitie voor reguliere expressies en de Thompson-constructie. Verder wordt er gesproken over stringtlen en stringutomten. Onder de toepssingen vn context-vrije tlen en grmmtic s vlt ook het CYK prsing lgoritme dt de studenten moeten kennen en kunnen toepssen. 5

1.2 Methodisch-didctische sisprincipes Er is heel wt geschreven rond didctiek en de methodiek vn onderwijzen. In het oek Psyhodidctiek en het onderwijs [4] eschrijft Jos Thielemns de elngrijkste methodischdidctische sisprincipes. Dit zijn vuistregels voor de leerkrcht; hij of zij wordt verwcht hier op elk moment in zijn onderwijsprktijk zoveel mogelijk rekening mee te houden. Een opsomming vn deze principes met een korte uitleg: 1. Anschouwelijkheid Om te vermijden dt studenten enkel kunnen prten over de leerstof, zonder deze ooit in werkelijkheid gezien te heen, is het elngrijk dt de leerinhouden zintuiglijk wrneemr voorgesteld worden. Het komt er dus op neer zoveel mogelijk nschouwelijk mteril te geruiken in plts vn verle uitleg. 2. Activiteit Leerlingen moeten ctief etrokken worden ij het leerproces. De leerkrcht fungeert dus ls egeleider en stimultor terwijl hij ook moet zorgen voor een gunstig klimt. 3. Belngstelling De leerkrcht moet de studenten trchten te motiveren en te interesseren voor de leerstof. Dit kn ijvooreeld door vooreelden te geruiken uit hun leefwereld en n te knopen ij hun ervringen. Ook is het elngrijk om de studenten geregeld (tussentijds) successen te lten eleven om hun elngstelling te ehouden. 4. Individulistie en differentitie Er moet rekening gehouden worden met het feit dt geen twee studenten gelijk zijn en dus ook het leerproces verschilt tussen hen. Dit kn op verschillende niveu s: in doelstellingen: minimle en uitreidingsdoelen in elngstelling: leerlingen kiezen zelf een deel teksten uit of een onderwerp voor een project in methodische npk: fwisseling in didctische werkvormen in tempo: ijvooreeld door zelfstndig werk Te vk wordt het hele onderwijsproces fgestemd op de gemiddelde student wrdoor zowel zwkkere ls sterkere studenten tekortgedn worden. 5. Integrtie Kennis moet een geïntegreerd geheel worden en geen smenrpsel vn feiten en weetjes. Door vernden te leggen, verschillende oefeningen te lten mken en te wijzen op de mogelijke toepssingen kn nieuwe kennis geïntegreerd worden met reeds verworven kennis. Deze kennis komt zowel uit dit vk ls uit ndere vkken. 6. Geleidelijkheid Onderwijsdoelstellingen kunnen slechts geleidelijk gereliseerd worden. Werk vn eenvoudige nr complexere doelstellingen en zorg ervoor dt de stp tussen voorkennis en te verwerven kennis niet te groot wordt. 6

1.3 Indeling vn de thesis Het eerste deel vn deze thesis, hoofdstuk 2, omvt de ontwikkeling vn een tool die de studenten de kns geeft met ehulp vn vooreelden het CYK prsing lgoritme te doorgronden. De edoeling is het lgoritme te visuliseren (nschouwelijk voor te stellen) en enkele oefeningen voor de studenten n te ieden. Als uitreiding op de Thompson-constructie wordt de Glushkov-constructie eschreven in hoofdstuk 3 en wordt er een vergelijking gemkt tussen deze twee constructies voor utomten vn reguliere expressies. Stringutomten worden uitgereid tot oomutomten in hoofdstuk 4 wrij de rede toepssingsmogelijkheden (XML, DTD, XPth) worden endrukt en uitgelegd n de hnd vn vooreelden. Er wordt in dit hoofdstuk ook nog eens teruggegn nr de eerder geziene Glushkov-constructie en het nut ervn voor de definitie vn onduelzinnige DTD s. In het volgende hoofdstuk (5) vn deze thesis wordt er een link gelegd tussen de theoretische informtic en het vk lgoritmen en dtstructuren. An de hnd vn verschillende lgoritmen wordt duidelijk hoe stringutomten kunnen helpen ij pttern mtching. Het voorltste hoofdstuk eschrijft een lterntieve toepssing vn utomten, formele tlen en erekenrheid: finite stte dventures. Tot slot wordt in hoofdstuk 7 een korte inleiding gegeven tot XViz, een visulistietool voor XPth expressies. Alle hoofdstukken in deze thesis evtten een korte inleiding wrin didctische wenken opgesomd worden. Deze evtten persoonlijke opmerkingen over de huidige cursus, tips voor het nrengen vn de leerstof in de kls en hulpmiddelen voor het motiveren vn de studenten. 7

Hoofdstuk 2 Grmmtic s en prsing 2.1 Didctische wenken Zowel ij de theorie vn reguliere tlen en utomten (Hoofdstuk 1 vn Sipser[3]) ls ij grmmtic s (Hoofdstuk 2 vn Sipser[3]) kn de docent de link leggen tussen de ntuurlijke tl en linguïstiek (of progrmmeertlen en hun syntxis) enerzijds en de mthemtische definities vn woord, tl en grmmtic nderzijds. Hierdoor mkt de docent een nknoping ij reeds estnde kennis, dit pst in het integrtieprincipe en kn zorgen voor een sneller inzicht in de nieuwe structuren. Er moet echter steeds op gelet worden dt de studenten ook de strcte, mthemtische termen egrijpen en zich niet lindstren op deze vooreelden of toepssingen. Dit kn door ijvooreeld veel verschillende vooreelden te geven wrij er geen directe link is met de ntuurlijke tl of een progrmmeertl zols een drnkutomt, schuifdeur, vonturen (zie ook hoofdstuk 6),... In dit hndoek wordt er in het eerste hoofdstuk mper gesproken over de ntuurlijke tl of progrmmeertlen, terwijl in de oude cursus [2] zeer veel vooreelden uit de ntuurlijke tl en progrmmeertl werden geruikt. Het is drom ook n te rden een gulden middenweg te zoeken. Zo kn de docent het vooreeld vn progrmmeertlen ls rode drd door de theorie geruiken wrij voor elk nieuw egrip (woord, tl, utomt, reguliere expressie, grmmtic, fleidingsoom,...) een vooreeld gegeven kn worden voor een progrmmeertl die de studenten kennen. De uitwerking vn deze vooreelden is terug te vinden in de oude cursus [2]. In hoofdstuk 6 vn het trjectoek [1] wordt het CYK prsing lgoritme uitgelegd n de studenten. Hierij worden jmmer genoeg enkele sisprincipes overschreden. Als eerste kunnen we zeggen dt de nschouwelijke voorstelling vn het lgoritme ontreekt. Ondnks het stukje pseudo-code dt uitgeschreven werd, is het niet duidelijk voor de student wt er in elke stp vn het lgoritme geeurt, lt stn wt dit etekent voor het prsen. Als oplossing hiervoor gn we in deel vn de thesis een tool implementeren die de studenten meer inzicht moet geven in het CYK prsing lgoritme door de nschouwelijke voorstelling. Het tweede sisprincipe dt overschreden wordt, is dt vn geleidelijkheid. Door het verweven vn de uitleg over CYK prsing, fleidingsomen en expressieomen is het niet meer duidelijk voor de student wt hij n het leren is. De uitleg over expressieomen zou volledig 8

los vn de uitleg vn het prsing lgoritme gegeven moeten worden, in een prte sectie. Ook moet ervoor gezorgd worden dt de figuren niet te veel door elkr lopen zodt het overzicht op de cursus ehouden lijft. Op die mnier kn de student eerst leren wt fleidingsomen zijn en hoe deze te vinden, om in een volgende stp te gn kijken nr de expressieomen. Als derde ontreken er opgven wrij de student zelf de fleidingsoom vn een eplde string moet eplen n de hnd vn het lgoritme. De studenten zijn ijgevolg niet ctief ezig met de leerstof. De tool die we gn implementeren helpt ook hierin ngezien de studenten in kortere tijd meer oefeningen kunnen mken. Ook worden enkele vooreeldoefeningen ngereikt. 2.2 Contextvrije grmmtic Een contextvrije grmmtic [6] of CVG estt uit de volgende delen: Een verzmeling T vn terminle symolen Een verzmeling N vn niet-terminle symolen; N en T zijn disjunct Een verzmeling producties vn de vorm: X 0 X 1...X n wrij X 0 N en X i N T voor i = 1,..., n En een strtsymool S N Een string s over T voldoet n de grmmtic ls we s kunnen fleiden uit het strtsymool S met ehulp vn de producties. In elke stp vn de fleiding vervngen we een niet-terminl symool X 0 in de huidige string door de rechterknt X 1...X n vn een productie die X 0 ls linkerknt heeft. 2.2.1 Vooreeld Beschouw de CVG G = (N, T, P, S) met N = S, A, B, T =, en P de verzmeling vn producties: S S B S A A S A AA B S B BB Een fleiding voor de string wrij de vetgedrukte vrielen telkens herschreven worden volgens een productie uit G hieroven: S B BB SB B B S S B B BB B S S removl of B S S removl of 9

2.3 Prsing 2.3.1 Wt is prsing Een woord dt voldoet n een contextvrije grmmtic kn grfisch voorgesteld worden met ehulp vn een prse tree of fleidingsoom. Voor een contextvrije grmmtic G = (V, Σ, P, S) en een woord w Σ voldoet de fleidingsoom n: de wortel is geleld met het strtsymool S elke inwendige knoop is geleld met een vriele in V ls een inwendige knoop geleld is met A en n kinderen heeft die vn links nr rechts geleld zijn met B 1...B n, dn moet A B 1...B n een productie zijn in P een met gelelde knoop is het enige kind vn zijn ouder de conctentie vn de lels vn de lderen, vn links nr rechts, is gelijk n w. De fleidingsoom voor de string voor de CVG uit 2.2.1 ziet er uit zols in figuur 2.1. S B B B S S Figuur 2.1: Afleidingsoom voor 2.3.2 Het CYK prsing lgoritme Het CYK prsing lgoritme [1], genoemd nr Cocke, Younger en Ksmi, is een lgoritme dt voor een gegeven contextvrije grmmtic (CVG) in Chomsky normlvorm (CNF) de fleidingsoom zoekt voor een eplde invoer indien deze invoer voldoet n de grmmtic. Zij G = (V, Σ, P, S) een CVG in CNF. Alle producties vn P zijn dus vn de vorm A BC of A, met A, B en C in V en in Σ. Zij w een woord vn L(G) en zij w = n. Omdt het lege woord niet tot G kn ehoren is n > 0. Voor 1 i j n noteren we nu w ij voor w s deelwoord w[i]...w[j]. Verder zeggen we A in V en voor 1 i j n, dt D[A, i, j] wr is ls A G w ij en onwr nders. Door de vorm vn de producties geldt ls i = j dt D[A, i, j] = D[A, i, i] wr is ls en slechts ls A w[i] tot P ehoort. Als i < j drentegen dn is D[A, i, j] wr ls en slechts ls er een B en C in V estn met A BC een productie vn P en een getl k met i k < j zodt D[B, i, k] en D[C, k + 1, j] eide wr zijn. 10

Als we de driedimensionle mtrix D op ovenstnde mnier erekenen, moeten we er steeds voor zorgen dt de componenten ingevuld worden volgens stijgende lengte vn de deelwoorden. Met ndere woorden, dt D[B, i, k] en D[C, k + 1, j] reeds geëvlueerd zijn voor we D[A, i, j] evlueren. Het woord vn lengte n wordt nvrd ls D[S, 1, n] wr is. Om de fleidingsoom te construeren, moeten we nog ijhouden welke producties geruikt worden. Hiervoor mken we de driedimensionle mtrices L,M en R n. Bij een productie A BC evt L[A, i, j] het eerste (linkse) symool in het rechterlid (B), R[A, i, j] evt het rechtse symool (C) en M[A, i, j] evt de positie wr we het woord opsplitsen (k). De erekening vn de mtrices D, L, M en R in pseudo-code is te zien in figuur 2.2. for A in V do egin //initilistie vn de mtrices for i := 1 to n do for j := i to n do D[A,i,j] := flse; //producties vn de vorm A -> for i := 1 to n do if A -> w[i] in P then D[A,i,j] := true end; for j := 2 to n do for i := j - 1 downto 1 do for A ->BC in P do for k := i to j - 1 do if D[B,i,k] nd D[C,k + 1, j] then egin D[A,i,j] := true; L[A,i,j] := B; M[A,i,j] := k; R[A,i,j] := C; end Figuur 2.2: Pseudo code voor de erekening vn D,L,M en R De uiteindelijke fleidingsoom creëren we door eerst de mtrices D, L, M en R te erekenen en vervolgens, ls D[S, 1, n] wr is, recursief een oom te tekenen. Mk hiervoor eerst een knoop m n ls wortel en voer dn de stppen uit op de volgende pgin met ls strtwrden: A = S, i = 1 en j = n. 11

1. Lel de knoop m met A 2. Als i = j: mk een nieuwe knoop n ls enige kind vn m lel de knoop n met w[i] 3. Als i j mk twee nieuwe knopen n 1 en n 2 ls kinderen vn m g terug nr 1. voor m = n 1, A = L[A, i, j], i = i en j = M[A, i, j] g terug nr 1. voor m = n 2, A = R[A, i, j], i = M[A, i, j] + 1 en j = j 2.3.3 Vooreeld Beschouw het woord en de CVG in CNF met volgende producties: S AB A AC A C B BD B D De eerste for-lus vn het lgoritme zl de mtrices D,L,M en R initiliseren en de unire producties verwerken. Hierdoor worden lle wrden op flse gezet ehlve de volgende: D[A, 1, 1] en D[A, 2, 2] worden true omdt de productie A rechtstreeks toe te pssen is op de eerste en tweede letter vn het woord. Hetzelfde geldt voor D[C,1, 1] en D[C,2, 2] met de productie C. D[B,3, 3] en D[B,4, 4] worden true omdt de productie B rechtstreeks toe te pssen is op de derde en vierde letter vn het woord. Hetzelfde geldt voor D[D, 3, 3] en D[D, 4, 4] met de productie D. Dit kunnen we grfisch voorstellen zols in figuur 2.3. A C A C B D B D Figuur 2.3: Afleidingsoom voor Als we vervolgens het lgoritme verder uitvoeren, worden er nog zes wijzigingen doorgevoerd in de mtrices: i = 1, j = 2 en k = 1 voor de productie A AC: D[A, 1, 2] wordt true met L = A, R = C en M = 1. Dit etekent dt we de productie A AC kunnen toepssen op de string (vn positie 1 tot positie 2 met splitsing n positie 1; dus op en ), rekening houdend met de reeds verwerkte (unire) producties. (figuur 2.4) 12

A A C B D B D Figuur 2.4: D[A,1,2] i = 2, j = 3 en k = 2 voor de productie S AB: D[S, 2, 3] wordt true met L = A, R = B en M = 2. Dit etekent dt we de productie S AB kunnen toepssen op de string (vn positie 2 tot positie 3 met splitsing n positie 2; dus op en ), rekening houdend met de reeds verwerkte (unire) producties. (figuur 2.5) S A C A B B D Figuur 2.5: D[S,2,3] i = 1, j = 3 en k = 2 voor de productie S AB: D[S, 1, 3] wordt true met L = A, R = B en M = 2. Dit etekent dt we de productie S AB kunnen toepssen op de string (vn positie 1 tot positie 3 met splitsing n positie 2; dus op en ), rekening houdend met de reeds verwerkte producties. Hierij wordt dus de productie A AC geruikt op. Dit weten we doordt D[A, 1, 2] true is met L = A, R = C en M = 1. (figuur 2.6) S A B B D A C Figuur 2.6: D[S,1,3] 13

i = 3, j = 4 en k = 3 voor de productie B BD: D[B,3, 4] wordt true met L = B, R = D en M = 3. Dit etekent dt we de productie B BD kunnen toepssen op de string (vn positie 3 tot positie 4 met splitsing n positie 3; dus op en ), rekening houdend met de reeds verwerkte producties. Hierij worden enkel unire producties geruikt. (figuur 2.7) B A C A C B D Figuur 2.7: D[B,3,4] i = 2, j = 4 en k = 2 voor de productie S AB: D[S, 2, 4] wordt true met L = A, R = B en M = 2. Dit etekent dt we de productie S AB kunnen toepssen op de string (vn positie 2 tot positie 4 met splitsing n positie 2; dus op en ), rekening houdend met de reeds verwerkte producties. Hierij wordt dus de productie B BD geruikt op. Dit weten we doordt D[B,3, 4] true is met L = B, R = D en M = 3. (figuur 2.8) i = 1, j = 4 en k = 2 voor de productie S AB: D[S, 1, 4] wordt true met L = A, R = B en M = 2. Dit etekent dt we de productie S AB kunnen toepssen op de string (vn positie 1 tot positie 4 met splitsing n positie 2; dus op en ), rekening houdend met de reeds verwerkte producties. Hierij wordt dus de productie A AC geruikt op, en B BD geruikt op. Dit weten we doordt D[A, 1, 2] en D[B,3, 4] true zijn. (figuur 2.9) N deze stppen is D[S, 1, 4] dus true en kunnen we zeggen dt de string nvrd werd. De prse tree ziet er uit zols in figuur 2.9. S A C A B B D Figuur 2.8: D[S,2,4] 14

S A B A C B D 2.4 CYK prsing in JFLAP 2.4.1 Wt is JFLAP? Figuur 2.9: D[S,1,4] JFLAP [5] is een pkket met grfische tools die geruikt kunnen worden ls hulp ij het leren vn de sisconcepten vn formele tlen en utomtentheorie. Ik werk met de versie vn jnuri 2004, JFLAP4.010. In deze versie worden files opgeslgen met ehulp vn XML. Deze versie geruikt Jv 1.4. In JFLAP kunnen we werken met de volgende concepten: Reguliere tlen Voor het voorstellen vn reguliere tlen kunnen we eindige deterministische (EDA) en niet-deterministische (ENDA) utomten, reguliere tlen en reguliere grmmtic s definiëren. We kunnen een ENDA omzetten in een EDA of een minimle EDA. Ook kunnen we de conversie uitvoeren vn ENDA nr reguliere expressie of reguliere grmmtic en terug. Verder kn de geruiker de utomten testen met invoer. Dit kn in één keer, per stp of met meervoudige invoer. Context vrije tlen Voor het eschrijven vn context vrije tlen eschikt JFLAP over twee structuren: de pushdown-utomt en de context vrije grmmtic. Ook voor deze structuren heeft JFLAP conversies voorzien. Zo kn je ijvooreeld een context vrije grmmtic omzetten in Chomsky normlvorm, in een pushdown-utomt of in een LL of LR prse tle. Een pushdown-utomt kn steeds terug omgezet worden in een contextvrije grmmtic. JFLAP evt origineel drie mogelijkheden voor het prsen vn een grmmtic. De optie Brute Force Prse ekijkt elke mogelijke sustitutie vn vrielen en duurt drdoor het lngst. De twee ndere opties, LL(1) en LR(1) prsing, werken met een prse tle die geruikt wordt voor het verwerken vn de invoer. Turing mchines Ook voor Turing mchines zijn er verscheidene mogelijkheden. Omdt dit uiten het ereik vn mijn thesis vlt, g ik hier niet verder op in. 15

2.4.2 Werkwijze voor CYK prsing in JFLAP Het invoegen vn een grmmtic is een vn de functionliteiten vn JFLAP. Ik he een module ingevoegd die het mogelijk mkt een grmmtic te prsen met ehulp vn het CYK prsing lgoritme uit prgrf 2.3.2. In deze sectie wordt de werkwijze uitgelegd. 1. Grmmtic Als eerste moet de geruiker de grmmtic definiëren wrmee hij wil werken. Hiervoor klikt hij in het strtscherm (figuur 2.10) op Grmmr. Vervolgens worden de producties ingevuld: de linkerknt vn de productie komt in de eerste kolom, het pijltje volgt utomtisch in de tweede kolom, en de rest wordt in de derde kolom ingevuld. Het ntl producties is oneperkt, er wordt utomtisch een nieuwe regel toegevoegd. Als vooreeld heen we in JFLAP de volgende grmmtic ingevuld: (zie ook in figuur 2.11) S ABA B BB A B Figuur 2.10: Strtscherm vn JFLAP Figuur 2.11: Grmmtic invoegen 16

2. Chomsky Normlvorm Als de grmmtic is ingevuld, kunnen we hem omzetten in Chomsky normlvorm door in het menu Convert de optie Trnsform Grmmr te kiezen (figuur 2.12). Dit is een stndrdfunctionliteit vn JFLAP. Voor meer uitleg kn het Help -menu gerdpleegd worden. Voor CYK prsing is het voldoende ineens lle stppen uit te voeren ( Do All ) en de grmmtic te exporteren ( Export ) (figuur 2.13). We ekomen dn de volgende grmmtic in CNF: (zie ook figuur 2.14) S AC C BA A B BB B Figuur 2.12: Menukeuze voor omzetten in CNF Figuur 2.13: Omzetten in CNF 17

Figuur 2.14: De grmmtic in CNF 3. Scherm Vervolgens kiest de geruiker de optie CYK Prse in het menu Input (figuur 2.15). Dr krijgt hij een nieuw tld te zien wrop de grmmtic linksoven zichtr lijft. Rechtsoven kn de geruiker het te prsen woord ingeven in het veld Input. Beschouw hier ls input. Figuur 2.15: De menukeuze voor CYK prsing 4. Initilistie vn de mtrices Om het prsen te strten, wordt op de Strt -knop geklikt of op return gedrukt n het invoeren vn het woord. Als eerste worden de mtrices D, L, M, en R geïnitiliseerd en de unire producties toegevoegd n de mtrices. In figuur 2.16 zien we linksonder de mtrix D. Angezien het een driedimensionle mtrix is, wordt deze opgesplitst in tweedimensionle mtrices per niet-terminl symool. De eerste mtrix die getoond wordt is dus D[S] indien S het strtsymool is. De wrden vn L, M en R worden lter toegevoegd n de respectieve cellen vn D wr D[A, i, j] true is. De etekenis vn de unire producties kn rechts fgelezen worden in de grfische voorstelling. Voor elk symool in het woord wordt ngegeven vnuit welke non-terminls we dit symool rechtstreeks kunnen ereiken. Deze grfische voorstelling komt overeen met die vn het uitgewerkte vooreeld in sectie 2.3.3. 18

Figuur 2.16: N de initilistie 5. Stp voor stp prsen N de initilistie klikt de geruiker herhldelijk op de Step -knop, hierij wordt het prsing lgoritme stp voor stp verdergezet. In de sttuslk ondern kn men de wrde vn de vrielen i en j flezen en kn men zien welke productie net is eschouwd. Indien een stp een wijziging in de mtrices tot gevolg heeft, zl dit ook resulteren in een nieuwe grfische voorstelling. Deze voorstelling estt, net zols in sectie 2.3.3, uit een os wrij de grootste oom overeenkomt met de net ehndelde productie en de kleine omen de in deze stp onereikre symolen zijn. In figuur 2.17 is net de stp uitgevoerd met j = 4, i = 2 en ls productie C BA. Dit houdt in dt men de sustring w[2]..w[4] (met w = in dit vooreeld geeft dt de sustring ) kn prsen door te strten ij een knoop C met ls kinderen B en A. Als we in de tel (C[2, 4]) gn kijken zien we dt er gesplitst moet worden n het derde symool. Dit etekent dn weer dt we vnuit B de sustring kunnen fleiden en vnuit A het symool. Voor knoop A geeft dt een rechtstreekse fleiding, voor knoop B wordt er in de tel B gekeken op de positie vn de sustring ([2, 3]). Hier zien we dt de kinderen B en B zijn, elk met een rechtstreekse fleiding vn het symool. Deze fleiding toont slechts een sustring vn het woord, de eerste letter is nog steeds onereikr. 19

Figuur 2.17: N een willekeurige stp 6. Resultt Als het lgoritme kn eslissen over de string, wordt in de sttuslk ondern ngegeven of de string nvrd werd of niet. In gevl vn nvrding kn de geruiker uit de tellen de fleidingsoom trchten f te leiden. Door nog éénml op de Step - knop te klikken, wordt de correcte prse tree getoond. In figuur 2.18 ziet u dt de string nvrd werd door de grmmtic en ziet u de fleidingsoom. Figuur 2.18: Het eindresultt 20

2.5 Oefeningen Angezien in de cursus geen enkele oefening werd opgenomen voor het CYK prsing lgoritme worden er hier een pr toegevoegd: 2.5.1 Oefening 1 Beschouw de volgende grmmtic: S S B S A A S A AA B S B BB Zet deze grmmtic om in CNF indien nodig en prse de volgende strings met ehulp vn JFLAP: Geef de fleidingsoom indien deze estt, welke woorden worden nvrd? 2.5.2 Oefening 2 Beschouw de volgende grmmtic: S AB S BC A AA A B BB B C CC C c Zet deze grmmtic om in CNF indien nodig en prse de volgende strings met ehulp vn JFLAP: cc c c ccc Geef de fleidingsoom indien deze estt, welke woorden worden nvrd? 2.6 Besluit Met de geïmplementeerde uitreiding voor JFLAP kunnen studenten stp per stp het CYK prsing lgoritme doorlopen zonder drij lles op ppier te moeten ijhouden. Hierdoor kunnen ze op korte tijd verschillende vooreelden of herhldelijk hetzelfde vooreeld uitwerken wrdoor ze zelf een eeld kunnen vormen vn het lgoritme. Ook is het mogelijk dt de student zelf de prse-tree heeft erekend zonder tool, en met ehulp vn de tool een zelfcontrole uitvoert. Het progrmm levert de student n de ene knt een tijdswinst op en n de ndere knt is hij of zij ctief etrokken ij het leergeeuren. Het lgoritme wordt eter onthouden ls de student zelf chter de werkwijze kn komen. De visuele voorstelling vn elke stp tijdens het prsen (tussentijdse prse trees) zorgt ook voor meer diepgng. 21

Hoofdstuk 3 Stringutomten en reguliere expressies 3.1 Didctische wenken In het hndoek voor het vk theoretische informtic [3] wordt in het eerste hoofdstuk n de lezer uitgelegd hoe hij een utomt kn mken vn een reguliere expressie. Dit lgoritme wordt niet enoemd en komt voor in een ewijs. Studenten die dit ewijs estuderen weten ijgevolg niet dt het hier gt over de Thompson-constructie. Indien lter nr deze constructie verwezen wordt heen de studenten ijgevolg geen nknoping. Verder eschouwen veel studenten ewijzen ls de moeilijkste elementen uit een cursus. Ze zullen geneigd zijn het ewijs, en ijgevolg ook de constructie, slechts oppervlkkig te ekijken en verliezen hun elngstelling. Positief is de nwezigheid vn voldoende vooreelden en hun grfische voorstelling (nschouwelijkheid), lsook de opgve in het trjectoek voor zelf utomten te construeren vn enkele reguliere expressies (ctiviteit). Ook het opsplitsen vn het ewijs in twee richtingen mkt het voor de student eenvoudiger te egrijpen en steunt op het principe vn geleidelijkheid. De rest vn dit hoofdstuk geeft een vergelijking tussen twee verschillende utomten vn reguliere expressies. De Thompson-utomt, die we hieroven reeds vermeld heen, en de Glushkov-utomt. Deze theorie wordt toegepst in sectie 4.3.5 op pgin 46. Alles wordt uitgelegd n de hnd vn eenzelfde vooreeld zodt de verschillen tussen de twee utomten duidelijk zichtr zijn. 22

3.2 Thompson-constructie In de definitie vn reguliere expressies (zie referenties [2, 3]) wordt niet expliciet vermeld wrom deze expressies juist regulier heten. We weten wel dt een tl regulier heet ls er een utomt estt die deze tl nvrdt. Wt is dn het vernd tussen reguliere tlen en regulieren expressies? Zols we l kunnen vermoeden is een tl lleen regulier ls er een reguliere expressie is die deze tl eschrijft. Ook is de tl die een reguliere expressie eschrijft steeds een reguliere tl. We kunnen dus vn elke reguliere expressie een eindige deterministische utomt mken en vn elke eindige utomt een reguliere expressie. Dit doen we met ehulp vn de Thompson-constructie [7, 9]. Het sisidee vn de Thompson-constructie is het opsplitsen vn de reguliere expressie in minimle deelexpressies die gecomineerd worden met ehulp vn de unie, conctentie en Kleene ster. In figuur 3.1 ziet u deze inductieve constructie die ls resultt een eindige utomt geeft met de volgende eigenschppen: Er is slechts één egintoestnd wruit enkel pijlen vertrekken Er is slechts één eindtoestnd wrin enkel pijlen toekomen Elke toestnd heeft mximl twee inkomende en twee uitgnde pijlen De utomt is ten hoogste drie keer zo groot ls de reguliere expressie De utomt zit vol -trnsities. Figuur 3.1: De Thompson-constructie voor een reguliere expressie E: (.) E = (.) E = (c.) E =, Σ (d.) E = F + G (e.) E = F G en (f.) E = F 23

3.2.1 Vooreeld: Thompson-utomt voor ( ( ) ) + We ouwen de utomt voor ( ) + op ls volgt: 1. zie figuur 3.2 2. zie figuur 3.3 3. ( ) zie figuur 3.4 4. ( ) zie figuur 3.5 5. ( ( ) ) + zie figuur 3.6 Figuur 3.2: Thompson-utomt voor Figuur 3.3: Thompson-utomt voor Figuur 3.4: Thompson-utomt voor ( ) 24

Figuur 3.5: Thompson-utomt voor ( ) Figuur 3.6: Thompson-utomt voor ( ( ) ) + 25

3.3 Glushkov-constructie In [8] espreken Brüggemnn Klein en Wood een ndere methode om een reguliere expressie om te zetten in een eindige utomt, de zogenmde Glushkov-constructie [10]. Beschouw volgende definities voor elke tl L: first(l) = { er is een woord w zodnig dt w L} lst(l) = { er is een woord w zodnig dt w L} f ollow(l, ) = { er zijn woorden v, w zodnig dt vw L} voor elk symool voor elke expressie E reiden we deze sets uit tot: first(e) = first(l(e)) enz. en voor elke expressie E: sym(e) is de verzmeling vn lle symolen in de expressie E E is een mrkering vn E wrij elk symool een suscript meekrijgt zodnig dt lle symolen vn E slechts éénml voorkomen Π is de verzmeling vn lle symolen met suscript sym(e ) E t is de nottie voor de expressie zonder suscripts met ook t het symool zonder zijn suscript. Bijvooreeld voor de expressie E = (+) wordt sym(e) = {, }, E = ( 1 + 1 ) 2 2 en Π evt onder ndere 1, 2, 1 en 2. Ook kunnen we zeggen dt t 1 = t 2 =. We definiëren de Glushkov-utomt G E = (Q E, Σ, δ E, q I, F E ) vn een expressie E dn ls volgt: Q E = sym(e ) {q I }; De toestnden zijn de symolen vn de expressie met suscripts, uitgereid met een nieuwe egintoestnd q I. δ E (q I, ) = {x x first(e ), x t = } Σ Vnuit de egintoestnd vertrekken er pijlen nr lle toestnden die overeenkomen met een symool dt ls eerste gelezen mg worden. Dit symool, zonder suscript, wordt ls lel n de pijl toegekend. δ E (x, ) = {y y follow(e, x), y t = } x sym(e ) en Σ Voor lle toestnden x (met suscript) en lle symolen (zonder suscript) vertrekt er een pijl met lel vnuit toestnd x nr lle toestnden y die overeenkomen met een symool dt kn volgen op x in E en wrij y t =. F E = lst(e ) {q I } ls L(E) en F E = lst(e ) nders De eindtoestnden komen overeen met de toestnden vn lle symolen wr de expressie op kn eindigen, uitgereid met q I ls de lege string ook nvrd wordt. 26

Om de Glushkov-constructie strks te kunnen vergelijken met de Thompson-constructie vn 3.2 gn we deze op gelijkrdige wijze, inductief, definiëren. Deze constructie vn de Glushkov-utomt wordt de Chmprnud-constructie genoemd en is terug te vinden in figuur 3.7 uit [7, 9]. Figuur 3.7: De inductieve constructie vn Chpmprnud vn de Glushkov-mchine voor een reguliere expressie E: (.) E = (.) E = (c.) E =, Σ (d.) E = F +G (e.) E = F G en (f.) E = F 3.3.1 Vooreeld: Glushkov-utomt voor ( ( ) ) + We ouwen de utomt voor ( ( ) ) + inductief op. Deze constructie vrgt eigenlijk niet dt we de expressie mrkeren zols dt wel gevrgd wordt ij de niet-inductieve constructie. Toch gn we ook hier eerst de expressie mrkeren. Hierdoor vermijden we dt we ij het smenvoegen vn de deelutomten toestnden moeten hernoemen. Een utomt kn nmelijk geen twee toestnden met dezelfde nm heen. 27

We ouwen dus de Glushkov-utomt voor de gemrkeerde expressie E = ( 1 1( 2 2) )+: 1. 1 zie figuur 3.8, 2 is nloog 2. 1 zie figuur 3.9, 2 is nloog 3. 1 1 zie figuur 3.10, 2 2 nloog 4. ( 2 2) zie figuur 3.11 5. 1 1( 2 2) zie figuur 3.12 6. ( 1 1( 2 2) ) + zie figuur 3.13 q I 1 Figuur 3.8: Glushkov-utomt voor 1 q I 1 Figuur 3.9: Glushkov-utomt voor 1 q I 1 1 Figuur 3.10: Glushkov-utomt voor 1 1 q I 2 2 Figuur 3.11: Glushkov-utomt voor ( 2 2) 28

q I 1 1 2 2 Figuur 3.12: Glushkov-utomt voor 1 1( 2 2) q I 1 1 2 2 Figuur 3.13: Glushkov-utomt voor ( 1 1( 2 2) ) + 3.3.2 Expliciete constructie vn Glushkov-utomt voor E = ( ( ) )+ Voor de duidelijkheid erekenen we de utomt voor onze vooreeldexpressie ook op nietinductieve wijze. Dit is zols de Glushkov-utomt eerst gedefinieerd werd in dit hoofdstuk met ehulp vn first, lst en follow. E = ( 1 1( 2 2) ) First(E ) = { 1, 1 } Lst(E ) = { 1, 2 } Follow(E, 1 ) = { 2, 2 } Follow(E, 2 ) = { 2, 2 } Follow(E, 1 ) = { 1, 1 } Follow(E, 2 ) = { 2, 2 } 29

Glushkov-utomt G = (Q,Σ, δ, q I, F) met: Q = sym(e ) {q I } = {q I, 1, 2, 1, 2 } δ(q I, ) = {x x first(e ), x t = } Σ δ(q I, ) = { 1 } δ(q I, ) = { 1 } δ(x, ) = {y y follow(e, x), y t = } x sym(e ) en Σ δ( 1, ) = { 2 } δ( 1, ) = { 2 } δ( 1, ) = { 1 } δ( 1, ) = { 1 } δ( 2, ) = { 2 } δ( 2, ) = { 2 } δ( 2, ) = { 2 } δ( 2, ) = { 2 } F = lst(e ) {q I } ls L(E) en F = lst(e ) nders F = {q I, 1, 2 } Angezien dit een vrij eenvoudige reguliere expressie is, kunnen we de elementen vn f irst, lst en f ollow door oservtie uit de expressie hlen. Als de expressie lnger en/of meer ingewikkeld is, zl dit niet meer zo voor de hnd liggen. In [9] wordt er een methode ngereikt om deze verzmelingen in polynomile tijd te erekenen, inductief op de lengte vn de expressie. Drij wordt geruik gemkt vn de prse tree voor de expressie (zie 2.3). We gn hier niet verder in op deze constructie ngezien we l een methode esproken heen om de Glushkov-utomt inductief te erekenen wrij deze verzmelingen niet meer nodig zijn. 3.3.3 Eigenschppen vn de Glushkov-utomt Als we de Glushkov-utomt en zijn constructie ekijken kunnen we volgende eigenschppen noteren: Er is slechts één egintoestnd wruit enkel pijlen vertrekken Er zijn geen stille overgngen Voor elke toestnd q heen de inkomende pijlen steeds hetzelfde lel De grootte vn de Glushkov-mchine is in het slechtste gevl kwdrtisch ten opzichte vn de lengte vn de reguliere expressie De Glushkov-utomt evt geen -trnsities 30

3.4 Vergelijking In de vorige secties eschreven we twee verschillende lgoritmen om vn een gegeven reguliere expressie een eindige utomt te mken. Alhoewel de resulterende utomten op het eerste zicht heel verschillend zijn, kunnen we vn elke Thompson-utomt de overeenkomstige Glushkov-utomt fleiden. Ook kunnen we de Thompson-utomt vinden met ehulp vn de Glushkov-fleiding. Merk drvoor in de eerste plts op dt zowel de Thompson ls de Glushkov-utomt homogene utomten zijn, dt wil zeggen dt in elke toestnd enkel pijlen met een en hetzelfde lel kunnen innenkomen. Het vernd tussen deze twee constructies wordt ook uitgelegd in de litertuur [7, 9]. 3.4.1 Vn Thompson nr Glushkov Als we de Thompson-utomt estuderen, emerken we de vele stille overgngen of - trnsities. In de Glushkov-constructie drentegen vinden we geen enkele stille overgng. Drom zoeken we een methode om deze stille overgngen te verwijderen. Angezien een Thompson-utomt homogeen is zullen de knopen wrin -trnsities nkomen (-knoop) ook verwijderd mogen worden (er komt nmelijk geen enkele pijl meer in n, deze toestnden zijn dus onereikr). Het verwijderen vn deze knopen en pijlen komt er op neer elke innenkomende pijl vn een -knoop rechtstreeks te verinden met lle uitgnde pijlen, zols ook zichtr is in figuur 3.14. Let wel op wnneer de verwijderde -knoop een eindtoestnd ws, dn worden lle toestnden vn wruit we deze knoop konden ereiken, ook eindtoestnden. Figuur 3.14: De elimintie vn trnsities en -knopen Wnneer we deze elimintie toepssen op een Thompson-utomt zodt er geen stille overgngen meer voorkomen, merken we dt we exct de Glushkov-utomt ekomen (op de enming vn toestnden n). Dit wordt ewezen in [7]. Vooreeld Pssen we deze elimintie toe op de Thompson-utomt vn 3.2.1 op pgin 24, ekomen we de Glushkov-utomt vn 3.3.1 op pgin 27 mits hernoemen vn de toestnden. 31

3.4.2 Vn Glushkov nr Thompson Kunnen we dn ook een mnier vinden om vn de Glushkov-utomt nr de Thompsonutomt te gn? In tegenstelling tot de vorige constructie moeten we hierij informtie (pijlen en toestnden) toevoegen n de utomt in plts vn verwijderen. Dit is echter niet zo evident mr in [7] heen ze een oplossing gevonden. In plts vn de Glushkovutomt vn de reguliere expressie uit te reiden, gn ze eerst de reguliere expressie zelf uitreiden om vervolgens de Glushkov-utomt vn deze uitgereide expressie te construeren. Zij τ een nieuw symool dt nog niet in het lfet Σ zit, de τ-uitreiding vn een reguliere expressie E over Σ is dn een reguliere expressie E τ over Σ {τ} met (inductief): E τ = if E = E τ = τ if E = E τ = if E = E τ = ((τ F τ ) + (τ G τ )) τ if E = F + G E τ = (F τ τ) G τ if E = F G E τ = ((τ F τ ) ) τ if E = F E τ = (F τ ) if E = (F) Indien we deze uitreiding toepssen op de reguliere expressie en vervolgens de τ vervngen door zl de resulterende Glushkov-utomt exct gelijk zijn n de Thompson-utomt voor de originele reguliere expressie. Vooreeld Beschouw de reguliere expressie ( ( ) ) + die we ook geruikten ls vooreeld voor de Thompson (3.2.1) en Glushkov (3.3.1) constructies. Uit deze expressie kunnen we de τ-uitreiding ls volgt fleiden: ( ( ) ) + ( ( ) ) + τ (τ( ( ) ) + ττ)τ (τ(( )τ (( )τ) ) + ττ)τ (τ(((τ) τ)τ (((τ) τ)τ) ) + ττ)τ (τ(((τ) τ)τ (τ((τ) τ)τ) τ) + ττ)τ (τ((((τ) τ)τ)τ(τ((τ) τ)τ) τ) + ττ)τ (τ((τ) τττ(τ(τ) ττ) τ) + ττ)τ E = en E = en E = E = F + G E = F G twee ml met F = en G = E = F twee ml met F = E = F met F = (((τ) τ)τ) E = F G overtollige hkjes verwijderen 32

Wrij we voor de duidelijkheid F G schrijven ls FG vn het moment we de uitreiding heen toegepst op het product. Pssen we vervolgens op deze uitgereide reguliere expressie de Glushkov-constructie toe, dn krijgen we exct de Thompson-utomt voor de originele reguliere expressie ( ( ) ) +. Deze wordt getoond in figuur 3.6 op pgin 25. 3.4.3 Geruik vn de twee constructies Kenmerkend voor Thompson-utomten is de nwezigheid vn -trnsities. Een Thompsonutomt is een eindige niet-deterministische utomt met -trnsities, of een EN DA. Deze utomten zijn niet eenvoudig te implementeren ngezien het ereiken vn de eindtoestnd fhngt vn het volgen vn de juiste -trnsities. Deze constructie is echter zeer geschikt voor didctisch geruik ngezien het een eenvoudige constructie is die grfisch zeer duidelijk voor te stellen is. Glushkov-utomten drentegen evtten geen -trnsities en zijn drdoor eter geschikt voor implementtie. Ze zijn echter minder geschikt ls didctisch vooreeld omwille vn de meer wiskundige endering vn de constructie. 3.5 Besluit De Thompson en Glushkov-constructies zijn twee lgoritmen om een reguliere expressie om te zetten in een utomt. Ondnks de mogelijkheid vi de ene constructie de ndere utomt te ekomen heen ze niet dezelfde utomt ls resultt. Zo zien we ijvooreeld dt de Thompson-utomt ltijd groter of gelijk is n de Glushkov-utomt, ngezien we enkel toestnden elimineren en niet ijmken om de Glushkov-utomt te ereiken. Anderzijds is de Thompson-utomt eperkt tot drieml de grootte vn de reguliere expressie en de Glushkov tot het kwdrt vn de grootte. Hierdoor kunnen we fleiden dt, voor expressies met lengte groter ls drie, de Glushkov-utomt ook steeds kleiner is ls drie ml de lengte vn de reguliere expressie. Om eplde eigenschppen vn de reguliere expressie te chterhlen, is het soms nodig de Glushkov-utomt te construeren. Zo eplt het l dn niet deterministisch zijn vn de Glushkov-utomt of een reguliere expressie l dn niet one-unmiguous is (zie ook sectie 4.3.5). Met de resultten in dit hoofdstuk heen we een lterntieve mnier gevonden voor de erekening vn de Glushkov-utomt. Indien de expressie unmiguous is, kunnen we de Glushkov-utomt zelfs in lineire tijd erekenen. 33

Hoofdstuk 4 Boomutomten 4.1 Didctische wenken 4.1.1 Differentitie De technologie stt niet stil. Er worden constnt nieuwe technieken ontwikkeld en vereteringen doorgevoerd in estnde technologiën. Bij het schrijven vn deze thesis zijn sommige onderwerpen misschien zelfs l verouderd. De stringutomten die gisteren ngeleerd werden zijn vndg misschien nog nuttig mr worden morgen weer vervngen door oomutomten. Boomutomten lijken momenteel l vn groot nut voor het modelleren vn reltief nieuwe tekstformten zols XML en zullen lter zeker nog meer toepssingen krijgen. In het informticonderwijs stn docenten voor de opdrcht deze nieuwe ontwikkelingen n te leren n de studenten zonder reeds estnde cursussen en onderwerpen te schrppen. Oude technieken zijn nmelijk een goede sis om op verder te ouwen en zullen ook niet zomr verdwijnen. Mr hierdoor gn cursussen ntuurlijk lijven groeien en verhoogt de studietijd per vk. Dit geeft de docent echter een idele kns om n differentitie te doen. Alle studenten krijgen dezelfde sis mr ndt deze sis gezien is, kn de docent de keuze n de student lten. Dit kn enerzijds innen éń vk in één jr geeuren door de student ls opdrcht een ntl topics te lten estuderen uit een lijst opgesteld door de docent (keuzeonderwerp). Anderzijds kunnen uitreidingen gegeven worden in een keuzevk het jr of semester n het sisvk, wrdoor studenten enkel dieper ingn op onderwerpen in het door hun gekozen domein. Ntuurlijk zijn ook projecten en groepswerken idele methoden om studenten n verschillende onderwerpen te lten werken. 4.1.2 Integrtie De theorie vn oomutomten steunt in de eerste plts op het vk Theoretische Informtic. Mr ls we nr de mogelijke toepssingen ervn kijken, komen we in het vrwter vn Technologie vn Multimedisystemen en -softwre [12]. Dit onderwerp iedt docenten vn eide vkken de mogelijkheid de kennis vn hun studenten eter te integreren. Studenten zijn nogl snel geneigd om in vkjes te lijven denken en zullen niet snel vernden en mogelijke toepssingen zien tussen kennis uit twee verschillende vkken. 34

Voor intergrtie tussen twee verschillende vkken is het wel zeer elngrijk dt docenten overleg plegen. Hierdoor kunnen inconsistenties vermeden worden. Ook moet er duidelijk gesteld worden welke voorkennis uit welke vkken gehld kn worden, en wnneer de vkken gegeven worden. Indien er ijvooreeld gesteund wordt op kennis uit een vk vn twee jr ervoor, is het misschien n te rden deze eerst op te frissen voorleer er verder op te ouwen. 4.2 Boomutomten 4.2.1 Boomutomt en stringutomt Een oomutomt (tree utomton) is een uitreiding vn een eindige cceptor (finite stte utomton). Een eindige cceptor ereikt een nieuwe toestnd vnuit één stt met het lezen vn één term (krkter) en eslist over de ccepttie vn een woord of string. Een oomutomt ereikt echter een nieuwe toestnd vnuit meerdere toestnden en leest meerdere termen tegelijk in. Een oomutomt eslist over de ccepttie vn een oom. Net zols ij string utomten estn er deterministische en niet-deterministische oomutomten. Een nieuw verschijnsel is het estn vn ottom-up en top-down utomten. Het verschil zit in het doorlopen vn de oom; een ottom-up utomt leest een oom vnuit de lderen nr de wortel terwijl een top-down utomt zl vertrekken vn de wortel. Verder estn er ook two-wy oomutomten wrij er zowel omhoog (scending of ottom-up) ls omlg (descending of top-down) gewerkt kn worden.[18]. Zols in [12] eschreven, kunnen we een XML estnd voorstellen ls een oom. Deze omen zijn geen inire omen ngezien elke knoop meerdere kinderen kn heen, het ntl kinderen per knoop kn verschillen en we vk niet eens weten hoeveel kinderen een knoop uiteindelijk zl evtten. De oplossing hiervoor is het geruik vn unrnked trees [16]. Bij unrnked trees kunnen de knopen een onepld ntl kinderen heen. In deze tekst spreken we enkel vn oomutomten voor unrnked trees. 4.2.2 Definitie Een niet-deterministische ottom-up oomutomt (NBTA) [17] is een tupel B = (Q, Σ, δ, F) met: Q: een eindige verzmeling toestnden Σ: een eindig lfet F Q: een verzmeling eindtoestnden δ: een functie Q Σ 2 Q zodt δ(q, ) een reguliere string tl over Q is voor elke Σ en q Q. 35

De semntiek vn de utomt B op een oom t, genoteerd ls δ (t), is inductief gedefinieerd: ls t slechts estt uit 1 knoop (een ld) met lel dn is δ (t) gelijk n {q ε δ(q, )} ls t een oom is met in de wortel en t 1,..., t n ls kinderen (zols in Figuur 4.1) dn is δ (t) gelijk n {q q 1 δ (t 1 ),..., q n δ (t n ) en q 1,..., q n δ(q, )}. t 1... t n Figuur 4.1: De oom t Een oom t over het lfet Σ wordt nvrd door de utomt B ls δ (t) F. Vervolgens kunnen we zeggen dt een oomutomt B deterministisch is ls voor lle Σ en q, q Q, q q geldt dt δ(q, ) δ(q, ) =. Net ls ij utomten over woorden zijn twee oomutomten equivlent ls ze dezelfde tl nvrden. We kunnen dus het volgende noteren: De oomutomten M1 en M2 zijn equivlent ls en slechts ls L(M1) = L(M2). Uit [19] weten we verder nog dt de tl, nvrd door een oom, een oomtl is en dt oomtlen gesloten zijn onder unie, complement en doorsnede. 4.2.3 Vooreeld: oolense formules [13] Beschouwen we het lfet Σ = {0, 1,, } en omen wrij 0 en 1 enkel in de lderen mogen voorkomen en en enkel in de knopen die geen ld zijn. Deze omen stellen oolense formules voor. We kunnen nu een oomutomt B definiëren dt exct deze omen nvrdt: B = {Q,Σ, δ, F } wrij Q = {0, 1}, Σ = {0, 1,, }, F = {1} en: δ(0, 0) = ε δ(1, 1) = ε δ(0, 1) = δ(1, 0) = δ(1, ) = 1 δ(0, ) = 0 δ(0, ) = (0 + 1) 0(0 + 1) δ(1, ) = (0 + 1) 1(0 + 1) 36

Deze utomt geeft het lel 1 (0) n lderen met lel 1 (0). Een knoop met lel ( ) krijgt het lel 1 (0) ls lle kinderen vn de knoop het lel 1 (0) heen. Deze utomt ccepteert een oom ls het lel vn de wortel 1 is. Zie ook Figuur 4.2 en Figuur 4.3. Voor de duidelijkheid, enkel in de eerste twee trnsities δ(0, 0) = ε en δ(1, 1) = ε worden de 0 en 1 uit het lfet geruikt (ls tweede prmeter), de ndere 0-en en 1-en zijn de toestnden 0 en 1. 1 0 1 0 0 0 1 0 Figuur 4.2: Een oom onder het lfet Σ vn 4.2.3 1 1 0 1 0 1 0 0 1 0 1 0 Figuur 4.3: Een ccepterende run vn de utomt vn 4.2.3 4.3 Toepssing XML en DTD 4.3.1 XML: extensile Mrkup Lnguge XML of extensile Mrkup Lnguge [11, 12] is een eenvoudig tekstformt fgeleid vn SGML (ISO 8879). XML verindt tekst met de etekenis (structuur en soort inhoud) ervn. De etekenis vn tekst wordt weergegeven in tgs, vergelijkr met HTML. Een tg estt uit twee delen: een strt-tg ijvooreeld <titel> en een eind-tg </titel>. Zo kunnen we de titel vn deze prgrf ls volgt eschrijven: <titel>xml: extensile Mrkup Lnguge</titel> Als er niets tussen de tgs komt te stn, kunnen we de twee tgs comineren: <titel/>. Deze tgs worden element-tgs genoemd en ze definiëren de mrkup. Er zijn geen stndrd tgs, dus mogen we zelf de nm en etekenis vn een tg kiezen. Net zols ij HTML kunnen tgs genest worden. Bijvooreeld: <?XML version="1.0"?> <uteur> <voornm>annelotte</voornm> <chternm>bollen</chternm> </uteur> 37