rij karakters scanner rij tokens parser ontleedboom (filteren separatoren) (niet expliciet geconstrueerd) (+ add. inform.) (contextvrije analyse)
|
|
- Tessa Veenstra
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 scanning and parsing 1/57 rij karakters scanner (filteren separatoren) rij tokens (+ add. inform.) (niet expliciet geconstrueerd) parser (contextvrije analyse) ontleedboom (parse tree) representeert syntactische structuur programma
2 concrete versus abstracte syntax 2/57 concrete syntax if B then S t else S e fi als B dan S t anders S e sla abstracte syntax (boom) (AST ) if 2 (AST(B), AST(S t ), AST(S e )) if 2 B S t S e
3 beschrijving syntactische structuur 3/57 reguliere expressies niet geschikt geen nesting ( n id) n klasse van programma s (n > 0) [ var a n : int read(a n ) ] niet regulier contextvrije grammatica s grotere klasse van talen nesting klasse van programma s (n > 0) [ var a n : int read(a n ); write(a n ) ] niet contextvrij
4 contextvrije ontleding (parsing) 4/57 contextvrije grammatica G acceptor: nondeterministische stapelautomaat (hoge mate van nondeterminisme) algemene ontleedmetode Earley s algoritme tijd: O(N 3 ) geheugen (tabel): O(N 2 G ) eisen aan grammatica/taal deterministische stapelautomaat LALR(1) (meeste programmeertalen) LL(1) (stringenter, eenvoudiger parser)
5 LL(1)-grammatica/taal 5/57 LL(1)-grammatica/taal acceptor: recursive descent parser (stelsel recursieve procedures corresponderend met productieregels) parse tree expliciet opgebouwd (als synthesized attribuut) nog geen contextcondities
6 contextvrije grammatica 6/57 contextvrije grammatica G = (N, Σ, P, S) N eindige, niet lege verzameling (nonterminals) Σ eindige, niet lege verzameling (terminals) N Σ = P N (N Σ), P eindig (productieregels) (A, α) P notatie: A α S N, start symbol vocabulaire grammtica: V = N Σ
7 afleidingen en taal contextvrije grammatica 7/57 G ( leidt af in 1 stap ) α β als G α = δ 1 Cδ 2 en β = δ 1 γδ 2 met δ 1, δ 2 V en C γ P leidt af in 0 of meer stappen G + G leidt af in 1 of meer stappen afleiding (derivation) met lengte k α 0 α 1 α 2 α k verzameling terminal strings afleidbaar uit α V L(α) = {x Σ α x} G taal gegenereerd door contextvrije grammatica G L(G) = L(S) = {x Σ S x} G
8 voorbeeld contextvrije grammatica en afleidingen 8/57 G = ({EXPR, OP}, {p, q, (, ), +, }, P, EXPR) P : EXPR p OP + EXPR q OP EXPR (EXPR OP EXPR) verkorte notatie EXPR p q (EXPR OP EXPR) OP + EXPR (EXPR OP EXPR ) ( EXPR OP (EXPR OP EXPR)) (p OP ( EXPR OP EXPR)) (p OP (q OP EXPR)) (p OP (q EXPR )) (p OP (q p)) (p + (q p)) EXPR ( + ) (p + (q p))
9 voorbeeld linkspreferente afleiding/taal 9/57 linkspreferente afleiding (uniek) EXPR p q (EXPR OP EXPR) OP + taal EXPR ( EXPR OP EXPR) (p OP EXPR) (p + EXPR ) (p + ( EXPR OP EXPR)) (p + (q OP EXPR)) (p + (q EXPR )) (p + (q p)) L(G) = L(S) = {p, q, (p + q), (p q), (p + p), (p p),..., (p + (q p)),...}
10 voorbeeld bouwstenen concrete syntaxboom 10/57 A u 1 u 2... u n A u 1 u 2... u n A ε A ε
11 voorbeeld concrete syntaxboom 11/57 EXPR ( EXPR OP EXPR ) p + ( EXPR OP EXPR ) EXPR p q (EXPR OP EXPR) q p OP +
12 voorbeeld goedgehaakte rijen 12/57 S B S ε B (S) linkspreferente afleiding S B S ( S )S () S () B S ()( S )S ()() S ()() niet links- of rechtspreferente afleiding S B S B B S B(S) S B (S) ( S )(S) ()( S ) ()() dezelfde afleidingsboom S B S ( S ) B S ε ( S ) ε ε
13 dangling else (ambigue grammatica) 13/57 S if b then S else S S if b then S S a if b then if b then a else a 2 afleidingsbomen S S if b then S if b then S else S if b then S else S if b then S a a a a
14 2 afleidingsbomen/geen betekenisverschil 14/57 E p q E + E E E p + q + q E E E + E E + E E + E q p E + E p q q q (p + q) + q p + (q + q) 2 afleidingsbomen, geen verschil in betekenis
15 2 afleidingsbomen/betekenisverschil 15/57 E p q E + E E E p q + q E E E + E E E E E q p E + E p q q q (p q) + q p (q + q) (gebruikelijke prioriteiten) (ongebruikelijk) + p q q p + q q p q q + p q q + 2 afleidingsbomen, wel betekenis -verschil
16 prioriteiten 16/57 hogere prioriteit dan + E:expressie (som van termen) T :term (product van factoren) F :factor F F } {{ } T + F F } {{ } T + + F F } {{ } T } {{ } E T + T + T + T = ((T + T ) + T ) + T F F F F = ((F F ) F ) F E E + T (linksassociativiteit) E T T T F T F F p F q F (E) (doorbreken prioriteiten)
17 prioriteiten (vervolg) 17/57 E E + T T T T F F F p q (E) p q + q wordt ontleed als (p q) + q E E + T BINEXPR T F BINEXPR + VAREXPR q T F q VAREXPR p VAREXPR q F q p
18 syntax / acceptor / parser 18/57 beschrijving syntax programmeertaal: contextvrije grammatica G = (N, Σ, P, S) acceptor voor L(G): beslist voor x Σ of x L(G) (ja/nee-antwoord) parser voor L(G) (nuttiger): beslist voor x Σ of x L(G) en levert, als het antwoord ja is, een afleidingsboom van x S (te construeren) x 1 x 2 x m
19 constructie parser 19/57 1. stapelautomaten contextvrije grammatica G stapelautomaat (LL(0)) (nondeterministisch) 2. dominospel stapelautomaat (LL(1)) ((minder non)determ.) recursive descent parsing procedures implementatie indien determ.
20 syntactisch dominospel (beginsituatie/dominostenen) 20/57 beginsituatie (invoer x 1 x 2... x m ) bovenkant S onderkant boven dominostenen x 1 x 2 x m onder A u 1 u 2... u n flexibel A boven u 1 u 2 u n onder vaste volgorde A ε A ε
21 syntactisch dominospel (spelregels/doel) 21/57 aanleggen stenen goede oriëntatie geen kruisende verbindingen gelijk gelabelde vlakke kanten tegen elkaar doel bord volleggen volgens regels zodat er geen vlakke kanten meer over zijn (indien mogelijk)
22 syntactisch dominospel (voorbeeld) 22/57 S S B S BS ε B (S) invoerstring: ()() B S ε ( ) S
23 syntactisch dominospel (voorbeeld) 22/57 S S B S BS ε B (S) invoerstring: ()() B S ε ( ) S S S B B S S S S B B S S ε S S ε ( ( ) ) ( ε ) ( )
24 strategie dominospel 23/57 geen backtracking ( eenmaal gelegd blijft gelegd ) aansluiten legrichting horizontaal: links rechts legrichting verticaal: van boven naar beneden (top-down, LL-strategie) strategie behandel steeds de meest linkse, vrije, vlakke onderkant
25 LL(1)-strategie 24/57 S S v 1 v 2 v l x 1 x 1 x n x n y 1 y k y m meest linkse vrije vlakke onderkant ( ) v 1 Σ: v1 = y 1 : vlakke kanten samenvoegen v 1 y 1 : afbreken (foutmelding) v 1 N: plaats tegen deze onderkant een domino met een bovenkant gelabeld v 1 welke domino? gebruik k invoersymbolen lookahead LL(k)-strategie (k 1) (hier LL(1)-strategie)
26 uitgebreide grammatica 25/57 nieuwe symbolen S en uitgebreide grammatica G G = (N {S }, Σ { }, P {S S }, S ) S S S S v 1 v 2 v l x 1 x 1 x n x n y 1 y k y m meest linkse vrije vlakke onderkant ( )
27 dominoselectie 26/57 S Aβ x y aaneengesloten stuk S S xaβ rij vrije onderkanten v 1 v 2 v l = Aβ rij vrije bovenkanten y 1 y 2 y m = y Aβ αβ spelen A α spel is te voltooien y noodzakelijke voorwaarde: el 1 (y ) is 1e element van een eindproductie van αβ criterium dominoselectie: kies een domino A α zodat el 1 (y ) 1e element van een eindproductie van αβ is (β te specifiek)
28 lookaheadset/selectiecriterium domino 27/57 S S xaβ xαβ xy strings x en β specifiek voor deze afleiding lookaheadset productieregel A α LA(A α) = {a Σ { } ( w, γ, δ : w Σ γ, aδ V : S S waγ wαγ waδ)} selectiecriterium el 1 (y ) LA(A α)
29 berekening lookaheadsets 28/57 S S waγ wαγ waδ α ε? First(α) = {a Σ { } ( β : β V : α aβ)} Follow(A) = {a Σ { } ( α, β : α, β V : S αaaβ)} LA(A α) { = Follow(A) als α ε First(α) als (α ε) lookaheadsets eenvoudige grammatica s kunnen bepalen
30 transitive closure / Warshall s algorithm (1) 29/57 R : V V B binary relation on V U V xr + y there is a non-empty directed path from x to y with all intermediate nodes on the path in V (x, y V ) xr U y there is a non-empty directed path from x to y with all intermediate nodes on the path in U (x, y V ) R = R R V = R +
31 transitive closure / Warshall s algorithm (2) 30/57 v V \ U xr U+{v} y xr U y (xr U v vr U y) xr U+{v} v {property R U+{v} } xr U v (xr U v vr U v) {absorption} xr U v vr U+{v} y vr U y
32 transitive closure / Warshall s algorithm (3) 31/57 [ var r : array(v V )of bool; U : set of V U : = ; for x, y : x, y V do r[x, y] : = xry od; { invariant: U V r = R U } do U V [ var v : V ; v : v V \ U; for x, y : x, y V do r[x, y] : = r[x, y] (r[x, v] r[v, y]) od; { r = R U+{v} } U : = U + {v} ] od { r = R V = R + } ]
33 transitive closure / Warshall s algorithm (4) 32/57 f R (x) = {y V xry} (x V ) f RU+{v} (x) { } = definition fru+{v} {y V xr U+{v} y} = {property R U+{v} } {y V xr U y (xr U v vr U y)} = {set calculus} {y V xr U y} {y V xr U v vr U y} = {definition f RU } f RU (x) {y V (v f RU (x)) vr U y} = {set calculus, definition f RU } { fru (v) if v f f RU (x) RU (x) if v / f RU (x) f RU+{v} (v) = f RU (v)
34 transitive closure / Warshall s algorithm (5) 33/57 [ var fr : array(v )of set of V for x : x V do fr[x] : = ; for y : v V do if xry fr[x] : = fr[x] {y} [] (xry) skip fi od od; { fr = f R } for v : v V do for x : x V do if v fr[x] fr[x] : = fr[x] fr[v] [] v / fr[x] skip fi od od { fr = f R + } ]
35 First as reflexive and transitive closure 34/57 for all x, y V xfy α, β : α, β V : x αyβ P α ε xf y β : β V : x yβ for all x V First 1 (x) = {y V α, β : α, β V : x αyβ P α ε } First(x) = {y V β : β V : x yβ }
36 voorbeeld lookaheadsets (1) 35/57 S S S BS ε B (S) FOLLOW (S) = { ), } symbool ) uit regel B (S) symbool uit regel S S regel S BS levert geen bijdrage LA(S S ) = First(S ) = { (, } LA(S BS) = First(BS) = { ( } (BS ε) LA(S ε) = Follow(S) = { ), } LA(B (S)) = First( (S) ) = { ( } LA(S BS) en LA(S ε) zijn disjunct
37 voorbeeld lookaheadsets (2) 36/57 S E E E + T E T T T F T F F p F q F (E) LA(S E ) = { p, q, ( } LA(E E + T ) = { p, q, ( } LA(E T ) = { p, q, ( } laatste 2 lookaheadsets zijn niet disjunct
38 LL(1)-strategie / LL(1)-voorwaarde 37/57 rij vrije onderkanten v 1 v 2 v l rij vrije bovenkanten y 1 y 2 y m meest linkse vrije onderkant v 1 v1 Σ v 1 = y 1 : voeg samen v 1 = A N: speel A α met y 1 LA(A α) v 1 = = y 1 : voeg samen en klaar anders blokkade blokkade invoer / L(G) verkeerde domino gespeeld geen verkeerde keuze te spelen domino LL(1)-voorwaarde voor alle A α P, A β P en α β geldt LA(A α) LA(A β) =
39 implementatie LL(1)-strategie 38/57 stelsel recursieve procedures symbool X V = N Σ procedure P X construeert een parse tree met wortel X voor een prefix van de resterende invoer X X w (NB als X Σ, dan X = w) w
40 tokens en terminals 39/57 STAT ifsym EXPR thensym STATS elsesym STATS fisym STAT if EXPR then STATS else STATS fi STAT idsym becomessym EXPR STAT ID := EXPR ID n voor alle n L(e idsym ) ID pseudoterminal
41 recursive descent parsing procedures (terminals) 40/57 a Σ proc P a = (if sym = a voeg a en sym samen ;NEXTSYM fi ) huidige token sym: meest linkse vrije bovenkant meest recente aanroep parsing procedure: meest linkse vrije onderkant
42 recursive descent parsing procedures (nonterminals) 41/57 A N met productieregels A α 1, A α 2,..., A α k proc P A = (if sym LA(A α 1 ) speel A α 1 ; Q α1 [] sym LA(A α 2 ) speel A α 2 ; Q α2. [] sym LA(A α k ) speel A α k ; Q αk fi ) waarin Q v1 v 2 v n = P v1 ; P v2 ; ; P vn
43 analyse van invoerstring x 42/57 NEXTSYM { sym = el 1 (x ) } ; speel S S ;P S ;if sym = voeg en fi samen (NB geen procedure P : na volgen geen symbolen meer) abortie (blokkade): x / L(G) beëindiging: x L(G) parse tree: - expliciet construeren (als uitvoerparameter parsing procedures) - stapel actieve recursieve procedure-aanroepen wortelpad in parse tree
44 voorbeeld recursive descent parsing procedures (1) 43/57 lookaheadset S S {a, b, c} S asa {a} S bsb {b} S cx {c} X ε {a, b, } X cx {c} proc P S = (if sym {a} P a ; P S ; P a [] sym {b} P b ; P S ; P b [] sym {c} P c ; P X fi) proc P X = (if sym {c} P c ; P X [] sym {a, b, } skip fi) proc P a = (if sym = a NEXTSYM fi) proc P b = (if sym = b NEXTSYM fi) proc P c = (if sym = c NEXTSYM fi)
45 voorbeeld recursive descent parsing procedures (2) 44/57 lookaheadset S S {(, } S BS {(} S ε {), } B (S) {(} proc P S = (if sym {(} P B ; P S [] sym {), } skip fi) proc P B = (if sym {(} P ( ; P S ; P ) fi) proc P ( = (if sym = ( NEXTSYM fi) proc P ) = (if sym =) NEXTSYM fi)
46 vereenvoudiging recursive descent parsing procedures (1) 45/57 proc P a = (if sym = a NEXTSYM fi) (a Σ) TERM(a) met proc TERM = ( a : Σ if sym = a NEXTSYM fi) A α enige regel met A in linkerlid proc P A = (if sym LA(A α) Q α fi) proc P A = (Q α )
47 vereenvoudiging recursive descent parsing procedures (2) 46/57 A α 1,..., A α k, A ε alle regels met A in linkerlid proc P A = (if sym LA(A α 1 ) Q α1 [] sym LA(A α 2 ) Q α2. [] sym LA(A α k ) Q αk [] sym / ( i : 1 i k : LA(A α i )) skip fi)
48 staartrecursie 47/57 A βa A ε LA(A βa) = LA(A ε) = Follow(A) First(β) (β ε) First(β) First(A) Follow(A) LL(1)-conditie leidt tot de eisen (β ε) First(β) Follow(A) = proc P A = (if sym First(β) Q β ; P A [] sym / First(β) skip fi) equivalente procedure (β bevat geen A) proc P A = (do sym First(β) Q β od) andere notatie productieregels A {β} β ε
49 ambigu 48/57 STATS STAT STATS STATS; STATS STATS STATS STATS STATS STATS STATS STATS STATS STATS STATS STAT ; STAT ; STAT STAT ; STAT ; STAT
50 niet ambigu, niet LL(1) 49/57 STATS STATS ; STAT STATS STAT STATS STATS; STAT STATS ; STAT ; STAT STATS STAT ; STATS STATS STAT STATS STAT ; STATS STAT ; STATS STAT ;
51 expressies en prioriteiten 50/57 ambigu E E + E E E E 2 afleidingsbomen E (E) E 3 niet ambigu (prioriteiten) E T (E T {+T }) E E + T T F (T F { F }) T T F F (E) F 3 algemeen (prioriteiten) E i E i+1 (1 i < i MAX ) E i E i OP i E i+1 E imax ID NUMBER (E 1 )
52 factoriseren naar LL(1)-vorm 51/57 A αβ LA(A αβ) = First(αβ)... A αγ LA(A αβ) = First(αγ)... factoriseren A αa A β A γ nieuwe LL(1)-conditie (α ε) niet disjunct als First(α) LA(A β) LA(A γ) =
53 voorbeeld factoriseren 52/57 STATS STAT α = STAT β = ε STATS STAT ; STATS γ =; STATS STATS STAT RSTATS First(STAT ) RSTATS ε Follow(STATS) RSTATS ; STATS { semicolonsym } LL(1)-conditie: {semicolonsym} Follow(STATS) = alternatief RSTATS ; STAT RSTATS eenvoudiger: STATS STAT { ; STAT } proc P STATS = (P STAT ; do sym = semicolonsym NEXTSYM; P STAT od)
54 eliminatie linksrecursie (1) 53/57 A γ LA(A γ) = First(γ)... A Aβ LA(A Aβ) = First(Aβ)... First(γ) First(Aβ) niet disjunt als First(γ) γββ A A β A γ β (γβ)β (linksassociatief)
55 eliminatie linksrecursie (2) 54/57 A γa A γa A γ{β} A ε A {β} A βa LL(1)-conditie: (β ε) First(β) Follow(A ) = (Follow(A ) = Follow(A)) γββ A γ A γ(ββ) β A β A ε
56 eliminatie linksrecursie (3) 55/57 A t γ A γ γ A t β A β A β A γ t β A β t : A A β β A γ ε
57 array variabelen (1) 56/57 a[i + j][2 k] interpretatie: (a[i + j]) [2 k] VAR ID VAR VAR [ EXPR ] LA(VAR ID) = {idsym} LA(VAR VAR [ EXPR ]) = {idsym} LL(1)-vorm VAR ID RVAR RVAR ε RVAR [ EXPR ] RVAR LA(RVAR ε) = Follow(VAR) LA(RVAR [ EXPR ] RVAR) = {lsqbrsym} LL(1)-conditie: lsqbrsym / Follow(VAR)
58 array variabelen (2) 57/57 compacter VAR ID { [ EXPR ] } P VAR = (P ID ; do sym = lsqbrsym NEXTSYM; P EXPR ; TERM(rsqbrsym) od)
Tentamen Compilers (2M220) 19 maart 2002, 9.00u-12.00u
12/k Tentamen Compilers (2M220) 19 maart 2002, 9.00u-12.00u 1. Beschouw de volgende deelverzameling van de ASCII-karakters V = { 0, 1,..., 9, A, B,..., Y, Z, a, b,..., y, z } De karakters in V staan vermeld
Nadere informatieInhoud 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 informatieTentamen Compilers (2IC25) 21 juni 2010, 9.00u-12.00u
Tentamen Compilers (2IC25) 21 juni 2010, 9.00u-12.00u 1. Beschouw de reguliere expressie e = (a (a b) ) c (Er mag geen materiaal worden geraadpleegd.) (De TL-interpretator is als bijlage toegevoegd.) Faculteit
Nadere informatieSamenvatting hoorcolleges Vertalerbouw
Samenvatting hoorcolleges Vertalerbouw J.H. Jongejan 7 juni 2010 LaTeX van Hedde Bosman en Jan Jongejan. 1 Inhoudsopgave 1 Voorbeeld van een vertaling 3 1.1 Brontaal (source language)......................................
Nadere informatieCompilers (2IC25) docent: G. Zwaan, HG 5.41, tel. ( )4291, webpagina:
Compilers (2IC25) docent: G. Zwaan, HG 5.41, tel. (040 247)4291, e-mail: G.Zwaan@tue.nl webpagina: http://www.win.tue.nl/~wsinswan/compilers/ compileren compilatie vertalen (een werk) bijeenbrengen door
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 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 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 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 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 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 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 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 informatiecompileren & interpreteren - compileren: vertalen (omzetten) - interpreteren: vertolken
compileren & interpreteren - compileren: vertalen (omzetten) - interpreteren: vertolken - belangrijkste punten: - ontleden van de programmatekst - bijhouden van de datastructuren Data Structuren en Algoritmen
Nadere informatieSamenvatting hst. 3 sec. 1-3
Samenvatting hst. 3 sec. 1-3 infixr 4 (< >) :: Parser a b! Parser a b! Parser a b (p < > q) xs = p xs ++ q xs infixl 6 () :: Parser a (b!c)! Parser a b! Parser a c (p q) xs = [(f b,zs) (f,ys)"p
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 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 informatiecolleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser
colleges recursieve datastructuren college 9 interpreteren: waarde van bomen bepalen transformeren: vorm van bomen veranderen parseren herkennen van expressie in de tekst herkennen van functies onderwerp
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 informatieRecursive-Descent Parsing
Week 2 Recursive-Descent Parsing PRACTICUM Tijdens dit practicum wordt een eenvoudige one-pass recursive-descent vertaler ontwikkeld in Java. We volgen daarbij hoofdstuk 4 van Watt & Brown. De te ontwikkelen
Nadere informatieZevende college algoritmiek. 23/24 maart Verdeel en Heers
Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht
Nadere informatieZevende college Algoritmiek. 6 april Verdeel en Heers
Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)
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 informatieUitwerking tentamen Algoritmiek 9 juni :00 17:00
Uitwerking tentamen Algoritmiek 9 juni 2015 14:00 17:00 1. Clobber a. Toestanden: m x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal O gelijk aan het aantal X of er is hooguit één
Nadere informatieProgrammeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieVierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument
Complexiteit 2019/04 College 4 Vierde college complexiteit 26 februari 2019 Beslissingsbomen en selectie Toernooimethode Adversary argument 1 Complexiteit 2019/04 Zoeken: samengevat Ongeordend lineair
Nadere informatiestart -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c
Een Minimaal Formalisme om te Programmeren We hebben gezien dat Turing machines beschouwd kunnen worden als universele computers. D.w.z. dat iedere berekening met natuurlijke getallen die met een computer
Nadere informatiep. 1/39 Voorbeeld: R = {R 1 : if same(x,a) and same(y,b) then R 2 : if same(x,b) then add(u,f) fi, R 3 : if same(z,c) and same(w,d) then
Bottom-up Inferentie Data-gestuurde inferentievorm: Vergelijking Top-down inferentie: selectie regels match (sub)doel conclusie Uiteindelijke Feiten Doelen Initiële feitenverzameling: F = {A} Regelverzameling:
Nadere informatieKennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie
Kennisrepresentatie & Redeneren Piter Dykstra Instituut voor Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 8 oktober 2007 GRAMMATICA S Kennisrepresentatie & Redeneren Week6: Grammatica
Nadere informatieZevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort
College 7 Zevende college complexiteit 17 maart 2008 Ondergrens sorteren, Quicksort 1 Sorteren We bekijken sorteeralgoritmen gebaseerd op het doen van vergelijkingen van de vorm A[i] < A[j]. Aannames:
Nadere informatieCLIPS en het Rete-algoritme. Productieregels in CLIPS. Feiten. Productiesysteem (voorbeeld)
CLIPS en het Rete-algoritme CLIPS: acroniem voor C Language Integrated Production System Verwant aan OPS5 (Carnegie-Mellon University), en gebaseerd op ART (Artificial Reasoning Tool) Ontwikkeld door Lyndon
Nadere informatieNatuurlijke-Taalverwerking
Natuurlijke-Taalverwerking Week 5 Parsing Overzicht DCG s en links-recursie Shift-reduce parsing Chart parsing Generatie Links-recursie?- voorouder(geert,youri). ouder(geert,jan). ouder(jan,youri). voorouder(x,y)
Nadere informatieConstraint satisfaction. Computationele Intelligentie. Voorbeelden. Een constraint satisfaction probleem. Constraint Satisfaction
Constraint satisfaction Computationele Intelligentie Constraint Satisfaction Een constraint satisfaction probleem (CSP) bestaat uit: een verzameling variabelen; een domein van waarden voor elke variabele;
Nadere informatieProgrammeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
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 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 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 informatieCompilers.
Compilers joost.vennekens@denayer.wenk.be Job van een compiler Job van een compiler 68: newarray int int grens = min + (max - min) / 2; int[] kleiner = new int[n]; int[] groter = new int[n]; int k = 0;
Nadere informatieUitwerking tentamen Algoritmiek 10 juni :00 13:00
Uitwerking tentamen Algoritmiek 10 juni 2014 10:00 13:00 1. Dominono s a. Toestanden: n x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal X gelijk aan het aantal O of hooguit één hoger.
Nadere informatieDerde college complexiteit. 7 februari Zoeken
College 3 Derde college complexiteit 7 februari 2017 Recurrente Betrekkingen Zoeken 1 Recurrente betrekkingen -1- Rij van Fibonacci: 0,1,1,2,3,5,8,13,21,... Vanaf het derde element: som van de voorgaande
Nadere informatiesoftware constructie recursieve datastructuren college 15 5 stappen plan ontwerpen de software bestaat uiteindelijk uit datatypen functies
software constructie recursieve datastructuren college 15 software engineering highlights 1 de software bestaat uiteindelijk uit datatypen functies verbindingen geven gebruik aan main is de top van het
Nadere informatieUitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur
Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, 10.00 13.00 uur Opgave 1. a. Een toestand wordt bepaald door: het aantal lucifers op tafel, het aantal lucifers in het bezit van Romeo,
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 informatieVijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument
Complexiteit 2017/05 College 5 Vijfde college complexiteit 21 februari 2017 Selectie Toernooimethode Adversary argument 1 Complexiteit 2017/05 Opgave 28 Gegeven twee oplopend gesorteerde even lange rijen
Nadere informatieVierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search
Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben
Nadere informatieZevende college complexiteit. 7 maart Mergesort, Ondergrens sorteren (Quicksort)
College 7 Zevende college complexiteit 7 maart 2017 Mergesort, Ondergrens sorteren (Quicksort) 1 Inversies Definitie: een inversie van de permutatie A[1],A[2],...,A[n] is een paar (A[i],A[j]) waarvoor
Nadere informatieZevende college algoritmiek. 24 maart Verdeel en Heers
Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties
Nadere informatieStudentnummer: Inleiding Taalkunde 2013 Eindtoets Zet op ieder vel je naam en studentnummer!
Inleiding Taalkunde 2013 Eindtoets Zet op ieder vel je naam en studentnummer! Dit tentamen bestaat uit 7 vragen. Lees elke vraag goed, en gebruik steeds de witte ruimte op de pagina, of de achterkant van
Nadere informatieAchtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren
Achtste college algoritmiek 12 april 2019 Verdeel en Heers Dynamisch Programmeren 1 Uit college 7: Partitie Partitie Partitie(A[l r]) :: // partitioneert een (sub)array, met A[l] als spil (pivot) p :=
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 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 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 informatieVierde college complexiteit. 16 februari Beslissingsbomen en selectie
Complexiteit 2016/04 College 4 Vierde college complexiteit 16 februari 2016 Beslissingsbomen en selectie 1 Complexiteit 2016/04 Zoeken: samengevat Ongeordend lineair zoeken: Θ(n) sleutelvergelijkingen
Nadere informatieDatastructuren: stapels, rijen en binaire bomen
Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)
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 informatieOpgaven bij Hoofdstuk 3 - Productiesystemen
Opgaven bij Hoofdstuk 3 - Productiesystemen Top-down inferentie In de opgaven in deze paragraaf over top-down inferentie wordt aangenomen dat de feitenverzameling alleen feiten bevat die als getraceerd
Nadere informatieAls een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.
HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een
Nadere informatie7 Omzetten van Recursieve naar Iteratieve Algoritmen
7 Omzetten van Recursieve naar Iteratieve Algoritmen Het lijkt mogelijk om elke oplossings-algoritme, die vaak in eerste instantie recursief geformuleerd werd, om te zetten in een iteratieve algoritme
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 informatieMMI. The Digital World 4. Peter van Kranenburg
MMI The Digital World 4 Peter van Kranenburg Intro Vandaag: Terugblik vorige week Leren programmeren Algoritmes Terugblik Hogere-orde programmeertalen maken het schrijven van code eenvoudiger. Je hoeft
Nadere informatieTweede college algoritmiek. 12 februari Grafen en bomen
College 2 Tweede college algoritmiek 12 februari 2016 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices)
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 informatieSyntax- (compile), runtime- en logische fouten Binaire operatoren
Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle
Nadere informatieDivide & Conquer: Verdeel en Heers vervolg. Algoritmiek
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:
Nadere informatieEen eenvoudig algoritme om permutaties te genereren
Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden
Nadere informatieHOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren
HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet
Nadere informatieAI Kaleidoscoop. College 9: Natuurlijke taal. Natuurlijke taal: het probleem. Fases in de analyse van natuurlijke taal.
AI Kaleidoscoop College 9: atuurlijke taal Het Probleem Grammatica s Transitie netwerken Leeswijzer: Hoofdstuk 14.0-14.3 AI9 1 atuurlijke taal: het probleem Communiceren met computers als met mensen, middels
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 informatieReguliere talen: overzicht
Reguliere talen!!reguliere grammatica: versimpelde Contextvrije grammatica!!finite-state Automaton: andere manier om een taal te beschrijven!!reguliere Expressie nog een andere manier Alle drie kunnen
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 informatieUitwerking tentamen Algoritmiek 9 juli :00 13:00
Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel
Nadere informatieVierde college complexiteit. 14 februari Beslissingsbomen
College 4 Vierde college complexiteit 14 februari 2017 Restant zoeken Beslissingsbomen 1 Binair zoeken Links := 1; Rechts := n; while Links Rechts do Midden := Links + Rechts 2 ; if X = A[Midden] then
Nadere informatieUitbreiding van de Model Specification Language (MSL) compiler. Thierry Cornelis
Uitbreiding van de Model Specification Language (MSL) compiler Thierry Cornelis 29 november 2002 Inhoudsopgave 1 Prototype 1 3 1.1 AToM 3............................... 3 1.2 Compileren............................
Nadere informatieAchtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Nadere informatieEen korte samenvatting van enkele FORTRAN opdrachten
Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5
Nadere informatieBomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen. deel 2. Tiende college
10 Bomen deel 2 Tiende college 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 1 arboretum ongericht 8.8 tree graphs 9.4 rooted trees ch.10 binary trees 2 gericht geordend links/rechts bomen
Nadere informatie4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e
4EE11 Project Programmeren voor W College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Grotere programma s ontwerpen/maken Datastructuren en algoritmes 2 Evolutie,
Nadere informatieElfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort
Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D
Nadere informatieStacks and queues. Hoofdstuk 6
Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked
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 informatieTiende college algoritmiek. 26 april Gretige algoritmen
Algoritmiek 01/10 College 10 Tiende college algoritmiek april 01 Gretige algoritmen 1 Algoritmiek 01/10 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag
Nadere informatieZesde college complexiteit. 19 maart Mergesort, Ondergrens sorteren Quicksort, Shellsort
College 6 Zesde college complexiteit 19 maart 2019 Mergesort, Ondergrens sorteren Quicksort, Shellsort 1 Vorige keer Voor sorteeralgoritmen gebaseerd op arrayvergelijkingen, waarbij per arrayvergelijking
Nadere informatieAlgoritmiek. 15 februari Grafen en bomen
Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieUitgebreide uitwerking Tentamen Complexiteit, mei 2007
Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In
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 informatie1 Hoe PHP werkt van broncode tot weergave 1
Inhoud 1 Hoe PHP werkt van broncode tot weergave 1 Fase 1: lexicale analyse 2 Fase 2: parsering 3 Fase 3: compilatie 5 Fase 4: interpretatie 7 Samenvatting 7 2 Ik hou van Xdebug 9 Inleiding 10 Werken met
Nadere informatieInleiding: Combinaties
Zinnen 1 Inleiding: Combinaties Combinaties op verschillende niveaus: Lettergrepen als combinaties van fonemen. Woorden als combinaties van morfemen. Zinnen als combinaties van woorden en woordgroepen.
Nadere informatieTW2020 Optimalisering
TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 2 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 1 / 28 Minimum Opspannende Boom (Minimum Spanning
Nadere informatieVierde college algoritmiek. 23/24 februari Complexiteit en Brute Force
Algoritmiek 2017/Complexiteit Vierde college algoritmiek 23/24 februari 2017 Complexiteit en Brute Force 1 Algoritmiek 2017/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
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 informatieVijfde college algoritmiek. 2/3 maart Exhaustive search
Vijfde college algoritmiek 2/3 maart 2017 Exhaustive search 1 Voor- en nadelen Brute force: Voordelen: - algemeen toepasbaar - eenvoudig - levert voor een aantal belangrijke problemen (zoeken, patroonherkenning)
Nadere informatieTwaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify
Algoritmiek 2016/Branch & Bound Twaalfde college algoritmiek 13 mei 2016 Branch & Bound Heap, Heapsort & Heapify 1 Algoritmiek 2016/Branch & Bound TSP met Branch & Bound Mogelijke ondergrenzen voor de
Nadere informatieStacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49
Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen
Nadere informatieTiende college algoritmiek. 14 april Gretige algoritmen
College 10 Tiende college algoritmiek 1 april 011 Gretige algoritmen 1 Greedy algorithms Greed = hebzucht Voor oplossen van optimalisatieproblemen Oplossing wordt stap voor stap opgebouwd In elke stap
Nadere informatieUNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS
UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS Laatste aanpassing: 15 oktober 2003 Inhoudsopgave 1 Bestandsnamen 3 2 Organizatie Bestanden 3 3 Indentatie
Nadere informatieNatuurlijke-taalverwerking. Week 2
Natuurlijke-taalverwerking Week 2 Overzicht Context-vrije Grammatica s CFGs in Prolog Definite Clause Grammars (DCGs) Construeren van bomen Recapitulatie Doel: computers taal laten begrijpen Noodzaak:
Nadere informatieInleiding tot Func.oneel Programmeren les 3
Inleiding tot Func.oneel Programmeren les 3 Kris Luyten, Jo Vermeulen {kris.luyten,jo.vermeulen}@uhasselt.be Exper.secentrum voor Digitale Media Universiteit Hasselt Currying Currying: een func.e met meerdere
Nadere informatieInleiding Vertalerbouw, versie 2003
Inleiding Vertalerbouw, versie 2003 Dr.ir. H. Meijer, Subfaculteit Informatica, KU Nijmegen Introductie Een vertaler is een programma, meer algemeen een systeem, dat een tekst in een bepaalde taal omzet
Nadere informatieGerichte Grafen Boolese Algebra s &. Logische Netwerken
Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 10 maart 2009 Gerichte Grafen Boolese Algebra s &. Logische Netwerken. Paragrafen
Nadere informatie