Reguliere talen: overzicht
|
|
- Veerle van de Brink
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 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 ze dezelfde talen beschrijven Reguliere talen: overzicht NFA Stelling 12 RG onmogelijk triviaal CFG Definitie 4 +6 triviaal Stelling 13 triviaal Stelling 7 ZRG Definitie (11) Definitie 8 +9 Stelling 11 Stelling 16 Definitie DFA Definitie 1 +3 Stelling 17 RE Definitie 14+15
2 Drie reguliere talen L1 L3 S! a X " X! c X Y Y! b S " (a (c*) b)* L2 S b a a c X Y c Publieksvraag: welke talen zijn gelijk aan elkaar? Geef een DFA en een reguliere expressie voor L1!! Drie reguliere talen L1 L3 S! a X " X! c X Y Y! b S " (a (c*) b)* L2 ac zit in L1, maar niet in L2 of L3 L2 en L3 beschrijven dezelfde taal (gebruik stelling 7+17) S b a a c X Y c Geef een reguliere grammatica voor L2 en L3
3 Abu Ja'far Muhammad ibn Musa al-khwarizmi al-kitab al-mukhtasar fi Hisab al-jabr w al-muqabala over Algoritmi de numero Indorum het getal van de Indiërs boek Liber algebrae et almucabala 1140 rekenen Abu Ja'far Muhammad ibn Musa al-khwarizmi al-kitab al-mukhtasar fi Hisab al-jabr w al-muqabala uit Khiva het boek uitgebreid over herstellen vergelijken
4 Recursieve functies op lijsten product :: [Int]! Int product [ ] = 1 product (x:xs) = x * product xs and :: [Bool]! Bool and [ ] = True and (x:xs) = x && and xs sum :: [Int]! Int sum [ ] = 0 sum (x:xs) = x + sum xs Generalisatie: lijst-totalisator foldr :: (a!a!a)! a! [a]! a zo combineren neutrale waarde foldr (#) e [ ] = foldr (#) e (x:xs) = e x # foldr (#) e xs
5 Specialisatie van de generalisatie!!als foldr de generalisatie is van sum, product, en and...!!... dan zijn sum, product, en and speciale gevallen van foldr product = foldr (*) 1 and = foldr (&&) True sum = foldr (+) 0 or = foldr ( ) False concat = foldr (++) [ ] Zelfgemaakt datatype voor lijsten data List a = Cons a (List a) Nil!!Met functies foldlist som :: :: List ( Int a!b!b! Int, b )! List a! b som and (Cons :: List x Bool xs)! = Bool x + som xs foldlist som and length (Cons Nil (c,n):: x (Cons List xs) a x =! = xs) 0 x Int && and xs and length Nil (Cons x = xs) c = x True = (foldlist 1 + length (c,n) xs xs) foldlist length (c,n) Nil Nil = n = 0
6 Zelfgemaakt datatype voor bomen data Tree a = Bin (Tree a) (Tree a) Leaf a!!met functies foldtree :: (b!b!b(, a!b)!tree a! b foldtree (b,lf) (Bin = f le where ri) = b f (foldtree (Bin le ri) (b,lf) = b (f le) le) (foldtree ri) (b,lf) ri) foldtree f (Leaf (b,lf) x) (Leaf = lf x) x = lf x Functies op bomen foldtree :: ( b!b!b, a!b )! Tree a! b!!specialisaties: countleafs :: Tree a! Int countleafs = foldtree ( (+), \x!1 ) sumleafs :: Tree Int! Int sumleafs = foldtree ( (+), \x!x ) listleafs :: Tree a! [a] listleafs = foldtree ( (++), \x![x] )
7 De essentie van Tree-functies type TreeAlgebra a b = ( b!b!b, a!b ) countleafsfuns :: ( TreeAlgebra Int!Int!Int a, Int a!int ) countleafsfuns = ( (+), \x!1 ) countleafs :: Tree a! Int countleafs = foldtree ( countleafsfuns (+), \x!1 ) Tree, TreeAlgebra en functie foldtree data Tree a = Bin (Tree a) (Tree a) Leaf a type TreeAlgebra a b = ( b!b!b, a!b ) foldtree :: TreeAlgebra a b!tree a! b foldtree (b,lf) = f where f (Bin le ri) = b (f le) (f ri) f (Leaf x) = lf x
8 Voorbeelden van TreeAlgebra type TreeAlgebra a b = ( b!b!b, a!b ) countleafsfuns :: TreeAlgebra a Int countleafsfuns = ( (+), \x!1 ) sumleafsfuns :: TreeAlgebra a Int sumleafsfuns = ( (+), \x!x ) listleafsfuns :: TreeAlgebra a [a] listleafsfuns = ( (++), \x![x] ) Definitie een algebra!!een algebra voor een datatype bestaat uit carrier set "!een type dat het resultaat is van een fold, die "!functies in een tupel semantiek neerzet in plaats van constructorfuncties van dat datatype countleafsfuns :: TreeAlgebra a Int countleafsfuns = ( (+), \x!1 )
9 Voorbeelden van algebras data Tree a = Bin (Tree a) (Tree a) Leaf a data List a = Cons a (List a) Nil type TreeAlgebra a b, a! b ) type ListAlgebra a b = ( a! b! b, b ) data Par = Match Par Par Empty type ParAlgebra, b ) b Voorbeelden van algebras data Tree a = Bin (Tree a) (Tree a) Leaf a Var String type TreeAlgebra a b, a! b ), b! b! b! b, Int! b ), String! b )
10 Gebruik van ExprAlgebra, b! b! b, Int! b ) evalexpr :: Expr! Int evalexpr = foldexpr evalexpralgebra evalexpralgebra :: ExprAlgebra Int evalexpralgebra = ( (+), (*), id ) Definitie van foldexpr, b! b! b, Int! b ) foldexpr :: ExprAlgebra b! Expr! b foldexpr (a,m,c) = f where f (Add e1 e2) = a (f e1) (f e2) f (Mul e1 e2) = m (f e1) (f e2) f (Con n) = c n
11 Taal: syntax en semantiek * 5 parseexpr = start p where p = < > <*> Add (Con 3) (Mul (Con 4) (Con 5)) 23 evalexpr = fold a where a = (,,, ) Syntax en semantiek van expressies met variabelen Var String, b! b! b! b, Int! b ), String! b ) * 5 Add (Con 3) (Mul (Con 4) (Con 5)) * x Add (Con 3) (Mul (Con 4) (Var x ))
12 Uitrekenen van expressies met variabelen Var String, b! b! b! b, Int! b ), String! b ) evalexpr :: Expr [(String,Int)]!! Expr! Int evalexpr = env foldexpr = foldexpr evalexpralgebra where where evalexpralgebra :: ExprAlgebra Int evalexpralgebra = ( (+), (*), id,) (env?????) ) ) ((v,w):vws)? q v==q = w otherwise = vws? q Syntax en semantiek van expressies met definities, b! b! b, Int! b Var String, String! b ) Def String Expr Expr, String!b!b! b ) * x let 3 + x=5*2 4 * x in where x=5*2 * x Add (Con 3) (Mul (Con 4) (Var x )) Def x (Mul (Con 5) (Con 2)) ( Add (Con 3) (Mul (Con 4) (Var x )))
13 Uitrekenen van expressies met definities Var String Def String Expr Expr, b! b! b, Int! b, String! b ), String!b!b! b ) evalexpr :: Env! Expr! Int evalexpr env = foldexpr evalexpralgebra where evalexpralgebra :: ExprAlgebra Int evalexpralgebra = ( (+), (*), id, (env?) ), bind ) bind x d e = e maar dan in een environment waarin x aan d gebonden is Uitrekenen van expressies, poging #2 Var String, b! b! b, Int! b, String! b ) evalexpr :: Expr Env! Env Expr! Int Int evalexpr env exp = foldexpr exp env = = foldexpr ealgebra ealgebra exp where env where where ealgebra :: ExprAlgebra (Expr!Int) (Env!Int) ealgebra = ( (+) add, (*) mul,, id con, (env?), var ) )
14 Uitrekenen van expressies, poging #2 Var String Def String Expr Expr, b! b! b, Int! b, String! b, String!b!b! b ) evalexpr :: Expr! Env! Int evalexpr = foldexpr evalexpralgebra where evalexpralgebra :: ExprAlgebra (Env!Int) evalexpralgebra = ( add, mul, con, var, def ) add :: (Env!Int) b! (Env!Int) b! (Env!Int) b! add f g e = f e + g e Uitrekenen van expressies, poging #2 add :: b! b! b add f g e = f e + g e (Env!Int) (Env!Int) (Env!Int)! mul :: (Env!Int) b! (Env!Int) b! (Env!Int) b! mul f g e = f e * g e con :: Int Env!! Int b con n e = n con = const var :: String! b var x e = e? x Env! Int var = flip (?) def :: String!(Env!Int) b! (Env!Int) b! (Env!Int) b! def x f g e = g ( (x, f e ): e ) def = (<:=>)
15 Compositionaliteit!!Een semantiek is compositioneel als de betekenis van een geheel een functie is van de betekenissen van de delen eval (Add x y) = add (eval x) (eval y) Compositionaliteit!!Een compositionele semantiek kun je schrijven als fold over de expressie waarbij een algebra vervangingen geeft voor de constructoren = eval :: Expr! Int eval = foldexpr alg alg :: ExprAlgebra Int alg = (,,, )
Samenvatting 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 informatieWat is FP? The Haskell School of Expression. Functies. Types 1+1=2. Iedere expressie (en waarde) heeft een type.
Wat is FP? The Haskell School of Expression Functioneel Programmeren Een andere manier om tegen programmeren aan te kijken Gebaseerd op het uitrekenen van expressies 1+1=2 Eenvoudig maar krachtig (modulair,
Nadere informatieAlgoritmiek. 8 uur college, zelfwerkzaamheid. Doel. Hoe te realiseren
Algoritmiek Doel Gevoel en inzicht ontwikkelen voor het stapsgewijs, receptmatig oplossen van daartoe geëigende [biologische] probleemstellingen, en dat inzicht gebruiken in het vormgeven van een programmeerbare
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 informatieAlgoritmiek. 12 uur college, werkgroep, zelfwerkzaamheid. Doel. Eindniveau. Hoe te realiseren
Algoritmiek Doel Gevoel en inzicht ontwikkelen voor het stapsgewijs, receptmatig oplossen van daartoe geëigende [biologische] probleem-stellingen, en dat inzicht gebruiken in het vormgeven van een programmeerbare
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 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 informatiePython. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14
Python Vraag 1: Expressies en types Integrated Development Environment (IDE): Ø Wing 101 (gratis te downloaden op www.wingware.com) Oefeningen in de shell >> noemen we de prompt Python commando s = expressies
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 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 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 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 informatieAlgoritmiek. Tentamen = Syllabus + College
Algoritmiek Doel Gevoel en inzicht ontwikkelen voor het stapsgewijs, receptmatig oplossen van daartoe geeigende [biologische] probleem-stellingen, en dat inzicht gebruiken in het vormgeven van een programmeerbare
Nadere informatieCollege Notatie, Recursie, Lijsten
College 2016-2017 2. Notatie, Recursie, Lijsten Doaitse Swierstra (Jeroen Bransen) Utrecht University September 13, 2016 Functieapplicatie functieapplicatie associeert naar links: als x in f x y moet kiezen
Nadere informatieinleiding theoretische informatica practicum 1 deadline woensdag 20 februari 2008 om uur
1 Inleiding inleiding theoretische informatica 2007-2008 practicum 1 deadline woensdag 20 februari 2008 om 14.00 uur Dit practicum is een kennismaking met functioneel programmeren. Twee belangrijke functionele
Nadere informatieTentamen 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 informatieAanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur
Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, 13.30-15.30 uur Naam: Studentnummer: Het tentamen bestaat uit 4 opgaven. Opgaven 1 levert 8 punten op, opgave 2 levert 12 punten
Nadere informatieOEFENINGEN PYTHON REEKS 1
Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren
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 informatieFunctioneel Programmeren met Clean
Functioneel Programmeren met Clean J.M. Jansen NLDA Oktober 2011 Functioneel Proggrammeren met Clean 2 1. EXPRESSIES... 5 1.1 EXPRESSIES EN HERSCHRIJVINGEN... 5 1.2 REGELS VOOR EXPRESSIES... 5 1.3 BEREKENEN
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 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 informatieToepassingen in COcaml
Bachelorscriptie Informatica / Informatiekunde Radboud Universiteit Toepassingen in COcaml Auteur: Martin Huyben S4205332 Inhoudelijk begeleider: Dr. A. Martins Da Silva alexandra.cs.ru.nl 16 juni 2015
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Nadere informatieimport java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println("Hallo!
Voorbeeld Java-programma import java.io.*; één klasse...met één functie...met één opdracht public class Hallo { public static void main (String[] a) { System.out.println("Hallo!"); accolades begrenzen
Nadere informatieOEFENINGEN PYTHON REEKS 1
Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren
Nadere informatieAutomaten en Berekenbaarheid
Automaten en Berekenbaarheid Bart Demoen KU Leuven 2016-2017 Les 2: 20-35 reguliere expressies NFA DFA minimalisatie Van RE naar NFA I 2/11 structureel (als algebra s) zijn RegExp en de NFA s gelijk voor
Nadere informatieSemantiek (2IT40) Bas Luttik. HG 7.14 tel.: Hoorcollege 8 (7 juni 2007)
Bas Luttik s.p.luttik@tue.nl http://www.win.tue.nl/~luttik HG 7.14 tel.: 040 247 5152 Hoorcollege 8 (7 juni 2007) Functionele talen Idee: een programma definieert reeks (wiskundige) functies. Programma
Nadere informatieDatatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
Nadere informatieGONT practicumopgave 3
1 of 11 2/19/2007 13:58 GONT practicumopgave 3 In deze opgave gaan we een codegenerator schrijven voor (een deel van de taal Java. Doelmachine is de Simpele Stack Machine (SSM, waarvoor een grafische simulator
Nadere informatie1 Inleiding in Functioneel Programmeren
1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp
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 informatieImplementatie van Programmeertalen (IPT) 4 mei 2001
Informatica Instituut, Faculteit Wiskunde en Informatica, UU. In elektrosche vorm beschikbaar gemaakt door de TBC van A Eskwadraat. Het college IPT werd in 2000/2001 gegeven door Drs. A. Dijkstra en Drs.
Nadere informatieOpdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is
Opdrachten herhalen public void tekenscherm (object o, PEA pea) { int x; x = 1; while ( x
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 informatiePYTHON REEKS 1: BASICS. Mathias Polfliet
PYTHON REEKS 1: BASICS Mathias Polfliet mpolflie@etrovub.be EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte
Nadere informatieCollege Introductie
College 2016-2017 Introductie Doaitse Swierstra (Jeroen Bransen) Utrecht University September 13, 2016 Waarom is FP anders? in plaats van opdrachten die na elkaar moeten worden uitgevoerd, definiëren we
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 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 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 informatieVerzamelingen, Lijsten, Functioneel Programmeren
Verzamelingen, Lijsten, Functioneel Programmeren Jan van Eijck jve@cwi.nl Lezing 4e Gymnasium, 19 november 2015 Samenvatting In deze lezing gaan we in op de overeenkomsten en verschillen tussen verzamelingen
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 informatieJava Programma structuur
Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,
Nadere informatieFunctioneel Programmeren
Functioneel Programmeren ii c Copyright 1992 2002 Informatica-instituut, Universiteit Utrecht Deze tekst mag voor educatieve doeleinden gereproduceerd worden op de volgende voorwaarden: de tekst wordt
Nadere informatieAspects of Feedback in Intelligent Tutoring Systems for Modeling Education. Harrie Passier 23 november 2013
Aspects of Feedback in Intelligent Tutoring Systems for Modeling Education Harrie Passier 23 november 2013 Agenda Voor 2002 2004 2006 2006 2011 2012 2012 2013 13 september 2013 Voor 2002 Voltijd Mavo-4
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 informatieSyntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object
Syntax van opdracht opdracht klasse naam methode naam ( expressie ) ; object expressie. property naam +=, variabele = expressie ; Static gewone methoden Bewerken een object Aanroep: object. methode ( )
Nadere informatieLet op dat de scoping regels gerespecteerd blijven; het volgende voorbeeld mag geen fout melden.
Vrije Universiteit Brussel Faculteit Wetenschappen Vakgroep Computerwetenschappen Academiejaar 2009 2010: tweede examenzittijd Interpretatie van Computerprogrammaʼs I schriftelijke test Voorafgaandelijk:
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 informatieVerzamelingen, Lijsten, Functioneel Programmeren
Verzamelingen, Lijsten, Functioneel Programmeren Jan van Eijck jve@cwi.nl Stage Ignatiuscollege, 17 mei 2010 Samenvatting In deze lezing gaan we in op de overeenkomsten en verschillen tussen verzamelingen
Nadere informatieDatastructuren Programmeeropdracht 3: Expressies. 1 Expressies. Deadline. Dinsdag 8 december 23:59.
Datastructuren 2015 Programmeeropdracht 3: Expressies Deadline. Dinsdag 8 december 23:59. Inleiding. Deze opdracht is losjes gebaseerd op Opdracht 5.13.2 in het boek van Drozdek. U wordt gevraagd expressies
Nadere informatievandaag èn vrijdag deadline maandag 12 dec.
vandaag èn vrijdag deadline maandag 12 dec. Herhaling met een teller int t ; t = 0; for while ( ( t=0 t
Nadere informatieWindows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( )
Windows-applicatie using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( ) { Form scherm; declaratie en toekenning van een variabele met type Form scherm = new Form( );
Nadere informatieHaskell: programmeren in een luie, puur functionele taal
Haskell: programmeren in een luie, puur functionele taal Jan van Eijck jve@cwi.nl 5 Talen Symposium, 12 juli 2010 Samenvatting In deze mini-cursus laten we zien hoe je met eindige en oneindige lijsten
Nadere informatieSQL datadefinitietaal
SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen
Nadere informatieDe architect: in spagaat tussen mensen en technische details. Illustratie met een simpel voorbeeld
De architect: in spagaat tussen mensen en technische details Illustratie met een simpel voorbeeld Illustratie van stap voor stap naar een architectuur aan de hand van een voorbeeld Overview Exercise Assistant:
Nadere informatieTentamen Kunstmatige Intelligentie (INFOB2KI)
Tentamen Kunstmatige Intelligentie (INFOB2KI) 30 januari 2014 10:30-12:30 Vooraf Mobiele telefoons dienen uitgeschakeld te zijn. Het tentamen bestaat uit 7 opgaven; in totaal kunnen er 100 punten behaald
Nadere informatieFunctioneel programmeren met Helium
NIOC 2004 Functioneel programmeren met Helium Bastiaan Heeren en Daan Leijen {bastiaan,daan}@cs.uu.nl Universiteit Utrecht NIOC 2004, Groningen, 3 november. Overzicht Overzicht 1 Functioneel programmeren
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 informatieInleiding C++ Coding Conventions
Inleiding C++ Coding Conventions Opleiding Bachelor of Science in Informatica, van de Faculteit Wetenschappen, Universiteit Antwerpen. Nota s bij de cursus voor academiejaar 2012-2013. Ruben Van den Bossche,
Nadere informatieConstanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.
een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
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 informatieModelleren en Programmeren: Prolog
Modelleren en Programmeren: Prolog Marijn Schraagen 20 januari 2016 Herhaling Gebruik negatie, assert Uitbreidingen DCG s Niet-natuurlijke talen Tentamenvoorbereiding Practicum: ingebouwde predicaten In
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 informatieOEFENINGEN PYTHON REEKS 1
OEFENINGEN PYTHON REEKS 1 Vraag 1: Python als een eenvoudige rekenmachine Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3) en
Nadere informatieDatastructuren Werkcollege Intro
Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs
Nadere informatieVerzamelingen, Lijsten, Functioneel Programmeren
Verzamelingen, Lijsten, Functioneel Programmeren Jan van Eijck jve@cwi.nl Stage Ignatiuscollege, 20 mei 2008 Samenvatting In deze lezing gaan we in op de overeenkomsten en verschillen tussen verzamelingen
Nadere informatieLeeswijzer Functioneel Programmeren
Leeswijzer Functioneel Programmeren Jeroen Fokker 23 oktober 2000 Dit artikel beschrijft in het kort welke onderwerpen behandeld worden in het kollege Functioneel Programmeren en het gelijknamige diktaat.
Nadere informatieVoorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten
Nadere informatieZelftest Inleiding Programmeren
Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze
Nadere informatieFlippos de nieuwe rage
Flippos de nieuwe rage Maarten Fokkinga Versie van 2 april 1996 Inleiding. In iedere zak chips (van het juiste merk) zitten één of meer flippos: kleine ronde kunststof schijfjes. Je kunt ermee bouwen (de
Nadere informatieProeftentamen Digitale technieken
Proeftentamen Digitale technieken André Deutz October 17, 2007 De opgaven kunnen uiteraard in willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.
Nadere informatierij karakters scanner rij tokens parser ontleedboom (filteren separatoren) (niet expliciet geconstrueerd) (+ add. inform.) (contextvrije analyse)
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
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 november 2015 Expressies Functies Ingebouwde functies Variabelenbereik Inleveropgave 1 Terugblik Programma is een lijst van opdrachten Terugblik Programma is
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 informatieIntroductie in C++ Jan van Rijn. September 2013
Introductie in C++ Jan van Rijn September 2013 Inhoud Classes Overerving Const correctness Standard C++ library Templates Classes Voordelen van classes: Modelleren Modulariteit Informatie afschermen Makkelijk(er)
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 informatieFunctioneel Programmeren
Functioneel Programmeren ii c Copyright 1992 2003 Informatica-instituut, Universiteit Utrecht Deze tekst mag voor educatieve doeleinden gereproduceerd worden op de volgende voorwaarden: de tekst wordt
Nadere informatieProgrammeren in Java les 3
4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een
Nadere informatieEen gelinkte lijst in C#
Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk
Nadere informatie10. Controleopdrachten
Computeralgebra met Maxima 10. Controleopdrachten 10.1. Functies en operatoren voor lijsten/vectoren/arrays Een van de eenvoudigste maar belangrijkste lusachtige functies is de makelist opdracht. Voor
Nadere informatieFaculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u
achternaam : voorletters : identiteitsnummer : opleiding : Tijdens dit tentamen is het gebruik van rekenmachine of computer niet toegestaan. Vul je antwoorden in op dit formulier. Je dient dit formulier
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 informatieUitwerkingen. Python Assessment
Uitwerkingen Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Uitwer king 1: Elementairedatatypes 1.a Een string bevat tekst in de vorm van Unicode characters, terwijl
Nadere informatieAPPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts
APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Scope van variabelen {3.9} Class ontwerpen en maken,
Nadere informatieRedeneren met Onzekerheid II. Manipulatie van Onzekerheid. Kansverdeling. if E 2 then H y2 fi. if E 1 and E 2 then H z fi.
Redeneren met Onzekerheid II Classificatieregel-gebaseerd redeneren met onzekerheid: kies een geschikte theorie vind een invulling voor de combinatiefuncties implementeer de combinatiefuncties als onderdeel
Nadere informatieVoorbeeld: Simulatie van bewegende deeltjes
Voorbeeld: Simulatie van bewegende deeltjes Simulatie - object Ruimte - objecten Deeltje - objecten Button - objecten Simulatie Samenhang van objecten sim geërfd van Form stap zelf gedeclareerd auto r1
Nadere informatieKompas. zijn klasse. protected override void OnDraw(Canvas canv) { base.ondraw(canv);
Kompas class KompasView : View, ISensorEventListener { Bitmap b; float Schaal; float Hoek; public KompasView(Context belooft c) : methodes base(c) { b = BitmapFactory.DecodeResource(...UU...); SensorManager
Nadere informatieaé=åçãéáä~íáé=î~å=ko`=éñéêéëëáéë=å~~ê=pni
aé=åçãéáä~íáé=î~å=ko`=éñéêéëëáéë=å~~ê=pni g~å=pqribkp éêçãçíçê=w mêçñk=çêk=g~å=s^k=abk=_rpp`eb = báåçîéêü~åçéäáåö=îççêöéçê~öéå=íçí=üéí=äéâçãéå=î~å=çé=öê~~ç= iáåéåíá~~í=áå=çé=áåñçêã~íáå~=~ñëíìçééêî~êá~åí=ç~í~ä~ëéë
Nadere informatieCollege I/O
College 2016-2017 I/O Doaitse Swierstra Verteld door Jurriaan Hage Utrecht University Input en Output Tot dusverre: een module bevat een aantal functiedefinities GHCi drukt de waarde af van een ingetikte
Nadere informatieHOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Informatie. Voorbeeld. Voorbeeld: toegangsprijs
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 informatie2IA05 Functioneel Programmeren
2IA05 Functioneel Programmeren wk1: Introductie Rik van Geldrop, Jaap van der Woude Declaratieve programmeerstijl 2/20 2 H C H = A A H I JE A 1 F A H = JEA B, A? = H = JEA B D A M = J. K? JE A A C EI?
Nadere informatieProgrammeren Blok B. Onderwerpen. wstomv/edu/2ip05/ College 8. Tom Verhoeff
Programmeren Blok B Onderwerpen http://www.win.tue.nl/ wstomv/edu/2ip05/ College 8 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering & Technology Verdelen
Nadere informatieBeslisbare talen (1) IN2505-II Berekenbaarheidstheorie. Beslisbare talen (2) Beslisbare talen (3) De talen: College 7
Beslisbare talen (1) College 7 Algoritmiekgroep Faculteit EWI TU Delft 10 mei 2009 De talen: A DFA = { M, w M is een DFA die w accepteert} A NFA = { M, w M is een NFA die w accepteert} E DFA = { M M is
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 informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde
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 informatieHOE TEKEN IK EEN OMGEVINGSMODEL
HOE TEKEN IK EEN OMGEVINGSMODEL MATTIAS DE WAEL 1. Inleiding Om de allereenvoudigste Scheme expressies te begrijpen volstaat het substitutiemodel. Het substitutiemodel verondersteld het bestaan van een
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatie