Samenvatting hst. 3 sec. 1-3
|
|
- Oscar Meijer
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 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 xs, (b,zs)"q ys] infixl 7 (<$>) :: (b!c)! Parser a b! Parser a c (f <$> p) xs = [(f b,ys) (b,ys) " p xs] Toepassing: geneste haakjes!!grammatica { H! #$, H! ( H ) H }!!Abstracte syntax data H = Leeg Paar H H!!Parser haakjes :: Parser Char H haakjes = (\x! Leeg) <$> epsilon < > (\a b c d! Paar b d) <$> open <*> haakjes <*> sluit <*> haakjes Where open = symbol ( sluit = symbol )
2 Samenvatting hst. 3 sec. 4!!Parser combinators voor EBNF many :: Parser a b! Parser a [b] many1 :: Parser a b! Parser a [b] option :: Parser a b! b! Parser a b!!nog wat extra utilities pack :: Parser a o! Parser a b! Parser a s! Parser a b sequence :: [ Parser a b ]! Parser a [b] Choice :: [ Parser a b ]! Parser a b listof :: Parser a b! Parser a s! Parser a [b] Chainr :: Parser a b! Parser a (b!b!b)! Parser a b Abstracte syntax voor Expressies data Expr = Con Int Var String Fun String [Expr] Expr :+: Expr Expr : : Expr Expr :*: Expr Expr :/: Expr
3 Parser voor Expressies (met prioriteiten) expr = chainr term ( (\o!(:+:)) <$> (symbol + ) < > (\o!(: :)) <$> (symbol ) chainl is nu beter ) term = chainr fact ( (\o!(:*:)) <$> (symbol * ) < > (\o!(:/:)) <$> (symbol / ) chainl is nu beter ) fact = Con <$> getal < > gehaakt expr < > Var <$> naam < > Fun <$> naam <*> gehaakt (listof expr (symbol, ) ) Parser voor Expressies (principe) expr = chainr term ( (:+:) + < > (: :) ) term = chainr fact ( (:*:) * < > (:/:) / ) gen ops next = chainr next ( choice ops ) fact = basis < > gehaakt expr
4 Parser voor Expressies (veel prioriteiten) expr = gen ops1 term1 term1= gen ops2 term2 term2= gen ops3 term3 term3= gen ops4 term4 term4= gen ops5 fact fact = basis < > gehaakt expr expr = foldr gen fact [ops1,ops2,ops3,ops4,ops5] gen ops next = chainr next ( choice ops ) Gebruik van parsers!!type van parsers type Parser a b = [a]! [ (b, [a]) ]!!Parser voor expressies expr :: Parser Char Expr expr :: String! [ (Expr, String) ]!!Opstarten van de parser geefexpr :: String! Expr geefexpr = fst. head. filter (null.snd). expr
5 Gebruik van parsers geefexpr :: String! Expr geefexpr = fst. head. filter (null.snd). expr!!generalisatie start :: Parser a b! [a]! b start p = fst. head. filter (null.snd). p Ontwerp van een parser!!observeer de taal!!bedenk een grammatica "!evt. transformeren!!maak datatype voor de ontleedboom!!maak parse-functie "!evt. met preprocessor!!voeg semantiek toe "!of: als functie op ontleedboom "!of: direct tijdens het parsen
6 Parser-ontwerp (1/5) Observeer de taal!!voorbeeld: reisschema s vertrek aankomst Utrecht 9:17 9:42 Amsterdam Groningen 8:37 9:44 Zwolle 9:49 10:15 Utrecht 10:21 11:05 Rotterdam Almelo Parser-ontwerp (2a/5) Bedenk een grammatica Groningen 8:37 9:44 Zwolle 9:49 10:15 Utrecht 10:21 11:05 Rotterdam Schema! Schema Tijd Tijd Schema Stad Tijd! Getal : Getal$ Getal! Cijfer + Stad! Letter +
7 Parser-ontwerp (2b/5) Bedenk een grammatica Groningen 8:37 9:44 Zwolle 9:49 10:15 Utrecht 10:21 11:05 Rotterdam Schema! Stad Tijd Overstap* Tijd Stad Stad Overstap! Tijd Stad Tijd$ Parser-ontwerp (2c/5) Bedenk een grammatica Groningen 8:37 9:44 Zwolle 9:49 10:15 Utrecht 10:21 11:05 Rotterdam Schema! Stad Rit* Rit! Tijd Tijd Stad$
8 Parser-ontwerp (2d/5) Bedenk een grammatica Groningen 8:37 9:44 Zwolle 9:49 10:15 Utrecht 10:21 11:05 Rotterdam Schema! Rit * Stad Rit! Stad Tijd Tijd Parser-ontwerp (3b/5) Maak datatype ontleedboom Schema! Stad Tijd Overstap* Tijd Stad Stad Overstap! Tijd Stad Tijd$ data Schema = Met Stad Tijd [Overstap] Tijd Stad Zonder Stad type Overstap = ( Tijd, Stad, Tijd )
9 Parser-ontwerp (3d/5) Maak datatype ontleedboom Schema! Rit* Stad Rit! Stad Tijd Tijd type Schema = ( [Rit], Stad) type Rit = ( Stad, Tijd, Tijd ) type Tijd = ( Int, Int ) type Stad = String Parser-ontwerp (4b/5) Maak parse-functie Schema! Stad Tijd Overstap* Tijd Stad Stad Overstap! Tijd Stad Tijd$ schema = Met <$> stad <*> tijd <*> many overstap <*> tijd <*> stad < > Zonder <$> stad overstap = (\t1 s t2! (t1,s,t2)) <$> tijd <*> stad <*> tijd tijd = (\n1 d n2! (n1,n2)) <$> getal <*> symbol : <*> getal
10 Parser-ontwerp (4d/5) Maak parse-functie Schema! Rit* Stad Rit! Stad Tijd Tijd schema = rit = (\rs s! (rs,s)) <$> many rit <*> stad (\s t1 t2! (s,t1,t2)) <$> stad <*> tijd <*> tijd Parser-ontwerp (5/5) Voeg semantiek toe!!bijvoorbeeld: "!Wachttijd "!Totale reistijd "!Lijst van stations min :: Tijd! Int min (u,m) = 60*u + m wachttijd, reistijd :: Schema! Int stations :: Schema! [String]
11 Semantische functies data Schema = Met Stad Tijd [Overstap] Tijd Stad Zonder Stad type Overstap = ( Tijd, Stad, Tijd ) wacht (Zonder _) = 0 wacht (Met os ) = sum (map f os) where f (t1,_,t2) = min t2 min t1 stats (Zonder s) = [s] stats (Met s1 _ os _ s2) = s1 : map f os ++ [s2] where f (_,s,_) = s reis = Oei lastig! Alternatieve Semantische functies type Schema = ( [Rit], Stad) type Rit = ( Stad, Tijd, Tijd ) reis (rs,_) = sum (map f rs) where f (s,t1,t2) = min t2 min t1 stats (rs,s) = map f rs ++ [s] where f (s,_,_) = s wacht = Oei lastig!
12 Ontleedboom bepalen tijdens het ontleden schema schema = rit rit = :: Parser String Schema (\rs s! (rs,s)) <$> many rit <*> stad :: Parser String Rit (\s t1 t2! (s,t1,t2)) <$> stad <*> tijd <*> tijd Semantiek bepalen tijdens het ontleden schemareis :: Parser String Int schemareis = (\ns s! sum ns) <$> many ritreis <*> stad ritreis ritreis = :: Parser String Int (\s t1 t2! min t2 min t1) <$> stad <*> tijd <*> tijd
13 Ontwerp van een parser!!observeer de taal!!bedenk een grammatica "!evt. transformeren!!maak datatype voor de ontleedboom!!maak parse-functie "!evt. met preprocessor!!voeg semantiek toe "!of: als functie op ontleedboom "!of: direct tijdes het parsen De basis-parsers many1 :: Parser a b! Parser a [b] naam :: Parser Char String naam = many1 (satisfy isalpha) getal :: Parser Char Int getal = foldl f 0 <$> many (satisfy isdigit) where f n c = 10*n + ord c ord 0
14 Publieksvraag!!Observeer de taal van floating-point getallen in standaard programmeertalen e6-5F E23 float :: Parser Char Float float = Uitwerking cijfer :: Parser Char Int cijfer = (\c!ord c ord 0 ) <$> satisfy isdigit natuurlijk :: Parser Char Int natuurlijk = (foldl (\n d!10*n+d) 0) <$> many cijfer geheel :: Parser Char Int geheel = apply <$> option ((\c!neg) <$> symbol ) id <*> natuurlijk fractie :: Parser Char Float fractie = (foldr (\d n!(n+d)/10) 0) <$> eigenlijk moet fromintegral :: Int! Float nog worden gebruikt many cijfer
15 Uitwerking (vervolg) fixed :: Parser Char Float fixed = (+) <$> geheel <*> option( (\p x! x) <$> fromintegral symbol. <*> fractie ) 0 float :: Parser Char Float float = f <$> fixed <*> option( (\p x! x) <$> symbol E <*> geheel ) 0 where f gr ex = gr * pow 10 ex
Deeltentamen 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 & 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 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 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 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 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 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 informatieArduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam
Arduino Cursus, Deel 2 Programmeren Simon Pauw, ZB45, Amsterdam Programmeren Geen zorgen als je niet alles begrijpt. Doel: Het snappen van bestaande code. Meeste kennis ook toepasbaar buiten de Arduino
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 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 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 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 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 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 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 informatie6 a naam. 1 Vul de tabel in. 2 Maak vast aan de getallenlijn
6 a naam Hulp blad 1 1 Vul de tabel in a 709 ligt tussen 700 en 800 en ligt het dichtst bij 700 497 ligt tussen en en ligt het dichtst bij 211 ligt tussen en en ligt het dichtst bij 885 ligt tussen en
Nadere informatieLogica voor Informatica
Logica voor Informatica 10 Predikatenlogica Wouter Swierstra University of Utrecht 1 Vorige keer Syntax van predikatenlogica Alfabet Termen Welgevormde formulas (wff) 2 Alfabet van de predikatenlogica
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 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 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 informatieLogisch en Functioneel Programmeren voor Wiskunde D
Logisch en Functioneel Programmeren voor Wiskunde D Wouter Swierstra Doaitse Swierstra Jurriën Stutterheim Technical Report UU-CS-2011-033 Sept 2011 Department of Information and Computing Sciences Utrecht
Nadere informatie8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde
8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde Optellen: 5a + 3b + 2a + 6b = 7a + 9b 1) Alleen gelijksoortige
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 informatieVariabelen en statements in ActionScript
Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer
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 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 informatieIDP: Labo 2. Given: type int Octaal = {1;2;3;4;5;6;7;8} type int Octaal = {1..4;5;6..8}
IDP: Labo 2 1 Integer types Een integer type in IDP is niets anders dan een enumaratietype waarop bepaalde arithmetische bewerkingen (+,,, /, %) gedefiniëerd zijn. Bijvoorbeeld, het volgende programma
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 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 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 informatieGewijzigde dienstregeling
zaterdag 17 zondag 25 oktober 2009 Gewijzigde dienstregeling Rond Deventer omreizen of bus in plaats van trein in de herfstvakantie Groningen Leeuwarden Zwolle Wierden Almelo Wijhe Rijssen Olst Hengelo
Nadere informatieRuitjes vertellen de waarheid
Ruitjes vertellen de waarheid Opdracht 1 Van fouten kun je leren Van fouten kun je leren, jazeker. Vooral als je héél goed weet wat er fout ging. Vandaag leer je handige formules begrijpen door kijken
Nadere informatie2. Een eerste kennismaking met Maxima
. Een eerste kennismaking met Maxima Als u nog niet eerder kennis heeft gemaakt met CAS (Computer Algebra System) software, dan lijkt Maxima misschien erg gecompliceerd en moeilijk, zelfs voor het oplossen
Nadere informatie7.1 De afgeleide van gebroken functies [1]
7.1 De afgeleide van gebroken functies [1] Regels voor het differentiëren: f() = a geeft f () = a f() = a geeft f () = a f() = a geeft f () = 0 Algemeen geldt: f() = a n geeft f () = na n-1 Voorbeeld 1:
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 informatieCCHR: De snelste CHR implementatie
CCHR: De snelste CHR implementatie Promotor: Prof. Dr. Bart Demoen Begeleider: Dr. ir. Tom Schrijvers Pieter Wuille 20 december 2006 1 Algemeen Waarom CCHR Structuur 2 Implementatie Mogelijkheden 3 Ontwerpbeslissingen
Nadere informatieDE INTERACTIEVE SHELL
Hoofdstuk2 De interactieve shell 6 Hoofdstuk 2 DE INTERACTIEVE SHELL In dit hoofdstuk behandelen we: Integers (gehele getallen) en getallen met drijvende komma Expressies Waarden Operatoren Het evalueren
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 informatieVOORBLAD SCHRIFTELIJKE TOETSEN
Technology, Innovation & Society Delft VOORBLAD SCHRIFTELIJKE TOETSEN OPLEIDING TOETSCODE GROEP : ELEKTROTECHNIEK : GESPRG : EP11/EP12 TOETSDATUM : 07-02-2014 TIJD : 13.00 14.30 uur AANTAL PAGINA S (incl.
Nadere informatie8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde
8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde Optellen: 5a + 3b + 2a + 6b = 7a + 9b 1) Alleen gelijksoortige
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 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 informatieInstructieblad. 4.1 Gegevens invullen
4.1 Gegevens invullen Gegevens invullen Invoervelden Bij formulieren op het internet moet je vaak persoonlijke gegevens invullen. Om gegevens in te vullen, gebruik je een invoerveld. Dit zijn invoervelden:
Nadere informatieVakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be
Nadere informatieLes 2 Eenvoudige queries
Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten
Nadere informatieProgrammeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 29 april 2014
Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 29 april 2014 Bijeenkomst 3 Onderwerpen Bespreking ISA-opdracht Geneste loops Strings File Input/Output 29 april 2014 1 For-loops vb3-1a.py:
Nadere informatieGrammatica s en Ontleden Deeltentamen 1 (van 2)
Grmmtic s en Ontleden Deeltentmen 1 (vn 2) Grmmtic s en Ontleden Deeltentmen 1 (vn 2), Universiteit Utrecht http://www.cs.uu.nl/groups/st/ Donderdg 21 decemer 2006 Deeltentmen 1 (vn 2) > Meerkeuze vrgen
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 informatieINHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13
INHOUDSOPGAVE Over de auteur, de illustrator en de technische redacteuren 13 Dankwoord 14 Inleiding 15 Waarom Python?... 16 Hoe je code leert schrijven... 16 Voor wie is dit boek... 17 Wat staat er in
Nadere informatieEE1400: Programmeren in C BSc. EE, 1e jaar, , 2e college
EE1400: Programmeren in C BSc. EE, 1e jaar, 2012-2013, 2e college Arjan van Genderen, Computer Engineering 20-11-2012 Delft University of Technology Challenge the future Agenda A.s. woensdagmiddag 14.00
Nadere informatieUniversiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Nadere informatieVAN HET PROGRAMMEREN. Inleiding
OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,
Nadere informatieTalstelsels en getalnotaties (oplmodel)
Talstelsels en getalnotaties (oplmodel) herhalingsvragen 1. Waarom werken computers binair? Omdat binaire computers veel makkelijker te maken is. De kans op fouten is ook veel kleiner. het spanningsverschil
Nadere informatieJe gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.
1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat
Nadere informatieAPPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts
APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES Onderdeel van SmartProducts INHOUD COLLEGE 2 module4.io.utwente.nl/applicatiebouw Software ontwerpen Gebruikersinterfaces,
Nadere informatieArrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:
Geen stijlvol programma: Complexe datastructuren Arrays vijf verschillende variabelen voor iets dat als één rij getallen bestempeld wordt; onbruikbaar wanneer het over meer getallen (bijvoorbeeld ) gaat.
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 informatieScala. Korte introductie. Sylvia Stuurman
Korte introductie Sylvia Stuurman Wat is er zo bijzonder aan? Schaalbaar Objectgeoriënteerd (handiger dan Java!) Functioneel Scripts schrijven Gecompileerd: Java bytecode Pagina 2 voor scripts Pagina 3
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 informatieCertificaat warmtepomp REG-premie 2015
Product ID : PUHZ-SHW112VHA + EHST20C-VM2(E) (B/C)* Gegevens warmtepompsysteem COP (gemeten volgens EN14511) : 4,04** : 1,7 kw 1. Actieve koeling 2. Bijlagen (toe te voegen door de installateur) Product
Nadere informatieopstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren
opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren Handleiding om te beginnen met mysql WorkBench. In twee stappen 0. WorkBench verbinden met mysql 1. een hallo
Nadere informatieExercise assistant on-line
Exercise assistant on-line Onderwerpen - Introductie Exercise Assistant - On-line volgens MVC principe - Problemen bij MVC principe - Mogelijke oplossing - Richtingen onderzoek - Mogelijkheid tot meedoen
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 informatieProgrammeren met Arduino-software
Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en
Nadere informatieWiskunde voor bachelor en master Deel 1 Basiskennis en basisvaardigheden. c 2015, Syntax Media, Utrecht Uitwerkingen hoofdstuk 5
Wiskunde voor bachelor en master Deel Basiskennis en basisvaardigheden c 205, Synta Media, Utrecht www.syntamedia.nl Uitwerkingen hoofdstuk 5 5.3. a. 2 + = + 7 { naar links, naar rechts} 3 = 6 {deel door
Nadere informatieBij elkaar behorende instructies die een probleem oplossen of een taak uitvoeren.
Programma Structuur Diagram: Een gestructureerd programma is een programma dat we gemakkelijk kunnen begrijpen. Dit kunnen we bereiken door het programma op te bouwen uit drie programmacomponenten: Als
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 informatie17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies
17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke
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 informatieEen typisch programma in C en C++ bestaat uit een aantal onderdelen:
Eerste stappen in C. Een typisch programma in C en C++ bestaat uit een aantal onderdelen: /* Alles wat op meerdere lijnen staat zoals hier is commentaar. */ // Dit is commentaar op 1 lijn. Geldig tot einde
Nadere informatie3.1 Haakjes wegwerken [1]
3.1 Haakjes wegwerken [1] Oppervlakte rechthoek (Manier 1): Opp. = l b = (a + b) c = (a + b)c Oppervlakte rechthoek (Manier 2): Opp. = Opp. Groen + Opp. Rood = l b + l b = a c + b c = ac + bc We hebben
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 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 informatieprofielvak mobiliteit en transport CSPE BB onderdeel D
Examen VMBO-BB 2017 gedurende 100 minuten profielvak mobiliteit en transport CSPE BB onderdeel D Naam kandidaat Kandidaatnummer Bij dit onderdeel hoort een digitaal bestand. Dit onderdeel bestaat uit 11
Nadere informatieExamen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
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 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 informatieprofielvak mobiliteit en transport CSPE KB onderdeel D
Examen VMBO-KB 2017 gedurende 100 minuten profielvak mobiliteit en transport CSPE KB onderdeel D Naam kandidaat Kandidaatnummer Bij dit onderdeel hoort een digitaal bestand. Dit onderdeel bestaat uit 10
Nadere informatieArriva Openbaar Vervoer N.V. Afdeling trein noordelijke lijnen T.a.v. mevrouw Dubben Postbus 626 8440 AP Heerenveen. Beste mevrouw Dubben,
Pagina 1 van 5 Arriva Openbaar Vervoer N.V. Afdeling trein noordelijke lijnen T.a.v. mevrouw Dubben Postbus 626 8440 AP Heerenveen Plaats en datum: Leeuwarden 28-07-2014 Onderwerp: Advies dienstregeling
Nadere informatieSQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003
SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets
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 informatieProgrammeren in Java 3
26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class
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 informatie