Inhoud leereenheid 1. Introduction to the theory of computation. Introductie 13. Leerkern 15. Zelftoets 22. Terugkoppeling 23
|
|
- Helena de Jonge
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Inhoud leereenheid 1 Introduction to the theory of computation Introductie 13 Leerkern 15 1 Mathematical preliminaries and notation 15 2 Three basic concepts 16 3 Some applications 19 4 Kennismaking met JFLAP 19 Zelftoets 22 Terugkoppeling 23 1 Uitwerking van de opgaven 23 2 Uitwerking van de zelftoets 31 12
2 Leereenheid 1 Introduction to the theory of computation I N T R O D U C T I E Strings en talen zijn voor de theorie van formele talen wat elementen en verzamelingen zijn voor de verzamelingenleer, of getallen voor de rekenkunde: de objecten waar de theorie over gaat. In deze leereenheid maakt u kennis met deze objecten en alle basisbegrippen die in deze cursus aan bod komen. Voor de beheersing van deze kernbegrippen is het goed om veel te oefenen. Dat doen we met pen en papier en ook met behulp van het elektronische gereedschap JFLAP (Java Formal Language and Automata Package), een interactieve softwaretool voor het visualiseren en experimenteren met formele talen en automaten. Aan het einde van deze leereenheid maakt u kennis met JFLAP. LEERDOELEN Na het bestuderen van deze leereenheid wordt verwacht dat u van een taal kunt aangeven of deze eindig of oneindig is de concatenatie van twee strings en van twee talen kunt bepalen het verschil kunt aangeven tussen de lege string, de lege taal en de taal met alleen de lege string het complement, het spiegelbeeld, de n-de macht, de Kleeneafsluiting en de positieve afsluiting van een taal kunt geven met gebruik van de op strings, talen en verzamelingen gedefinieerde operaties, talen nauwkeurig kunt beschrijven zulke beschrijvingen kunt interpreteren een grammatica met behulp van een viertupel kunt definiëren de productieregels van een grammatica kunt gebruiken om een afleiding van een string te geven kunt omschrijven wat een deterministische en een niet-deterministische automaat is twee voorbeelden van toepassingen van de theorie van formele talen en automaten kunt geven de betekenis kunt geven van de volgende kernbegrippen uit deze leereenheid: alfabet, symbool, string, taal, formele taal, prefix, suffix, substring, grammatica, automaat, accepter, transducer. OU 13
3 Formele talen en automaten Terminologie Engels accepter automaton (automata) cycle derivation derive deterministic difference edge empty string finite, infinite formal language grammar input file intersection language move nondeterministic path positive closure powerset production proof by contradiction quadruple reverse sentence sentential form set star-closure start state storage subset terminal symbol transition function union variable vertex vertices walk Nederlands automaat automaat (automaten) cykel afleiding afleiden deterministisch verschil kant, zijde, overgang lege string eindig, oneindig formele taal grammatica invoerbestand, invoerstring doorsnede taal beweging niet-deterministisch pad positieve afsluiting machtsverzameling productieregel bewijs uit het ongerijmde viertupel spiegelbeeld, omgekeerde zin partiële afleiding, zinsvorm verzameling Kleene-afsluiting, afsluiting startsymbool toestand geheugen deelverzameling eindsymbool overgangsfunctie vereniging hulpsymbool knooppunt, knoop knooppunten, knopen wandeling Studeeraanwijzingen Bij deze leereenheid hoort chapter 1 van het tekstboek van Linz. Section 1.1 geldt als verplichte voorkennis. Het bestuderen van paragraaf 1 is daarom facultatief. Lees section 1.1 door of bestudeer paragraaf 1 als u uw voorkennis wilt opfrissen. 14 OU
4 Leereenheid 1 Introduction to the theory of computation Bij deze leereenheid hoort ook materiaal op de cd-rom bij het tekstboek van Linz. De studielast van deze leereenheid bedraagt circa 8 uur, waarvan 6 uur voor de bestudering van de theorie en 2 uur voor het oefenen met JFLAP. L E E R K E R N Studeeraanwijzing Lees in Linz de introductie op de chapter. 1 Mathematical preliminaries and notation Facultatief Proof techniques Deze paragraaf correspondeert met section 1.1 in Linz en is facultatief. In deze paragraaf worden basisprincipes uit de wiskunde in vogelvlucht uitgelegd. In subsection Proof techniques in Linz wordt gesproken over een sequence of statements P1, P2, Daarmee wordt bedoeld dat er een bewering P is waarin een natuurlijk getal voorkomt, zoals bijvoorbeeld n = n(n + 1) / 2. Met P1 bedoelen we dan de bewering 1 = 1(1 + 1) / 2, met P2 bedoelen we = 2(2 + 1) / 2 enzovoort. Je kunt dit inderdaad zien als een rij beweringen, maar je zou ook kunnen zeggen dat het één bewering is voor willekeurige n dat maakt voor de rest van het verhaal niet uit. Het idee achter inductie is als volgt. Als je weet dat bijvoorbeeld P1, P2 en P3 waar zijn èn dat vanaf dat moment (dus voor n 3) geldt dat Pn+1 volgt uit Pn, dan weet je dat Pn geldt voor alle n. Je kunt dan namelijk uit de waarheid van P3 de waarheid van P4 afleiden, en daaruit die van P5 enzovoort. Er zijn drie stappen te herkennen in een inductiebewijs: de basis: het controleren van de bewering voor een eindig aantal startwaarden, de inductiehypothese: de aanname dat Pn geldt voor een zekere n, en de inductiestap: het bewijs dat Pn+1 volgt uit Pn. In sommige inductiebewijzen worden de afzonderlijke onderdelen (basis, inductiehypothese en inductiestap) duidelijk en in deze volgorde aangegeven, maar het kan ook voorkomen dat de basis pas achteraf wordt gecontroleerd en dat de inductiehypothese niet expliciet genoemd wordt. In sommige gevallen is de hier beschreven inductiehypothese niet sterk genoeg, en hebben we als inductiehypothese de aanname Pn geldt voor alle n tot en met een zekere k nodig; dit heet volledige inductie. In de inductiestap moet dan bewezen worden dat Pk+1 volgt uit P1, P2,,Pk. OPGAVE 1.1 Maak exercise 27 uit section 1.1 van Linz. OU 15
5 Formele talen en automaten 2 Three basic concepts Studeeraanwijzing Erratum in Linz Substring Prefix Suffix Kleene-afsluiting Positieve afsluiting Bestudeer in Linz section 1.2, subsection Languages. Pagina 18, regel 3: in plaats van by induction characters moet staan by induction on the number of symbols of v. Als v een substring is van w, dan gebruiken we de notatie v sub w. Als geldt w = uv, dan gebruiken we de notatie u pref w en v suf w om aan te geven dat u een prefix is van w en v een suffix is van w. De oneindige verzameling van alle machten van een taal, L*, heet de Kleene-afsluiting (of gewoon afsluiting). Naast de Kleene-afsluiting gebruikt men ook wel de positieve afsluiting, L +. Deze afsluiting bestaat uit de vereniging van alle machten van de taal L, met uitzondering van L 0. OPGAVE 1.2 We zijn het woord taal intussen een aantal keer tegengekomen: in de uitdrukkingen programmeertaal, formele taal en natuurlijke taal, en ook gewoon los. Wat zijn de verschillen en overeenkomsten tussen deze voorkomens van het woord taal? Geef ook voorbeelden van iedere soort taal. Denk ook eens na over het verband tussen het alfabet van een formele taal en dat van een natuurlijke taal, en over strings (woorden) in beide soorten talen. Taal Alfabet String In de rest van deze cursus gebruiken we de begrippen taal, string en alfabet over het algemeen in de formele-talenbetekenis: een (formele) taal is een mogelijk oneindige deelverzameling van Σ*, ofwel een (mogelijk oneindige) verzameling strings over een zeker alfabet Σ. Een alfabet is een eindige niet-lege verzameling symbolen, en een string is een eindig rijtje symbolen. OPGAVE 1.3 Gegeven is het alfabet Σ = {a, b,..., z, _} waar _ een spatie representeert. Geef een paar strings over het alfabet Σ. OPGAVE 1.4 Is Σ een taal over Σ? OPGAVE 1.5 In subsection Languages heeft u in example 1.9 en 1.10 twee manieren gezien om een taal te definiëren. Wat zijn de twee manieren? OPGAVE 1.6 Maak exercise 4 uit section 1.2 van Linz. OPGAVE 1.7 Maak exercise 5 uit section 1.2 van Linz. OPGAVE 1.8 Gegeven is de taal L van alle even binaire getallen, dat wil zeggen alle getallen gevormd met de cijfers 0 en 1 waarvan het laatste cijfer 0 is. Geef een formele specificatie van deze taal. 16 OU
6 Leereenheid 1 Introduction to the theory of computation OPGAVE 1.9 Gegeven zijn de twee talen L1 = {a, ab} en L2 = {a, ac, acc}. Wat is L1L2? OPGAVE 1.10 a De lege taal is de taal die geen strings bevat. De lege taal wordt genoteerd met het symbool. Geldt λ =? b Wat is {λ}? Geldt {λ} =? OPGAVE 1.11 Gegeven zijn de volgende talen: L1 = {λ, ab, aabb, aaabbb, aaaabbbb} L2 = {x {a, b}* : a sub x}: de verzameling van alle strings over {a, b} met ten minste één a. L3 = {x {a, b}* : niet (ba suf x)}: de verzameling van alle strings over {a, b} die niet op ba eindigen. L4 = {x {a, b}* : x = x R }: de verzameling van alle palindromen over {a, b}. L5 = {x {a, b, c}* : x = 3}: de verzameling van alle strings over {a, b, c} met lengte 3. a Welke talen zijn eindig? b Welke talen bevatten de lege string? c Geef een omschrijving van L2 L3, van L2 L4 en van L5 L3. OPGAVE 1.12 a Is Σ*, de Kleene-afsluiting van een niet-leeg alfabet Σ, eindig of oneindig? Motiveer uw antwoord. b Bepaal voor een taal L over Σ en voor L, het complement van L ten opzichte van Σ, de vereniging L L. Wat kunt u zeggen over de waarde van L L? c Maak, door gebruik te maken van het resultaat van a en b, exercise 6 uit section 1.2 van Linz. Studeeraanwijzing Bestudeer in Linz section 1.2, subsection Grammars. Merk op dat definition 1.1 in Linz heel algemeen is, maar dat alle voorbeeldgrammatica's in chapter 1 heel specifiek zijn omdat ze aan strengere eigenschappen (van contextvrije grammatica's; zie hiervoor leereenheid 5) voldoen. OPGAVE 1.13 a Aan het begin van subsection Grammars is een grammatica gegeven voor het vormen van simpele zinnen in het Engels. Wat zijn de productieregels, het startsymbool, de hulpsymbolen en de eindsymbolen? b Als we slechts de productieregels geven, is deze grammatica dan nog eenduidig gedefinieerd? c Geef andere zinnen die met deze grammatica gevormd kunnen worden. OPGAVE 1.14 Wat is in verband met grammatica's het verschil tussen de symbolen en? OU 17
7 Formele talen en automaten OPGAVE 1.15 Welke definitie van een taal kunnen we geven in termen van een grammatica? OPGAVE 1.16 Leg precies uit hoe het bewijs in example 1.11 in Linz in elkaar zit. OPGAVE 1.17 Geef een andere set productieregels voor de grammatica uit example 1.12, waarmee precies dezelfde taal wordt gegenereerd. OPGAVE 1.18 a Maak exercise 11a uit section 1.2 van Linz. Geef eerst een paar voorbeeldstrings uit de gegeven verzameling. b Maak exercise 11c uit section 1.2 van Linz. Geef eerst een paar voorbeeldstrings uit de gegeven verzameling. c Maak exercise 11d uit section 1.2 van Linz. OPGAVE 1.19 Maak exercise 12 uit section 1.2 van Linz. OPGAVE 1.20 Maak exercise 13 uit section 1.2 van Linz. OPGAVE 1.21 a Maak exercise 14a uit section 1.2 van Linz. b Maak exercise 14d uit section 1.2 van Linz. OPGAVE 1.22 Maak exercise 15b uit section 1.2 van Linz. OPGAVE 1.23 Maak exercise 17 uit section 1.2 van Linz. Geef eerst een paar voorbeeldstrings die door de grammatica kunnen worden gegenereerd, met hun afleidingen. Geef ook strings die niet door de grammatica kunnen worden gegenereerd. OPGAVE 1.24 Lees exercise 18a uit section 1.2 van Linz en de terugkoppeling op pagina 388. Geeft de terugkoppeling de goede grammatica? Motiveer uw antwoord. OPGAVE 1.25 Maak exercise 21 uit section 1.2 van Linz. OPGAVE 1.26 Maak exercise 23 uit section 1.2 van Linz. Studeeraanwijzing Lees in Linz section 1.2, subsection Automata. OPGAVE 1.27 Welke informatie is nodig om een overgangsfunctie te definiëren? 18 OU
8 Leereenheid 1 Introduction to the theory of computation 3 Some applications Studeeraanwijzing Bestudeer section 1.3 in Linz. OPGAVE 1.28 Volgens de naamgevingconventie in Java krijgen klassen een naam die begint met een hoofdletter en methoden een naam die begint met een kleine letter. Stel dat de eindsymbolen in een grammatica voor Java bestaan uit kleine letters (a,.., z), hoofdletters (A,.., Z) en cijfers (0, 1,.. 9). Andere symbolen worden niet gebruikt. Geef, met gebruik van de notatie op pagina 31 in Linz, een grammatica voor klassennamen en een grammatica voor methodenamen. Teken ook in beide gevallen een automaat zoals in figure 1.6 in Linz. OPDRACHT 1.29 Zoek op internet een definitie van de grammatica van Java. Kunt u hierin de definitie van een if-opdracht vinden? NB U hoeft de gevonden informatie niet te interpreteren. OPGAVE 1.30 In het geheugen van een computer of tijdens de overdracht van informatie tussen twee computers kan een storing optreden waardoor de opgeslagen bits verminkt worden. Om zulke verminkingen op te kunnen sporen, voegt men aan een reeks bits vaak extra bits toe ter controle. Zo wordt wel eens één extra bit vooraan de reeks toegevoegd: een 1 geeft aan dat het totaal aantal 1 en (inclusief extra bit) even is, een 0 dat het oneven is. Vervolgens worden pariteitscontroles uitgevoerd, om te kijken of het aantal 1 en nog klopt met wat de pariteitsbit (de extra bit) aangeeft. Het zal duidelijk zijn dat deze controle alleen zinvol is als men aanneemt dat er een oneven aantal bits verminkt kan zijn. Geef een automaat die nagaat of het aantal 1 en in een bitstring even of oneven is. 4 Kennismaking met JFLAP Software Homepage JFLAP Tutorial Handige tips Bouwstenen JFLAP (Java Formal Language and Automata Package) is een interactieve softwaretool voor het visualiseren van en experimenteren met formele talen en automaten. De software is open source. In de cursus gebruiken we versie 7 die u van de cursussite kunt ophalen. Op de cursussite vindt u, naast de software, een link naar de homepage van JFLAP. Deze homepage bevat veel informatie en materiaal voor het werken met de tool. Er is onder andere een uitgebreide tutorial die als helpfunctie gebruikt kan worden. Op de cursussite staat ook een document met handige tips voor het werken met JFLAP. Hierin staat allerlei informatie die anders misschien moeilijk te vinden is. Houd het document (in het begin) paraat als u met JFLAP werkt. Voor de opdrachten in het werkboek zijn bouwstenen samengesteld. Deze treft u ook aan op de cursussite. OU 19
9 Formele talen en automaten cd-rom JFLAP-Activities Studeeraanwijzing Installatie Het tekstboek van Linz bevat een cd-rom met het document JFLAP Activities.pdf (hierna te noemen JFLAP-Activities) en met JFLAP-bestanden voor de exercises uit Linz en uit JFLAP-Activities. Lees in Linz appendix B en in JFLAP-Activities chapter 1. Haal nu het bestand JFLAP.jar op van de cursussite en plaats het bestand in een eigen map op uw computer. JFLAP wordt gestart door te dubbelklikken op de bestandsnaam. U krijgt dan het scherm van figuur 1.1 te zien. FIGUUR 1.1 Startscherm van JFLAP Kopieer de bestanden van de cd-rom van Linz naar uw computer. Gebruikt u daarvoor de zelfstartende procedure, dan krijgt u geen keus voor de installatiemap. Bestanden worden in dat geval in een vaste map geplaatst. Wilt u wel een map kiezen, dan moet u handmatig de bestanden kopiëren. Maak dan een map aan en kopieer daarin van de map Activities van de cd-rom de map JFLAP files en het bestand JFLAP Activities.pdf. Het werken met JFLAP is vanzelfsprekend. Raadpleeg bij problemen de tutorial op de JFLAP homepage, de helpfunctie van de software of het document met handige tips van de cursussite. Studeeraanwijzing Lees nu in JFLAP-Activities van chapter 2 de introductie en section 2.1, zonder daarbij de opdrachten uit te voeren. Start dan, indien nodig, JFLAP. 20 OU
10 Leereenheid 1 Introduction to the theory of computation OPDRACHT 1.31 a Voer in JFLAP de grammatica van example 1.12 uit Linz in en sla de grammatica op in een bestand. b Voer nu in JFLAP de grammatica in die u in opgave 1.17 gemaakt hebt. Sla ook deze grammatica op, onder een zelfgekozen naam. c Probeer in beide grammatica's de invoerstrings aabbb, aabb, abb, abbb en λ. Gebruik hiervoor de menuopties Input CYK Parse, Input Multiple CYK Parse en Input Brute Force Parse. Bekijk ook hoe de afleidingen van de strings eruit zien. NB: JFLAP toont meer informatie dan wat u op dit moment (en ook na afloop van de cursus) kunt begrijpen. Probeer daar overheen te kijken en alleen te concentreren op wat wel te begrijpen is en wat in de opdrachten gevraagd wordt. Het kan zijn dat de optie Input Brute Force Parse te traag werkt op uw computer. Sla dit onderdeel dan over. OPDRACHT 1.32 a Open het bestand Jexample1.13.jff uit de map JFLAP Activities JFLAP Files JFLAP Examples. Deze grammatica accepteert de lege string, maar het is niet mogelijk om dit in JFLAP te controleren. Ga dit na. b Wijzig nu de grammatica opdat deze niet meer de lege string genereert maar voor de rest dezelfde taal genereert. Controleer het in JFLAP. OPDRACHT 1.33 a JFLAP kan, behalve voor het specificeren van grammatica's, ook goed gebruikt worden voor het tekenen van automaten. In paragraaf 3 heeft u al een paar voorbeelden gezien. Bekijk de automaat van figure 1.6 in Linz en teken de automaat in JFLAP. NB Twee van de drie labels geven verschillende opties. Zo moet u de overgang met label letter of undrscr interpreteren als een overgang met label letter en een overgang met label undrscr. b Het is in JFLAP ook mogelijk om een toestand als eindtoestand (final) te markeren. Hoe moeten de toestanden 2 en 3 gemarkeerd worden als eindtoestand? JFLAP biedt vele manieren om te experimenteren met grammatica's, automaten en andere onderwerpen uit de theorie. We raden u aan om veel gebruik te maken van deze tool bij de bestudering van de cursus. Als er in het vervolg bij een opgave niets vermeld staat, ben u vrij om JFLAP wel of niet te gebruiken. Bij sommige opgaven zal expliciet gevraagd worden om de tool te gebruiken. Dit mag u dan niet overslaan. Het kan ook gebeuren dat we u afraden om voor een bepaald onderdeel JFLAP te gebruiken. De werkwijze in JFLAP is dan naar ons oordeel te omslachtig of misleidend. Probeer dat advies dan ook op te volgen. OU 21
11 Formele talen en automaten Z E L F T O E T S 1 Geef een definitie van het begrip formele taal. 2 Kan de verzameling van de natuurlijke getallen dienen als alfabet voor een taal? Motiveer uw antwoord. 3 Gegeven is het alfabet Σ = {a, b}. Bepaal L* en L voor a L =. b L = {λ}. c L = {a} d L = {a}*{b} 4 Gegeven is de taal L = {ww R : w {a, b} + }. a Geef drie strings uit deze taal. b Geef een grammatica die deze taal genereert. c Geef een afleiding voor ieder van de drie strings uit onderdeel a. 5 a Geef een beschrijving van de taal die gegenereerd wordt door de grammatica met startsymbool S en met de volgende productieregels: S abs Sba a b Geef een andere verzameling productieregels die dezelfde taal genereert. 22 OU
12 Leereenheid 1 Introduction to the theory of computation T E R U G K O P P E L I N G 1 Uitwerking van de opgaven 1.1 We geven een bewijs met inductie. Basisstap: De bewering is waar voor n = 4: de waarde van 2 4 is 16, en de waarde van 4! is 24. Inductiehypothese: We nemen aan dat de bewering waar is voor een waarde n 4. Inductiestap: We bewijzen dat de bewering dan ook waar is voor n n < n! is waar volgens onze aanname (de inductiehypothese). We moeten nu laten zien dat 2 (n+1) < (n + 1)!, en daarvoor moeten we zorgen dat we ergens een factor 2 n en ergens een factor n! krijgen, want dan kunnen we hopelijk de inductiehypothese gebruiken. Gelukkig geldt dat 2 (n+1) = 2 * 2 n en dat (n + 1)! = (n + 1) * n! De bewering 2 (n+1) < (n + 1)! is dus gelijk aan 2 * 2 n < (n + 1) * n! Deze bewering is waar omdat 2 < (n + 1) en volgens onze aanname 2 n < n! Hiermee is bewezen dat de bewering waar is voor alle waarden van n Een gangbare definitie van het algemene begrip taal is al gegeven in Linz: een systeem dat geschikt is om zekere ideeën, feiten of concepten uit te drukken, inclusief een verzameling symbolen en regels om met die symbolen te werken. Het duidelijkste verschil tussen een natuurlijke en een formele taal is dat een natuurlijke taal vanzelf in de loop der eeuwen ontstaan is (zoals het Nederlands, Frans, Engels en Arabisch), terwijl een formele taal kunstmatig is (zoals bijvoorbeeld Esperanto, en programmeertalen). In de context van deze cursus bedoelen we met een formele taal over het algemeen heel abstract een deelverzameling van Σ*, ofwel een verzameling strings over een zeker alfabet Σ. In die zin is een programmeertaal misschien niet echt een formele taal, want onder de programmeertaal Java verstaan we niet (alleen) de verzameling Java-programma s, maar eerder het geheel van sleutelwoorden, syntaxdefinitie, libraries, typesysteem, compiler enzovoort van Java. Dat lijkt dus erg op de algemene definitie van het begrip taal die we hierboven gaven. Het Nederlands heeft een alfabet dat bestaat uit 26 letters. Met die letters kunnen woorden (strings) gemaakt worden (we laten even in het midden of daar een duidelijke verzameling regels voor bestaat; het is in ieder geval duidelijk dat niet ieder rijtje letters een goed woord oplevert). Woorden kunnen dan weer worden samengevoegd tot zinnen, volgens de grammatica van het Nederlands. Dat levert een oneindige verzameling syntactisch goedgevormde Nederlandse zinnen op (dat wil zeggen, de structuur is goed, maar qua semantiek (betekenis) kan er nog van alles mis zijn!). Als we hier op de formele-talenmanier naar kijken, dan zouden we misschien geneigd zijn te zeggen dat de Nederlandse taal de verzameling bestaande Nederlandse woorden is. Aan de andere kant, formele talen houden zich bezig met de structuur van een taal en niet zozeer met de betekenis, en zo bezien lijkt het logischer om de verzameling goedgevormde zinnen als invulling van het begrip Nederlandse taal te nemen. OU 23
13 Formele talen en automaten Bij programmeertalen geldt ook zoiets: je hebt de verzameling sleutelwoorden (keywords), dat is een (formele) taal over een bepaald alfabet (het is zelfs een reguliere taal, zie leereenheid 2 tot en met 4). Verder heb je de verzameling identifiers, dat is ook een formele (reguliere) taal over een (eventueel ander) alfabet. Dan heb je de verzameling welgevormde programma s, en je zou kunnen zeggen dat dat strings zijn over het alfabet bestaande uit sleutelwoorden, identifiers en bijzondere symbolen zoals {, ; en ). Deze verzameling welgevormde programma s is ook weer een formele taal, maar geen reguliere: het is een contextvrije taal (leereenheid 5 tot en met 8). Kortom: de begrippen alfabet, string (woord) en taal betekenen niet in iedere context precies hetzelfde, maar de overeenkomsten zijn (natuurlijk) groot. 1.3 De strings aaa, als en ik_zing zijn drie strings over het alfabet Σ. Ze zijn namelijk allemaal opgebouwd uit symbolen uit het alfabet. De string dit_een_boek_is is ook een string over het alfabet Σ, maar geen string (geen zin) uit de Nederlandse taal. 1.4 Een taal over Σ is een deelverzameling van Σ*. Σ Σ*. Dus Σ is een taal over Σ. 1.5 Eén manier is door een formele specificatie te geven, gebruikmakend van de notaties uit de verzamelingenleer. Tussen accolades worden de regels gegeven waarmee alle correcte strings uit de taal kunnen worden opgebouwd. Zie bijvoorbeeld example Een andere manier is door, voor een eindige taal, een opsomming te geven van alle strings uit de taal. Zie het voorbeeld {a, aa, aab} in example 1.9. NB In de cursus zult u nog andere manieren tegenkomen; zie bijvoorbeeld opgave 1.8 met een beschrijving van een taal. 1.6 Zie de terugkoppeling in Linz op pagina Zie de terugkoppeling in Linz op pagina 387. Een alternatief is L = {w {a, b}* : w aa en w bb}. 1.8 L= {x {0, 1}* : 0 suf x}. 1.9 L1L2 = {aa, aac, aacc, aba, abac, abacc} a Nee, λ is de lege string, dus een leeg rijtje symbolen. is de lege taal, ofwel de lege verzameling. Een string en een taal, ofwel een rijtje en een verzameling, kunnen nooit gelijk zijn. b {λ} is de taal die alleen de lege string bevat. Deze taal heeft één element en is dus niet de lege taal: {λ} a De talen L1 en L5 zijn eindig. De andere talen zijn oneindig. b De talen L1, L3 en L4 bevatten de lege string; de andere talen niet. c L2 L3 = {a, b}*. Beschouw immers een willekeurige string x {a, b}*. Als x op ba eindigt, dan bevat x een a en zit dus in L2. Eindigt x daarentegen niet op ba, dan zit x in L3. We hebben nu aangetoond dat {a, b}* L2 L3. De inclusie de andere kant op is duidelijk. 24 OU
14 Leereenheid 1 Introduction to the theory of computation L2 L4 bestaat uit alle palindromen over {a, b} met ten minste één a. L5 L3 bestaat uit alle strings over {a, b, c} met lengte 3, met uitzondering van de strings met alleen a's en b's die niet op ba eindigen, dus met uitzondering van aaa, abb, baa, en bbb. Schrijven we deze taal uit, dan krijgen we: L5 L3 ={aac, aba, abc, aca, acb, acc, bac, bba, bbc, bca, bcb, bcc, caa, cab, cac, cba, cbb, cbc, cca, ccb, ccc} a De Kleene-afsluiting Σ* van een niet-leeg alfabet is altijd oneindig. Σ* = Σ 0 Σ 1 Σ 2... Σ n... met n. Omdat oneindig is, is Σ* oneindig. b Uit de definitie van L volgt direct dat L L = Σ*. Omdat L en L disjunct zijn geldt L L = L + L. c We geven een bewijs uit het ongerijmde. Stel L en L zijn beide eindig. Dan is de som L + L een natuurlijk getal. Dit is in tegenspraak met L L = Σ* en het feit dat Σ* oneindig is. Onze aanname is dus niet juist: op zijn minst één van de twee talen is oneindig a De productieregels zijn: sentence noun_phrase predicate article article noun noun verb verb noun_phrase predicate article noun verb a the boy dog runs walks Het startsymbool is sentence. De hulpsymbolen zijn sentence, noun_phrase, predicate, article, noun en verb. Eindsymbolen zijn symbolen die niet meer met behulp van productieregels afgeleid kunnen worden. Hier zijn de eindsymbolen a, the, boy, dog, runs en walks. In tegenstelling tot wat we gewend zijn (een eindsymbool is meestal één symbool uit een alfabet), zijn eindsymbolen hier complete woorden. b Uit de productieregels kunnen we eenvoudig opmaken wat de hulpsymbolen en eindsymbolen zijn. Eindsymbolen komen namelijk niet voor aan de linkerkant van een productieregel. Het is lastiger om het startsymbool te bepalen. Starten we de vorming van een Engelse zin bij noun dan kunnen we met de grammatica geen volledige zinnen meer maken. Om deze grammatica eenduidig te definiëren kunnen we volstaan met het geven van de productieregels en het startsymbool. NB: Dit hoeft niet te gelden voor alle grammatica's. Bij twijfels, geef het volledige viertupel bij de definitie van een grammatica. In ieder geval moet u zich er bij het geven van een definitie van een grammatica altijd van vergewissen dat de gegeven definitie eenduidig is. Vaak wordt S als startsymbool gebruikt. Vaak is ook de eerst gegeven productieregel van een grammatica de productieregel die van het startsymbool uitgaat. In Linz wordt het viertupel achterwege gelaten als deze conventies van toepassing zijn. OU 25
15 Formele talen en automaten c De volgende zinnen kunnen ook gevormd worden: the boy walks the boy runs the dog runs a boy walks a dog walks a dog runs Merk op dat we voor de leesbaarheid spaties tussen de eindsymbolen hebben geplaatst Het symbool wordt gebruikt in een productieregel, om aan te geven welke herschrijfstappen toegestaan zijn in een afleiding: de linkerkant van de productieregel mag dan worden vervangen door de rechterkant. Het symbool wordt gebruikt in een afleiding, om aan te geven dat er één (of een onbepaald aantal, dan staat er * ) afleidingsstappen gedaan zijn Een taal is de verzameling van alle strings met alleen eindsymbolen die gegenereerd (gevormd) kunnen worden vanuit het startsymbool van een gegeven grammatica Eerst wordt bewezen dat L(G) {a n b n : n 0}, ofwel dat alle strings uit de taal de vorm a n b n hebben ( We first show that all sentential forms Thus, G can derive only strings of the form a n b n ). Onderdeel van dat bewijs is een inductiebewijs van de bewering all sentential forms must have the form wi = a i Sb i. Eerst wordt de inductiehypothese geformuleerd: Suppose that (1.7) holds for all sentential forms wi of length 2i + 1 or less. Vervolgens wordt de inductiestap bewezen: To get another sentential form so that every sentential form of length 2i + 3 is also of the form (1.7). Merk op dat de inductie hier in stappen van 2 gaat: van 2i + 1 naar 2i + 3. Nu komt de basisstap, voor i = 1: Since (1.7) is obviously true for i = 1. Hiermee is het inductiebewijs klaar ( it holds by induction for all i ), maar hebben we nog een observatie nodig om het bewijs van L(G) {a n b n : n 0} af te ronden: Finally, to get a sentence, G can derive only strings of the form a n b n. Vervolgens wordt bewezen dat ook L(G) {a n b n : n 0}, ofwel: alle strings met de vorm a n b n behoren tot de taal: We also have to show followed by S λ Als we voor G de volgende productieregels nemen, wordt dezelfde taal gegenereerd: S asb S b 1.18 a Een paar voorbeelden zijn a, bba, babbb. De strings bestaan uit eerst een willekeurig aantal (0, 1 of meer) b's, dan één a en ten slotte een willekeurig aantal b's. 26 OU
16 Leereenheid 1 Introduction to the theory of computation Een grammatica die deze taal genereert is de grammatica G = ({B, S}, {a, b}, S, P) met als verzameling productieregels P: S BaB B bb λ b Een paar voorbeelden zijn a, aa, aaa, babb, abab, bbaaba. De strings bevatten maximaal drie a's en tussen alle voorkomens van het symbool a een willekeurig aantal b's. Een grammatica die deze taal genereert is de grammatica G = ({A, B, S}, {a, b}, S, P) met als productieregels P: S BABABAB A a λ B bb λ c Zie de terugkoppeling in Linz op pagina Zie de terugkoppeling in Linz op pagina 387. Alternatieve uitwerking: de enige productieregel voor A is A bs, dus S aa kan gewoon vervangen door S abs. Dan zijn de productieregels S abs λ en is de gegenereerde taal meteen duidelijk Zie de terugkoppeling in Linz op pagina a Zie de terugkoppeling in Linz op pagina 387. Een alternatieve uitwerking is: S Sb Tb T atb λ b Zie de terugkoppeling in Linz op pagina Zie de terugkoppeling in Linz op pagina 387. Een alternatieve uitwerking is S aaas a aa 1.23 De volgende strings kunnen worden afgeleid: S a S asb aasbb aaabb S bsa basba baaba S asb absab abasbab abaabab De strings aaa en abb behoren niet tot de grammatica. We zien dat de strings allemaal een oneven aantal symbolen bevatten, met het symbool a in het midden. De taal bevat dus strings van de vorm w = uav, met u = v. De substrings u en v houden wel verband met elkaar. De string u is een willekeurige string over het alfabet. De string v wordt verkregen door alle symbolen van de string u in spiegelbeeld te nemen en door alle a s te vervangen door een b en alle b's te vervangen door een a. OU 27
17 Formele talen en automaten 1.24 Ja, de terugkoppeling geeft een goede grammatica. De terugkoppeling onderscheidt twee mogelijkheden: De string w begint met een a. De string w begint niet met een a. Andere mogelijkheden zijn er niet. Als de string w met een a begint, dan geldt w = aw1 en is de grammatica zoals aangegeven in Linz: S as1. Als de string w niet met een a begint, dan begint de string met een b. De extra a moet dus verderop in de string nog gegenereerd worden: w = uav (met b pref w). Door eenzelfde teltruc (counting argument) te gebruiken als in example 1.13 kunnen we beredeneren dat moet gelden u, v L1. Dan geldt dus u L1 en aw bevat één a meer dan het aantal b s, en kan de productieregel S S1S worden gebruikt. Samengevat: L = ({S, S1}, {a, b}, S, P) met P is S as1 S1S S1 S1S1 λ as1b bs1b 1.25 De eerste grammatica genereert de lege string, de tweede niet. Ze zijn dus niet equivalent Om te bewijzen dat de twee grammatica's niet equivalent zijn is het voldoende om een tegenvoorbeeld te geven. Zie de terugkoppeling in Linz op pagina Om een overgangsfunctie te definiëren, moeten we voor elke mogelijke combinatie van waarden voor de huidige toestand, het huidige invoersymbool en de informatie in de huidige geheugenlocatie weten wat de nieuwe toestand (of de nieuwe toestanden in geval van niet-determinisme) wordt, wat de gegenereerde output is, en wat de nieuwe inhoud van de geheugenlocatie wordt Voor klassennamen kunnen we de volgende productieregels geven: klassennaam hoofdletter symbolen symbolen symbool symbolen λ symbool hoofdletter kleineletter cijfer hoofdletter A B... Z kleineletter a b... z cijfer Het startsymbool van deze grammatica is klassennaam Voor methodenamen vervangen we de productieregel voor klassennaam door: methodenaam kleineletter symbolen De overige productieregels blijven gelijk. Het startsymbool is nu methodenaam. 28 OU
18 Leereenheid 1 Introduction to the theory of computation De automaat voor klassennamen is: De automaat voor methodenamen is: In beide automaten is toestand 2 de ja-toestand en toestand 3 de neetoestand Door de trefwoorden Java en grammar in een zoekmachine te geven, krijgen we veel links naar de gezochte informatie. Op de cursussite geven we een paar links. We geven hier de productieregels voor if-opdrachten uit één van de gevonden pagina's: IfThenStatement: if ( Expression ) Statement IfThenElseStatement: if ( Expression ) StatementNoShortIf else Statement IfThenElseStatementNoShortIf: if ( Expression ) StatementNoShortIf else StatementNoShortIf Merk op dat hier drie verschillende productieregels worden gegeven waarvan de eerste een if-opdracht zonder else betreft. Merk ook op dat de notatie afwijkend is van de notatie in section 1.3 in Linz. OU 29
19 Formele talen en automaten 1.30 De automaat kan er als volgt uitzien. Na het lezen van de reeks bits staat de automaat in toestand even of oneven, afhankelijk van het gelezen aantal bits met de waarde a Voor het opslaan van de grammatica kies de menuoptie File Save As... Zie Jexample1.12.jff in de map JFLAP Activities JFLAP Files JFLAP Examples. b Een nieuwe grammatica kan ingevoerd worden door in het actieve venster de menuoptie File New te kiezen. c We bespreken in het algemeen de drie manieren. CYK Parse: Selecteer in de afrollijst de optie Derivation Table. Na de invoer van een string geeft een klik op de knop Start (of op Enter) het antwoord of de string wel of niet wordt geaccepteerd. Is de string geaccepteerd, dan levert elke klik op de knop Step een nieuw afleidingsstap op. Multiple CYK Parse: Het is nu mogelijk om in een tabel meerdere strings te geven. Een klik op de knop Run Inputs geeft meteen antwoord voor alle invoer. Het selecteren van een string in de tabel brengt de string over naar het venster links, waar het mogelijk is om de afleidingsstappen en te bekijken. Brute Force Parse: Hier zien we hetzelfde venster als bij CYK Parse a Het is niet mogelijk om de lege string als invoer voor deze grammatica te geven. Er verschijnt een foutmelding die betrekking heeft op het feit dat het startsymbool λ genereert. Dat is blijkbaar niet gewenst. Andere strings kunnen wel ingevoerd worden. b De volgende grammatica genereert niet meer de lege string. Zie ook in de bouwsteen opdracht01.32.b.jff: S SS S asb S bsa S ab S ba 1.33 a Kies de optie Finite Automaton. Er verschijnt een scherm waarop u een automaat kunt tekenen. Gebruik de tweede knop van links, de State creator, voor het toevoegen van toestanden, de derde knop Transition creator voor het toevoegen van overgangen en de vierde knop Deleter voor het wissen van een element. Als de eerste knop, Attribute editor, ingeschakeld is, kunt u toestanden verplaatsen voor een betere lay-out en kunt u, door te rechtsklikken op een toestand, eigenschappen van deze toestand wijzigen. 30 OU
20 Leereenheid 1 Introduction to the theory of computation We gaan als volgt te werk: We plaatsen eerst drie toestanden op het scherm. Daarna wijzigen we de eigenschappen van de toestanden door elk een andere naam te geven (met Set Name) en toestand 1 als begintoestand aan te wijzen (Initial). Dan klikken we op de knop Transition creator en tekenen we de overgangen. Let op: er moeten zes verschillende overgangen getekend worden. JFLAP groepeert ze automatisch. Een overgang die in dezelfde toestand start en eindigt wordt getekend door de muiswijzer op de toestand te plaatsen, dan met ingetrokken linkerknop buiten de toestand te gaan en weer terug in de toestand te komen (dit moet drie keer gebeuren omdat er drie labels zijn). We krijgen het volgende resultaat; zie ook bouwsteen opdracht01.33.a.jff. b Als in het scherm de eerste knop links is geselecteerd, dan kunnen we toestand 2 en 3 als eindtoestand markeren door met de rechtermuisknop op een toestand te klikken en dan de optie Final aan te klikken. De toestanden krijgen dan een dubbele rand. 2 Uitwerking van de zelftoets 1 Een formele taal is een verzameling strings over een alfabet. 2 Nee, een alfabet is immers eindig en de verzameling natuurlijke getallen niet. 3 a is de lege taal. Deze verzameling bevat geen elementen. De machtsverzameling * bevat ook geen elementen. Dus * =. Het complement van bevat alle strings over het alfabet. = Σ* = {a, b}*. b {λ} bevat als enig element de lege string. {λ}* bevat alle mogelijke combinaties van de lege string en dus alleen de lege string. {λ}* = {λ}. Het complement van {λ} bevat alle strings over het alfabet behalve de lege string. { λ } = Σ +. c L* = {a}*, de verzameling van alle strings die uit 0 of meer a s bestaan. L = {b} +, de verzameling van alle strings die uit 1 of meer b s bestaan. d L* bestaat uit alle strings met 0 of meer b s, waaromheen willekeurig veel a s mogen staan. Er geldt dus L* = {a, b}*. OU 31
21 Formele talen en automaten L bevat precies alle strings over {a, b} die niet op een b eindigen, dat wil zeggen, L bevat λ en verder precies alle strings die op een a eindigen. Dus L = {λ} {wa : w {a, b}*}. 4 a Drie voorbeelden zijn bb, abba, abaaba. b Een string begint en eindigt altijd met hetzelfde symbool. De taal kan gegenereerd worden door de grammatica G = ({S}, {a, b}, S, P) met P bestaand uit de volgende productieregels: S asa bsb aa bb c De drie afleidingen zijn: S bb S asa abba S asa absba abaaba 5 a We geven eerst een paar voorbeeldstrings: a, aba, ababa, abababa. De taal is de verzameling strings over het alfabet {a, b} van oneven lengte die beginnen en die eindigen met een a. In de string staan nooit twee a's of twee b's naast elkaar. De taal is dus {(ab) n a : n 0} b De volgende verzameling productieregels genereert dezelfde taal: S abs a 32 OU
Inhoud eindtoets. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 6
Inhoud eindtoets Eindtoets Introductie 2 Opgaven 3 Terugkoppeling 6 1 Formele talen en automaten Eindtoets I N T R O D U C T I E Deze eindtoets is bedoeld als voorbereiding op het tentamen van de cursus
Nadere informatieFinite automata. Introductie 35. Leerkern 36. Zelftoets 44. Terugkoppeling 45
Finite automata Introductie 35 Leerkern 36 1 Deterministic finite accepters 36 2 Nondeterministic finite accepters 38 3 Equivalence of deterministic and nondeterministic finite accepters 41 Zelftoets 44
Nadere informatieAutomaten & Complexiteit (X )
Automaten & Complexiteit (X 401049) Inleiding Jeroen Keiren j.j.a.keiren@vu.nl VU University Amsterdam Materiaal Peter Linz An Introduction to Formal Languages and Automata (5th edition) Jones and Bartlett
Nadere informatieTENTAMEN Basismodellen in de Informatica VOORBEELDUITWERKING
TENTAMEN Basismodellen in de Informatica vakcode: 211180 datum: 2 juli 2009 tijd: 9:00 12:30 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Sudkamp, van de
Nadere informatieAutomaten. Informatica, UvA. Yde Venema
Automaten Informatica, UvA Yde Venema i Inhoud Inleiding 1 1 Formele talen en reguliere expressies 2 1.1 Formele talen.................................... 2 1.2 Reguliere expressies................................
Nadere informatieFormeel Denken. Herfst 2004
Formeel Denken Herman Geuvers Deels gebaseerd op het herfst 2002 dictaat van Henk Barendregt en Bas Spitters, met dank aan het Discrete Wiskunde dictaat van Wim Gielen Herfst 2004 Contents 1 Talen 1 1.1
Nadere informatieAutomaten & Complexiteit (X )
Automaten & Complexiteit (X 401049) Beschrijven van reguliere talen Jeroen Keiren j.j.a.keiren@gmail.com VU University Amsterdam 5 Februari 2015 Talen Vorig college: Talen als verzamelingen Eindige automaten:
Nadere informatieopgaven formele structuren deterministische eindige automaten
opgaven formele structuren deterministische eindige automaten Opgave. De taal L over het alfabet {a, b} bestaat uit alle strings die beginnen met aa en eindigen met ab. Geef een reguliere expressie voor
Nadere informatieInhoud. Introductie tot de cursus
Inhoud Introductie tot de cursus 1 Plaats en functie van de cursus 7 2 Inhoud van de cursus 7 2.1 Tekstboek 7 2.2 Voorkennis 8 2.3 Leerdoelen 8 2.4 Opbouw van de cursus 9 3 Leermiddelen en wijze van studeren
Nadere informatieTalen & Automaten. Wim Hesselink Piter Dykstra Opleidingsinstituut Informatica en Cognitie 9 mei 2008
Talen & Automaten Wim Hesselink Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.cs.rug.nl/~wim 9 mei 2008 Talen & automaten Week 1: Inleiding Dit college Talen Automaten Berekenbaarheid Weekoverzicht
Nadere informatieUitwerking Opgaven Formele talen, grammaticas en automaten Week 1
Uitwerking Opgaven Formele talen, grammaticas en automaten Week 1 Bas Westerbaan bas@westerbaan.name 24 april 2012 1 Opgave 1.1 Een goed en voldoende antwoord is: L 1 = L 2, want L 1 en L 2 zijn alle woorden
Nadere informatieFormeel Denken 2014 Uitwerkingen Tentamen
Formeel Denken 2014 Uitwerkingen Tentamen (29/01/15) 1. Benader de betekenis van de volgende Nederlandse zin zo goed mogelijk (6 punten) door een formule van de propositielogica: Als het regent word ik
Nadere informatieVERZAMELINGEN EN AFBEELDINGEN
I VERZAMELINGEN EN AFBEELDINGEN Het begrip verzameling kennen we uit het dagelijks leven: een bibliotheek bevat een verzameling van boeken, een museum een verzameling van kunstvoorwerpen. We kennen verzamelingen
Nadere informatieTaaltechnologie. Januari/februari Inhoud
Taaltechnologie Januari/februari 2002 1 Finite state............................................... 4 1.1 Deterministic finite state automata.................... 4 1.2 Non-deterministic finite state automata................
Nadere informatieVerzamelingen deel 2. Tweede college
1 Verzamelingen deel 2 Tweede college herhaling Deelverzameling: AB wil zeggen dat elk element van A ook in B te vinden is: als x A dan x B Er geldt: A=B AB en BA De lege verzameling {} heeft geen elementen.
Nadere informatieOpdracht 1 Topics on Parsing and Formal Languages - fall 2010
Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 8 december 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]
Nadere informatie3 De stelling van Kleene
18 3 De stelling van Kleene Definitie 3.1 Een formele taal heet regulier als hij wordt herkend door een deterministische eindige automaat. Talen van de vorm L(r) met r een reguliere expressie noemen we
Nadere informatieopgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): 2 a 2.
opgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): ℵ 0 #A, B = {b 0,..., b n 1 } voor een zeker natuurlijk getal
Nadere informatieOpdracht 1 Topics on Parsing and Formal Languages - fall 2010
Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 13 november 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]
Nadere informatieIN2505 II Berekenbaarheidstheorie Tentamen Maandag 2 juli 2007, uur
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Mekelweg 4 2628 CD Delft IN2505 II Berekenbaarheidstheorie Tentamen Maandag 2 juli 2007, 14.00-17.00 uur BELANGRIJK Beschikbare
Nadere informatieGödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3
Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Koen Rutten, Aris van Dijk 30 mei 2007 Inhoudsopgave 1 Verzamelingen 2 1.1 Definitie................................ 2 1.2 Eigenschappen............................
Nadere informatieIntroductie tot de cursus
Inhoud introductietalen en ontleders Introductie tot de cursus 1 Plaats en functie van de cursus 7 2 Inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen 8 2.3 Opbouw van de cursus 8 3 Leermiddelen en
Nadere informatieVerzamelingenleer. Inhoud leereenheid 5. Introductie 9
Inhoud leereenheid 5 Introductie 9 1 Verzamelingen 10 2 Deelverzamelingen 15 3 Operaties op verzamelingen 20 3.1 Doorsnede en lege verzameling 20 3.2 Vereniging en verschil 24 3.3 Complement en universum
Nadere informatieFormele talen. Elfde college
12 Formele talen Elfde college 1 verkeerslicht? 신호등을지킵시다 (Automatische) Vertaling van het Koreaans You should observe the traffic lights Is Koreaans een formele taal? Nee natuurlijk niet! Alleen, voor
Nadere informatieInhoud. Introductie tot de cursus
Inhoud Introductie tot de cursus 1 Inleiding 7 2 Voorkennis 7 3 Het cursusmateriaal 7 4 Structuur, symbolen en taalgebruik 8 5 De cursus bestuderen 9 6 Studiebegeleiding 10 7 Huiswerkopgaven 10 8 Het tentamen
Nadere informatieDe klasse van recursief opsombare talen is gesloten onder en. Dit bewijzen we met behulp van een recursieve opsomming
Recursieve talen De klasse van recursief opsombare talen is gesloten onder en. Echter, het is niet zo dat L recursief opsombaar is voor alle recursief opsombare talen L. Dit bewijzen we met behulp van
Nadere informatieFormeel Denken 2013 Uitwerkingen Tentamen
Formeel Denken 201 Uitwerkingen Tentamen (29/01/1) 1. Benader de betekenis van de volgende Nederlandse zin zo goed mogelijk (6 punten) door een formule van de propositielogica: Het is koud, maar er ligt
Nadere informatieRekenen aan wortels Werkblad =
Rekenen aan wortels Werkblad 546121 = Vooraf De vragen en opdrachten in dit werkblad die vooraf gegaan worden door, moeten schriftelijk worden beantwoord. Daarbij moet altijd duidelijk zijn hoe de antwoorden
Nadere informatieLimits of algorithmic computation. Introductie 213. Leerkern 214. Zelftoets 222. Terugkoppeling 223
Limits of algorithmic computation Introductie 213 Leerkern 214 1 Some problems that cannot be solved by Turing machines 214 1.1 Computability and decidability 214 1.2 The Turing machine halting problem
Nadere informatieVerzamelingen. Hoofdstuk 5
Hoofdstuk 5 Verzamelingen In de meest uiteenlopende omstandigheden kan het handig zijn om een stel objecten, elementen, of wat dan ook, samen een naam te geven. Het resultaat noemen we dan een verzameling.
Nadere informatieHet omzetten van reguliere expressies naar eindige automaten, zie de vakken Fundamentele Informatica 1 en 2.
Datastructuren 2016 Programmeeropdracht 3: Patroonherkenning Deadlines. Woensdag 23 november 23:59, resp. vrijdag 9 december 23:59. Inleiding. Deze opdracht is gebaseerd op Hoofdstuk 13.1.7 in het boek
Nadere informatieInhoud. Introductie tot de cursus
Inhoud Introductie tot de cursus 1 De functie van de cursus 7 2 De inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen van de cursus 8 2.3 Opbouw van de cursus 8 3 Leermiddelen en wijze van studeren
Nadere informatierecursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie
Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk
Nadere informatieAutomaten en Berekenbaarheid 2016 Oplossingen #4
Automaten en Berekenbaarheid 2016 Oplossingen #4 28 oktober 2016 Vraag 1: Toon aan dat de klasse van context vrije talen gesloten is onder concatenatie en ster. Antwoord Meerdere manieren zijn mogelijk:
Nadere informatieAlle opgaven tellen even zwaar, 10 punten per opgave.
WAT IS WISKUNDE (English version on the other side) Maandag 5 november 2012, 13.30 1.30 uur Gebruik voor iedere opgave een apart vel. Schrijf je naam en studentnummer op elk vel. Alle opgaven tellen even
Nadere informatieIntroductie tot de cursus
Introductie tot de cursus 1 Inleiding 7 2 Het cursusmateriaal 7 3 Structuur, symbolen en taalgebruik 8 4 Voorkennis 9 5 De cursus bestuderen 9 6 Studiebegeleiding 10 7 Het tentamen 11 Introductie tot de
Nadere informatie1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12
Katern 2 Getaltheorie Inhoudsopgave 1 Delers 1 2 Deelbaarheid door 2, 3, 5, 9 en 11 6 3 Grootste gemene deler en kleinste gemene veelvoud 12 1 Delers In Katern 1 heb je geleerd wat een deler van een getal
Nadere informatieInhoud introductie. Introductie tot de cursus
Inhoud introductie Introductie tot de cursus 1 Functie en plaats van de cursus 7 1.1 Voorkennis 7 1.2 Leerdoelen 7 2 Opbouw van de cursus 8 2.1 Cursusbestanddelen 8 2.2 Nummering en studielast van de leereenheden
Nadere informatieEigenschap (Principe van welordening) Elke niet-lege deelverzameling V N bevat een kleinste element.
Hoofdstuk 2 De regels van het spel 2.1 De gehele getallen Grof gezegd kunnen we de (elementaire) getaltheorie omschrijven als de wiskunde van de getallen 1, 2, 3, 4,... die we ook de natuurlijke getallen
Nadere informatieHandleiding JCreator. Inhoud. Een Workspace en een eerste project maken
Handleiding JCreator Inhoud Een Workspace en een eerste project maken Een tweede project maken De editor van JCreator Aanpassen van de basis-directory Documentatie over klassen en methoden van de JDK Bestand
Nadere informatieOpgaven 1. Verwijzingen in deze opgaven betreffen het boek van Peter Linz.
Opgaven Verwijzingen in deze opgaven betreffen het boek van Peter Linz.. Toon de volgende eigenschappen uit de verzamelingenleer aan: Exercises, 3, 5, 6, 7, 0 blz. 2-3 (neem aan dat er een universele verzameling
Nadere informatiec, X/X a, c/λ a, X/aX b, X/X
ANTWOORDEN tentamen FUNDAMENTELE INFORMATICA 3 vrijdag 25 januari 2008, 10.00-13.00 uur Opgave 1 L = {x {a,b,c} n a (x) n b (x)} {x {a,b,c} n a (x) n c (x)}. a. Een stapelautomaat die L accepteert: Λ,
Nadere informatieJe hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015
Je hebt twee uur de tijd voor het oplossen van de vraagstukken. Elk vraagstuk is maximaal 10 punten waard. Begin elke opgave op een nieuw vel papier. µkw uitwerkingen 12 juni 2015 Vraagstuk 1. We kunnen
Nadere informatieFormele talen. Tiende college
12 Formele talen Tiende college 1 verkeerslicht? 신호등을지킵시다 (Automatische) Vertaling van het Koreaans You should observe the traffic lights Is Koreaans een formele taal? Nee natuurlijk niet! Alleen, voor
Nadere informatieTentamen TI2310 Automaten en Talen. 19 april 2012, uur
TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica TP Delft Tentamen TI2310 Automaten en Talen 19 april 2012, 14.00-17.00 uur Totaal aantal pagina's (exclusief dit titelblad):
Nadere informatieGetallensystemen, verzamelingen en relaties
Hoofdstuk 1 Getallensystemen, verzamelingen en relaties 1.1 Getallensystemen 1.1.1 De natuurlijke getallen N = {0, 1, 2, 3,...} N 0 = {1, 2, 3,...} 1.1.2 De gehele getallen Z = {..., 4, 3, 2, 1, 0, 1,
Nadere informatieFundamenten van de Informatica
Fundamenten van de Informatica Luc De Raedt Academiejaar 2006-2007 naar de cursustekst van Karel Dekimpe en Bart Demoen A.1: Talen en Eindige Automaten 1 Deel 1: Inleiding 2 Motivatie Fundamenten van de
Nadere informatieTegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785)
Tegenvoorbeeld TI1300: Redeneren en Logica College 3: Bewijstechnieken & Propositielogica Tomas Klos Definitie (Tegenvoorbeeld) Een situatie waarin alle premissen waar zijn, maar de conclusie niet Algoritmiek
Nadere informatieVerzamelingen deel 3. Derde college
1 Verzamelingen deel 3 Derde college rekenregels Een bewerking op A heet commutatief als voor alle x en y in A geldt dat x y = y x. Een bewerking op A heet associatief als voor alle x, y en z in A geldt
Nadere informatieEnkele valkuilen om te vermijden
Enkele valkuilen om te vermijden Dit document is bedoeld om per onderwerp enkele nuttige strategieën voor opgaven te geven. Ook wordt er op een aantal veelgemaakte fouten gewezen. Het is géén volledige
Nadere informatieUitgebreide uitwerking Tentamen Complexiteit, juni 2017
Uitgebreide uitwerking Tentamen Complexiteit, juni 017 Opgave 1. a. Een pad van de wortel naar een blad stelt de serie achtereenvolgende arrayvergelijkingen voor die het algoritme doet op zekere invoer.
Nadere informatieFP-theorie. 2IA50, Deel B. Inductieve definities 1/19. / department of mathematics and computer science
FP-theorie 2IA50, Deel B Inductieve definities 1/19 Inductieve definitie Definitie IL α, (Cons-)Lijsten over α Zij α een gegeven verzameling. De verzameling IL α van eindige (cons-)lijsten over α is de
Nadere informatieRuG-Informatica-cursus Discrete Structuren, versie 2009/2010
RuG-Informatica-cursus Discrete Structuren, versie 2009/2010 Handout 2B Jan Terlouw woensdag 17 februari 2010 Deze handout sluit aan op handout 2A van maandag 15 februari. De gepresenteerde stof valt grotendeels
Nadere informatie1. Introductie tot SPSS
1. Introductie tot SPSS Wat is SPSS? SPSS is een statistisch computerprogramma dat door wetenschappers wordt gebruikt om gegevens te verzamelen, analyseren en te bewerken. Het wordt voornamelijk gebruikt
Nadere informatieNotatie van verzamelingen. Lidmaatschap. Opgave. Verzamelingen specificeren
Overzicht TI1300: Redeneren en Logica College 10: Verzamelingenleer Tomas Klos Algoritmiek Groep Colleges 1 2: Bewijstechnieken Colleges 3 9: Propositielogica Vandaag en morgen: Verzamelingenleer Colleges
Nadere informatiemaplev 2010/7/12 14:02 page 15 #17 Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect
maplev 2010/7/12 14:02 page 15 #17 Module 2 Het gebruik van Maple, vervolg Onderwerp Voorkennis Expressies Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect
Nadere informatieFormele talen. uitgebreid
Formele talen 12 1 uitgebreid verkeerslicht? 신호등을지킵시다 (Automatische) Vertaling van het Koreaans You should observe the traffic lights is Koreaans een formele taal? nee natuurlijk niet! alleen, voor iemand
Nadere informatieHANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)
HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS) Vereiste voorkennis Voldoende kennis van het besturingssysteem (in deze handleiding wordt uitgegaan van Windows) De basisprincipes van programmeren Vereiste
Nadere informatie1 Recurrente betrekkingen
WIS1 1 1 Recurrente betrekkingen 1.1 De torens van Hanoi De torens van Hanoi Edouard Lucas, 1884: Gegeven 3 pinnen en 64 schijven van verschillende grootte. Startsituatie: 64 op linkerpin, geordend naar
Nadere informatieCombinatoriek groep 1
Combinatoriek groep 1 Recursie Trainingsdag 3, 2 april 2009 Getallenrijen We kunnen een rij getallen a 0, a 1, a 2,... op twee manieren definiëren: direct of recursief. Een directe formule geeft a n in
Nadere informatieLogische Complexiteit Hoorcollege 4
Logische Complexiteit Hoorcollege 4 Jacob Vosmaer Bachelor CKI, Universiteit Utrecht 8 februari 2011 Contextvrije grammatica s Inleiding + voorbeeld Definities Meer voorbeelden Ambiguiteit Chomsky-normaalvormen
Nadere informatieMededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven
Mededelingen TI1300: Redeneren en Logica College 4: Waarheidstafels, Redeneringen, Syntaxis van PROP Tomas Klos Algoritmiek Groep Voor de Fibonacci getallen geldt f 0 = f 1 = 1 (niet 0) Practicum 1 Practicum
Nadere informatieHet minimale aantal sleutels op niveau h is derhalve
1 (a) In een B-boom van orde m bevat de wortel minimaal 1 sleutel en maximaal m 1 sleutels De andere knopen bevatten minimaal m 1 sleutels en maximaal m 1 sleutels (b) In een B-boom van orde 5 bevat elke
Nadere informatieIN2505 II Berekenbaarheidstheorie. IN2505-II Berekenbaarheidstheorie. Practicum: Inschrijven. Practicum
IN2505 II Berekenbaarheidstheorie College 1 Algoritmiekgroep Faculteit EWI TU Delft 7 april 2009 Docent: Colleges/oefeningen: dinsdag 5 + 6 (EWI-A), vrijdag 1 + 2 (AULA-A) Boek: Michael Sipser, Introduction
Nadere informatieII.3 Equivalentierelaties en quotiënten
II.3 Equivalentierelaties en quotiënten Een belangrijk begrip in de wiskunde is het begrip relatie. Een relatie op een verzameling is een verband tussen twee elementen uit die verzameling waarbij de volgorde
Nadere informatieNetBeans tutorial, Rik Eshuis, Kees Huizing versie 2.2 Augustus 2009
NetBeans tutorial, Rik Eshuis, Kees Huizing versie 2.2 Augustus 2009 NetBeans is een IDE voor (o.a.) Java, een programma waarmee je Javaprogramma's kunt schrijven en uitvoeren. Deze tutorial bevat informatie
Nadere informatieExcel. Inleiding. Het meest gebruikte spreadsheet programma is Excel.
Excel Inleiding Het woord computer betekent zoiets als rekenmachine. Daarmee is is eigenlijk aangegeven wat een computer doet. Het is een ingewikkelde rekenmachine. Zelf voor tekstverwerken moet hij rekenen.
Nadere informatieTrippeltrap Content Management System
Handleiding Trippeltrap Content Management System versie 2.4 Aanmelden Voordat u de tekst op uw webpagina kunt aanpassen, moet u zich eerst aanmelden. Bovenaan de pagina vindt u een link naar het intranet.
Nadere informatieDiscrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 3 maart 2008 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren
Nadere informatieFOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE
FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Bewijzen en Technieken 1 7 januari 211, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe.
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieUitwerking tentamen Analyse van Algoritmen, 29 januari
Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4
Nadere informatieSemantiek (2IT40) Jos Baeten. HG 7.19 tel.: Hoorcollege 3 (12 april 2007)
Jos Baeten josb@wintuenl http://wwwwintuenl/~josb/ HG 719 tel: 040 247 5155 Hoorcollege 3 (12 april 2007) Voorbeeld [Bewijstechniek 2 niet altijd succesvol] Executie van commands is deterministisch: c
Nadere informatieRecursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40
Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N
Nadere informatieTentamen Discrete Wiskunde 1 10 april 2012, 14:00 17:00 uur
Tentamen Discrete Wiskunde 0 april 0, :00 7:00 uur Schrijf je naam op ieder blad dat je inlevert. Onderbouw je antwoorden, met een goede argumentatie zijn ook punten te verdienen. Veel succes! Opgave.
Nadere informatie6.8 Lijsten: oefeningen
6.8 Lijsten: oefeningen Opgaven 44.: Records zoeken Open het document "Autokosten". Klik in de lijst. Kies de opdracht 'Data - Formulier' [Data - Form]. Klik de knop 'Criteria' [Criteria]. Vul als zoekcriterium
Nadere informatieDiscrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 23 februari 2009 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren Week 3 en 4:
Nadere informatieOplossingen oefeningen logica en eindige automaten 12 december Het bestand oplnoef12dec.zip bevat de.sen en.fa bestanden met de oplossingen.
Oplossingen oefeningen logica en eindige automaten 12 december 2003 Het bestand oplnoef12dec.zip bevat de.sen en.fa bestanden met de oplossingen. Oefening 1 Deel 1: Logica Vertaal de volgende zinnen in
Nadere informatieEerste ronde Nederlandse Wiskunde Olympiade
Eerste ronde Nederlandse Wiskunde Olympiade 23 januari 2 februari 2017 Uitwerkingen A1. C) donderdag In de eerste vier weken van augustus komt elke dag van de week precies viermaal voor. De laatste 31
Nadere informatieWe beginnen met de eigenschappen van de gehele getallen.
II.2 Gehele getallen We beginnen met de eigenschappen van de gehele getallen. Axioma s voor Z De gegevens zijn: (a) een verzameling Z; (b) elementen 0 en 1 in Z; (c) een afbeelding +: Z Z Z, de optelling;
Nadere informatieDomJudge-Practicum. Open Dag UU
1 Introductie DomJudge-Practicum Open Dag UU Bij veel vakken die je volgt tijdens je studie informatica aan de UU, moet je programmeeropdrachten maken. Soms moet je die inleveren zodat ze door de docent
Nadere informatieMicrosoft Office Tekstdocument alle systemen
Microsoft Office Tekstdocument alle systemen Inleiding In deze les wordt het maken van een tekst document met gebruikmaking van Microsoft Office Word behandeld. (Het gaat hier om één van de oudere versies).
Nadere informatie2. Syntaxis en semantiek
2. Syntaxis en semantiek In dit hoofdstuk worden de begrippen syntaxis en semantiek behandeld. Verder gaan we in op de fouten die hierin gemaakt kunnen worden en waarom dit in de algoritmiek zo desastreus
Nadere informatieReguliere Expressies
Reguliere Expressies Een reguliere expressie (regexp, regex, regxp) is een string (een woord) die, volgens bepaalde syntaxregels, een verzameling strings (een taal) beschrijft Reguliere expressies worden
Nadere informatieInhoud leereenheid 4. Inleiding JavaScript. Introductie 99. Leerkern 100. Zelftoets 108. Terugkoppeling 109
Inhoud leereenheid 4 Inleiding JavaScript Introductie 99 Leerkern 100 1 Leren programmeren in JavaScript 100 2 Chapter 1: Introduction 101 3 Chapter 2, paragrafen 1 t/m 5 102 4 Chapter 2, paragrafen 6
Nadere informatieBijlage bij Getting Started Guide International English Edition
Bijlage bij Getting Started Guide International English Edition Chapter 3: Aan de slag met Inspiration, een beginnersles Deze beginnersles is een goed startpunt voor het leren gebruiken van Inspiration.
Nadere informatie2. Syntaxis en semantiek
2. Syntaxis en semantiek In dit hoofdstuk worden de begrippen syntaxis en semantiek behandeld. Verder gaan we in op de fouten die hierin gemaakt kunnen worden en waarom dit in de algoritmiek zo desastreus
Nadere informatieInhoud introductie. Introductie tot de cursus
Inhoud introductie Introductie tot de cursus 1 Functie van de cursus 7 2 Inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen van de cursus 8 2.3 Opbouw van de cursus 8 3 Studeeraanwijzingen 9 3.1 Opbouw
Nadere informatieHandleiding Pétanque Competitie Beheer. (versie 1.1) April 2014
Handleiding Pétanque Competitie Beheer (versie 1.1) April 2014 2 Algemeen Het programma Pétanque Competitie Beheer is gratis software voor de verwerking van halve en hele competities tot en met 99 speelrondes
Nadere informatieInhoud. Introductie tot de cursus
Inhoud Introductie tot de cursus 1 De functie van de cursus 7 2 De inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen van de cursus 8 2.3 Opbouw van de cursus 8 3 Leermiddelen en wijze van studeren
Nadere informatieDeeltentamen Grammatica s en ontleden 22 december 2005
Tentamen Grammatica s en ontleden 22 december 2005 1 Deeltentamen Grammatica s en ontleden 22 december 2005 Let op: opgave 1 t/m 4 tellen voor (slechts) 5 punten mee, opgave 5 voor maar liefst 50 punten,
Nadere informatie1 Rekenen in eindige precisie
Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen
Nadere informatieGetaltheorie I. c = c 1 = 1 c (1)
Lesbrief 1 Getaltheorie I De getaltheorie houdt zich bezig met het onderzoek van eigenschappen van gehele getallen, en meer in het bijzonder, van natuurlijke getallen. In de getaltheorie is het gebruikelijk
Nadere informatieOneindige spelen. Dion Coumans. Begeleider: dr. W. Veldman
Oneindige spelen ion Coumans Begeleider: dr. W. Veldman Inhoudsopgave 1 Voorwoord 3 2 efinities 4 3 A is aftelbaar 6 4 Gale-Stewart-stelling 7 5 Stelling van Wolfe 11 2 1 Voorwoord Banach, Mazur en Ulam
Nadere informatie13. Symbool-, Lijnstijlbibliotheek (Resource Editor)... 1
13. Symbool-, Lijnstijlbibliotheek 13. Symbool-, Lijnstijlbibliotheek (Resource Editor)... 1 13.1. Inleiding...1 13.2. Icoonomschrijving...2 13.3. Menu Bestand...3 13.3.1. Nieuwe Bibliotheek maken... 3
Nadere informatieModule Limieten van de berekenbaarheid : antwoorden
Module Limieten van de berekenbaarheid : antwoorden Gilles Coremans 2018 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. Dit werk is gebaseerd
Nadere informatieWeek 1 20-02-2013. Hier vind je uitwerkingen van enkele opgaven uit het dictaat Grafen: Kleuren en Routeren.
Combinatorische Optimalisatie, 2013 Week 1 20-02-2013 Hier vind je uitwerkingen van enkele opgaven uit het dictaat Grafen: Kleuren en Routeren. Opgave 1.16 Bewijs dat elke graaf een even aantal punten
Nadere informatieInhoud leereenheid 1. Security en IT: inleiding. Introductie 15. Leerkern 15. Terugkoppeling 18. Uitwerking van de opgaven 18
Inhoud leereenheid 1 Security en IT: inleiding Introductie 15 Leerkern 15 1.1 What Does Secure Mean? 15 1.2 Attacks 16 1.3 The Meaning of Computer Security 16 1.4 Computer Criminals 16 1.5 Methods of Defense
Nadere informatieTutorial 1, Delphi: Geldspraak
Tutorial 1, Delphi: Geldspraak Versie Datum Auteurs Opmerkingen 1 25-09-2001 Kees Hemerik (code) Gebaseerd op Delphi 5 Enterprise. Roel Vliegen (tekst) 2 17-03-2005 Kees Hemerik Aanpassingen: Delphi 7,
Nadere informatie2.4.4 LibreOffice Werkblad Mac
2.4.4 LibreOffice Werkblad Mac Deze cursus bestaat uit 4 delen. 1. Werkblad gebruiken voor berekeningen 2. Werkblad gebruiken voor het maken van lijsten 3. Werkblad gebruiken voor een (eenvoudige) boekhouding
Nadere informatie