De Meta-circulaire Pico evaluator
|
|
- Stijn Brabander
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 De Meta-circulaire Pico evaluator 2de kandidatuur Informatica, VP (Toegepaste) Informatica Wolfgang De Meuter Laboratorium voor Programmeerkunde Departement Informatica Vrije Universiteit Brussel Pleinlaan Brussel wdmeuter@vub.ac.be In dit deel van de oefeningen zullen we de struktuur van de meta-circulaire evaluator doorgronden. Het is hierbij belangrijk de algemene architectuur (t.t.z. het skelet) van de evaluator te begrijpen én te kennen. Jullie moeten de technische details van de code niet kunnen reproduceren, maar wel kunnen uitleggen indien jullie ermee geconfronteerd worden. Vandaar dat er ook een aantal detailoefeningen werden opgenomen. In wat volgt zijn er 2 Pico s in het spel: de echte Pico evaluator die geschreven werd in C, en de valse Pico evaluator die in Pico werd geschreven. De eerste Pico zullen we Pico-1 noemen; de tweede zullen we Pico-2 noemen. De Pico-2 taal is dus een programmeertaal wiens evaluator werd geïmplementeerd in de taal Pico-1. Deel 1: De scanner, parser, abstracte grammatica en printer De case-functie Zoals jullie weten is Pico als programmeertaal volledig op te hangen aan een skelet van 3 bij 3 types van uitdrukkingen. Het is dan ook geen wonder dat de evaluator en printer gestructureerd zijn volgens deze 3 bij 3 tabel. Deze 3 bij 3 tabel wordt in code gegoten door een case met 3 takken dewelke allen op hun beurt aanleiding geven tot een eigen case met 3 takken. Dit stramien komt in zowat alle onderdelen van de metacirculaire evaluator naarboven. Aangezien Pico echter geen case constructie kent, hebben we deze in Pico zelf moeten schrijven. We zullen er eerst voor zorgen dat deze case-functie volledig doorgrond is. Laad daarom de MC evaluator in en stop hem meteen zodat we weer in Pico-1 terecht komen. Beschouw nu de volgende uitdrukking: 1
2 c: case( 1 => (f(x):x+2), 2 => (g(x):x+4), 9 => (h(x):x+18), else => (j(x):x)) Wat voor soort ding is 1 => (f(x):x+2)? Wat voor soort ding is c? Een primitieve waarde? Een tabel? Een functie? Bekijk de implementatie van de case alvorens het na te gaan in Pico-1. Roep h op door ze eerst uit de case te selecteren. Hoe lang duurt het (complexiteitsorde!!) om h te selecteren. Wat is de grootte van de c selector? Waarop moet dus gelet worden bij het gebruik van deze case? De scanner Beschouw volgende Pico expressies. Bied iedere expressie als string aan aan de scanner (m.b.v. init_scan ) en vraag dan telkens met scan() het volgende token. Noteer de resulterende tokenreeksen zowel in numerisch als in mnemonisch formaat. Lees indien nodig de scan_data variabele uit om extra informatie van de scanner te verkrijgen. Wanneer juist (t.t.z. bij welke tokens) is dit nodig? a) aa:3 b) bb(x):6 c) f@x:x[3] d) g@g e) [1,2,3] f) {f[1]:22; f[1]:=22 } g) f(g(x)):g(1) De Parser We beschouwen opnieuw bovenstaande strings als Pico expressies. Laten we ze nu één voor één aan de parser (t.t.z. de reader) aanbieden. Dit gebeurt door eenvoudigweg de read procedure op te roepen met bovenstaande strings als argument. Teken telkens de overeenstemmende afleidingsboom. Geef hierbij de tags aan, zowel in mnemonische als numerieke vorm. De Printer De print procedure wordt in de MC-evaluator steeds na eval opgeroepen. Uit eval komen normaal gezien Pico waarden (dus primitieve waarden, functies en tabellen). Waarom zijn er dan print-procedures om woordenboeken, toekenningsexpressies e.d. 2
3 af te drukken? Probeer als antwoord een Pico-2 uitdrukking te vinden zodat toch de print_application procedure opgeroepen wordt. Deel 2: De evaluator en de natives Natives geschreven in Pico-2 Er zijn eigenlijk 2 soorten native functies in Pico-2: sommige natives (zoals begin, if, and, ) zijn geschreven in Pico-2 zelf, terwijl anderen (zoals +, *, sin, ) geimplementeerd werden door ze terug te brengen tot de corresponderende natives in Pico-1. Welke van beide soorten kan je als Pico-2 programmeur van een nieuwe implementatie voorzien? Laten we vooreerst beginnen met de xor van de vorige oefeningenreeks toe te voegen tot de lijst van natives van de eerste soort. Natives geschreven in Pico-1 Vervolgens maken we een nieuwe native van de tweede soort: de charat functie neemt een tekst als eerste parameter en een number als tweede parameter. Na de nodige typechecking en boundary-checking wordt het character uit de tekst op de desbetreffende positie uitgelezen. De evaluator: basiskennis Bepaal voor elk van de volgende expressies 1) welke evaluatie-functies worden opgeroepen vanuit eval, en 2) wat het verschil is tussen de omgeving vóór en ná het evalueren van die expressies. a) a:2 b) a:= hello c) t[3]: doei d) t[2] e) t[1]:= ioed De evaluator: de eval-apply wisselwerking Vermits Pico een procedurele taal is, bestaat het evaluatieprocess in hoofdzaak uit het herhaaldelijk oproepen van functies. Dit houdt een subtiele wisselwerking in van eval en apply (in Pico heet deze laatste call_function). Laten we dus, om deze wisselwerking te begrijpen, een eenvoudige faculteitsfunctie definiëren en deze oproepen. Maak een volledige trace van alle evaluatiefuncties die worden opgeroepen door fac(2) te evalueren. 3
4 De evaluator: eval-apply & woordenboeken Zoals je weet worden vele talen zoals C geïmplementeerd m.b.v. een stack. Bij het oproepen van een functie worden de argumenten op de stack gegooid. Vervolgens wordt de body van de functie geëvalueerd en ten laatste wordt de stack opnieuw afgebouwd tot op het niveau van vóór de oproep. Dit is natuurlijk veel zuiniger dan het woordenboekensysteem van Pico en Scheme, waarbij de woordenboeken door de garbage collector hergebruikt dienen te worden. Spijtig genoeg is het niet mogelijk Pico en Scheme te implementeren met zo n stack systeem. Vind een Pico expressie die aantoont dat je Pico niet op deze manier kan implementeren. De evaluator: speciale bindmechanismen a) Vind een functie en een oproep die aanleiding geeft tot het oproepen van call_table. b) Vind een functie en een oproep die aanleiding geeft tot het oproepen van bind_application. Metaprogrammeren Hoe komt het dat je functies wél als tabel kan behandelen en numbers en texts niet? Vind de juiste if-test in de code die dit verschil bepaalt. Deel 3: Vaardigheidsoefeningen in MC-eval. Meerdimensionale tabellen De huidige versie van Pico-2 laat slechts definitie toe van ééndimensionale tabellen. Twee- en meerdimensionale tabellen moeten aangemaakt worden met de hand. Dit is op zich niet zo n probleem. Het uitlezen van zulke meerdimensionale tabellen is echter werkelijk problematisch: bij voorbeeld, indien t een tabel van tabellen van tabellen is, dan moet zijn men onhandige truukjes als { t1:t[1]; t12:t1[2]; t12[5] } uithalen, daar waar een uitdrukking als t[1,2,5] veel eenvoudiger zou zijn. Het doel van de oefening is de definitie, de toekenning en het uitlezen van tabellen zodanig aan te passen dat meerdimensionale tabellen volledig ondersteund worden. a) Men kan al vrij eenvoudig meerdimensionale tabellen aanmaken met uitdrukkingen als [[1,2,3],[4,5,6],[7,8,9]]. Laat ons daarom toespitsen op het uitlezen. Veronderstel dat t een meerdimensionale tabel is zoals in bovenstaand voorbeeld, dan moet een expressie als t[2,3] mogelijk zijn. Tijdens de evaluatie moet natuurlijk de nodige checking gebeuren om te zien of het uitgelezen ding wel een tabel is van de juiste afmetingen. Implementeer dus vooreerst dit uitlezen. 4
5 b) Op dezelfde wijze kunnen we de toekenning implementeren. Uitdrukkingen als t[1,2,3]:=4 moeten dus aanleiding geven tot het bepalen van de juiste positie en het daadwerkelijk toekennen, dit natuurlijk opnieuw met het afdwingen van de nodige dimensiebeperkingen. c) Ten derde passen we de definitie van tabellen aan. Let hierbij op dat hetvolgende mogelijk moet zijn: j:0 t[i:5,j:=j+1]:i+j :[[6],[7,7],[8,8,8],[9,9,9,9],[10,10,10,10,10]] Zulke constructies laten ons dus toe volledige bovendriehoeksmatrices met slechts één lijntje code te definiëren. Anonieme Functies Een beperking die Scheme-kenners meteen ondervinden in Pico is de onmogelijkheid van anonieme functies te definiëren (lambda s). Laten we daarom een nieuwe syntax toevoegen die toelaat lambda s te gebruiken: (x,y,z) :-> x+y+z Intern willen we natuurlijk geen onderscheid tussen 2 soorten functies. Vind dus een nette manier om dit soort naamloze functies gewoon voor te stellen door gewone functies. 5
Let 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 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 informatieSucces! Theo DʼHondt 13 juni 2010
Vrije Universiteit Brussel Faculteit Wetenschappen Vakgroep Computerwetenschappen Academiejaar 2009 2010: eerste examenzittijd Interpretatie van Computerprogrammaʼs I schriftelijke test Voorafgaandelijk:
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 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 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 informatieProgrammeren in Pico in 10 Uur 2de kandidatuur Informatica, VP (Toegepaste) Informatica
Programmeren in Pico in 10 Uur 2de kandidatuur Informatica, VP (Toegepaste) Informatica Wolfgang De Meuter Laboratorium voor Programmeerkunde Departement Informatica Vrije Universiteit Brussel Pleinlaan
Nadere informatieOefeningen Interpretatie I Reeks 6 : Registermachines
Oefeningen Interpretatie I Reeks 6 : Registermachines Deze oefeningenreeks behandelt het beschrijven van computationele processen aan de hand van registermachineprogrammaʼs. Registermachines manipuleren
Nadere informatieJavascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
Nadere informatiePracticum Programmeerprincipes
REEKS 3 Practicum Programmeerprincipes 2009-2010 fvdbergh@vub.ac.be WERKEN MET FUNCTIES IN PICO Functies, controlestructuren, recursie, iteratie, blokstructuren en functionele parameters in Pico. Het woordenboek
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 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 informatiePracticum Programmeerprincipes
OPLOSSINGEN REEKS 1 KENNISMAKING MET PICO Evaluatie van expressies Practicum Programmeerprincipes 2009-2010 fvdbergh@vub.ac.be Oefening 1. Oplossing van deze kennismakingsoefening gegeven in de les. Oefening
Nadere informatieHet relaas van de beginnende programmeur. Het hoe en waarom van de assistent
Het relaas van de beginnende programmeur Het hoe en waarom van de assistent 1. Help, mijn code doet niks... Mogelijke oplossingen: Heb je op run geduwd (groene pijltje)? Zolang je niet op 'run' duwt, kent
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 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 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 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 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 informatieOEFENINGEN PYTHON REEKS 5
Vraag 1: Interpoleren (vervolg) OEFENINGEN PYTHON REEKS 5 Bouw verder op je code van Reeks 3, vraag 4. Voeg vier constanten toe aan je code: X0 = 280, Y0 = 0, Z0 = 50 en SIZE = 8. a) Teken een kubus met
Nadere informatieOefeningen Jaarproject I
Oefeningen Jaarproject I Deze oefeningenreeks behandelt de grafische Scheme bibliotheek die jullie mogen gebruiken voor de implementatie van het Pacman spel. De bibliotheek i is een evaluator voor Scheme
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 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 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 informatieAlgoritmen en Datastructuren 1. Functies
Algoritmen en Datastructuren 1 Functies Rad van Fortuin score = 0 huidigespeler++ draai rad bankroet verlies beurt joker huidigespeler++ jokers++ rad else score += bedrag * k rad/klinker toon gok medeklinker
Nadere informatieoefeningen opstellen met GeoGebra en javascript
oefeningen opstellen met GeoGebra en javascript Er zijn heel wat verschillende mogelijkheden om GeoGebra en Javascript te combineren in het opstellen van oefeningen. Antwoorden in het applet zelf: - Je
Nadere informatieDergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen.
Indexers in C#.Net In deze tutorial ga ik het hebben over indexers. Bij het gebruik van bijvoorbeeld een ArrayList object, kan je de gegevens uit deze collectie opvragen als ware het een array. // ArrayList
Nadere informatieLes 7. Instap. CSS en views: schilderijen. Pas even de header aan van het thema en zorg ervoor dat er geen websitenaam en slogan te zien is.
Les 7 Instap Pas even de header aan van het thema en zorg ervoor dat er geen websitenaam en slogan te zien is. CSS en views: schilderijen Ons eerste overzicht in de vorige les bestond uit het tonen van
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 informatie10 Meer over functies
10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf
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 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 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 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 informatie[15] Variabelen in functies (of: een woordje over scope)
[15] Variabelen in functies (of: een woordje over scope) In de vorige leerfiche hebben we geleerd over functies. We leerden dat functies parameters hebben en dat ze return-waarden kunnen teruggeven aan
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 informatieLeren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie
Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes
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 informatieLes 7 & 8: MSW Logo Mieke Depaemelaere
Faculteit Psychologische en Pedagogische Wetenschappen ACADEMISCHE INITIËLE LERARENOPLEIDING Academiejaar 2001-2002 Vakdidactiek informatica : praktijkgerichte seminaries Lesgevers : Prof. A. Hoogewijs
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 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 informatieWETENSCHAPPEN Oefeningen. LES 2 - Gebogen vlak op basis van een wiskundig bepaalde curve in Grasshopper. Tobias Labarque Rinus Roelofs Matthias Dziwak
WETENSCHAPPEN Oefeningen LES 2 - Gebogen vlak op basis van een wiskundig bepaalde curve in Grasshopper Tobias Labarque Rinus Roelofs Matthias Dziwak STAP 1 : Panel Opmerking : je hoeft het Panel blok niet
Nadere informatieProject Software Engineering XML parser: Parsen van een xml CD catalogus
Project Software Engineering XML parser: Parsen van een xml CD catalogus Brent van Bladel brent.vanbladel@uantwerpen.be February 16, 2017 XML (Extensible Markup Language) is een taal waarmee we op een
Nadere informatieInhoud. Informatica. Hoofdstuk 5 Scripting. Context. Editor voor Programmeercode. Scripting 1
5.1 5.2 1rste BAC Biologie Hoofdstuk 5 Inhoud Inleiding Programeerconstructies functies variabelen (toekenning) statements (print, ) controlestructuren (if, while, until, for) Oefeningen 5.3 5.4 "functionzero.zip"
Nadere informatieLes 13. Voorbereiding
Les 13 Voorbereiding 1. Plaats DEZE TWEE PLUGINS op de server in de map libraries. Deze is nodig voor de werking van Masonry Views en Masonry API 2. Schakel de modules Masonry Views en Masonry API in.
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 informatieJarno Verhoogt 21 mei 2014 Stud. Nr. 500684953 Docent: Joost Faber. Deeltoets 2: Hoe maak je met javascript een eenvoudige slideshow?
Jarno Verhoogt 21 mei 2014 Stud. Nr. 500684953 Docent: Joost Faber Deeltoets 2: Hoe maak je met javascript een eenvoudige slideshow? Inleiding Dit is een eenvoudige handleiding om in javascript een simpele
Nadere informatieFormulieren maken met Dreamweaver CS 4/CS 5
Formulieren maken met Dreamweaver CS 4/CS 5 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit
Nadere informatieZelftest TSO/E REXX. Document: n0167test.fm 25/01/2017. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium
Zelftest TSO/E REXX Document: n0167test.fm 25/01/2017 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST TSO/E REXX Deze test is een hulpmiddel
Nadere informatieLuchthaven Simulatie. 1 Samenvatting. 2 Context
Luchthaven Simulatie Documentsoort: Behoeftespecificatie Versie: 1.2 Datum: 15 februari 2018 Auteurs: Brent van Bladel Status: Opgeleverd 1 Samenvatting Dit document bevat de specificaties voor een informaticasysteem
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 informatie4 ASP.NET MVC. 4.1 Controllers
4 ASP.NET MVC ASP.NET is het.net raamwerk voor het bouwen van webapplicaties. De MVC variant hiervan is speciaal ontworpen voor het bouwen van dergelijke applicaties volgens het Model-View-Controller paradigma.
Nadere informatieToetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018
Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II Duur: 70 minuten Datum: sept 2018 Stof: Basiskennis van vorig jaar, (Eigen) Functies & parameters, Loops (for en while), Turtle
Nadere informatieLab Webdesign: Javascript 25 februari 2008
H4: FUNCTIES We zullen in dit hoofdstuk zien hoe we functies moeten maken, aanroepen, argumenten doorgeven en waarden retourneren. Ook zullen we het hebben over het begrip "recursie", en laten zien hoe
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 informatieOEFENINGEN PYTHON REEKS 4
Vraag 1: Introductie Tekenen OEFENINGEN PYTHON REEKS 4 Vanaf deze les gaan we gebruik maken van het pakket VPython om de objecten te tekenen en weer te geven. Om aan alle functies te kunnen die VPython
Nadere informatieHandleiding Digitaal Aanvraagformulier
Handleiding Digitaal Aanvraagformulier Deze handleiding wil een summier overzicht geven van de installatieprocedure van het digitaal aanvraagformulier. De handleiding is bedoeld voor de al wat ervaren
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 informatieLab Webdesign: Javascript 3 maart 2008
H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen
Nadere informatieMicrosoft OneNote 365
Microsoft OneNote 365 Kennismaken Inleiding OneNote kun je zien als een digitaal notitieblok. Je kunt in dit programma informatie van verschillende programma's (zoals Word, Excel, websites, etc.) in één
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 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 informatieInhoudstabel. Habils Kenny 2
Inhoudstabel Inhoudstabel... 2 1. Inleiding... 3 2. Arceerpatroon definiëren... 3 Hoe is een arceerpatroon samen gesteld.... 4 Opmerkingen... 5 Hoe laad je nu uw aangemaakte patronen... 5 Kan je uw arceerpatronen
Nadere informatieInformatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016
Informatie over 5VWO DT51: JavaLogo Casper Bezemer Toetsweek 1 13 oktober 2016 1 Informatie Voor toets DT51 wordt jou gevraagd Java(Logo) programma s te schrijven. De eerste opdracht is een Krimpfiguur,
Nadere informatieDatastructuren Programmeeropdracht 2: Expressies. 1 Expressies. Deadlines. Woensdag 12 oktober 23:59, resp. woensdag 2 november 23:59.
Datastructuren 2016 Programmeeropdracht 2: Expressies Deadlines. Woensdag 12 oktober 23:59, resp. woensdag 2 november 23:59. Inleiding. Deze opdracht is losjes gebaseerd op Opdracht 5.13.2 in het boek
Nadere informatieJava virtuele machine JVM
Implementatie Java Java virtuele machine JVM Java programma vertaald naar byte code instructies Byte code instructies uitgevoerd door JVM JVM is processor architectuur kan in principe in hardware worden
Nadere informatieProgrammeren: Visual Basic
PETERSTUYVESANT COLLEGE INFORMATICA 2009-2010 Programmeren: Visual Basic Document Afbaking 01. VERSCHILLENDE PROGRAMMEERTALEN 02. PROGRAMMEER PAKKETTEN 03. GUI 03.1 GUI ELEMENTEN 03.2 GUI EIGENSCHAPPEN
Nadere informatieDeel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,
Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt
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 informatieVBA voor Doe het Zelvers deel 12
VBA voor Doe het Zelvers deel 12 Handleiding van Auteur: leofact November 2014 VBA voor Doe het Zelvers is een reeks artikelen, bedoelt voor mensen die met VBA in Excel aan de slag willen om taken te automatiseren
Nadere informatieLabo 2 Programmeren II
Labo 2 Programmeren II L. Schoofs K. van Assche Gebruik Visual Studio 2005 om een programma te ontwikkelen dat eenvoudige grafieken tekent. Deze opgave heb je vorig academiejaar reeds in Java geïmplementeerd.
Nadere informatieInformatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction
Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic
Nadere informatieSimon de schildpad. 2012 J van Weert 1
Programmeren met Simon Simon de schildpad 2012 J van Weert 1 Inleiding: Wat is programmeren eigenlijk? Een computer doet niets zonder een programma. Die programma s worden geschreven door mensen: programmeurs.
Nadere informatieOpgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files
Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files 1 Introductie In deze oefening zal je je LCD display leren aansturen. Je controleert deze display door er instructies naar te
Nadere informatieHandleiding Google Tagmanager (GTM)
Handleiding Google Tagmanager (GTM) Inhoudsopgave Basisbeginselen... 2 Google Tagmanager in de praktijk... 3 Meerdere domeinen doormeten met Google Tagmanager... 8 Meerdere domeinen doormeten met Universal
Nadere informatiePagina 1van 38 Pagina 2 van 38 Pagina 3 van 38 1 2 3 4 5 Pagina 4 van 38 Pagina 5 van 38 Pagina 6 van 38 Pagina 7 van 38 Pagina 8 van 38 Pagina 9 van 38 Pagina 10 van 38 Pagina 11 van 38 Pagina 12 van
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 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 informatievan PSD naar JavaScript
2015 van PSD naar JavaScript F. Vonk versie 2 19-9-2015 inhoudsopgave 1. inleiding... - 2-2. ontwikkelomgeving... - 3-3. programmeerconcepten... - 4 - statement... - 4 - sequentie... - 4 - variabele en
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 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 informatie[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje:
[14] Functies Een goede programmeur doet altijd zijn best om zoveel mogelijk aan hergebruik van code te doen. Je probeert in je programma code te gebruiken die iemand anders heeft gemaakt, of code die
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord 11 december 2017 Zelle hoofdstuk 10 Stof Overzicht - theorie 1. Zelle hoofdstuk 4 en 5 2. Zelle hoofdstuk 7 en 8, recursie, Brookshear hoofdstuk 5 3. Zelle hoofdstuk
Nadere informatieZomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008
Katholieke Universiteit Leuven September 2008 Limieten en asymptoten van rationale functies (versie juli 2008) Rationale functies. Inleiding Functies als f : 5 5, f 2 : 2 3 + 2 f 3 : 32 + 7 4 en f 4 :
Nadere informatieKorte handleiding Maple bij de cursus Meetkunde voor B
Korte handleiding Maple bij de cursus Meetkunde voor B Deze handleiding sluit aan op en is gedeeltelijk gelijk aan de handleidingen die gebruikt worden bij de cursussen Wiskunde 2 en 3 voor B. Er zijn
Nadere informatieZelftest Programmeren in PL/I
Zelftest Programmeren in PL/I Document: n0830test.fm 26/03/2012 ABIS Training & Consulting P.. Box 220 B-3000 Leuven Belgium TRAINING & CNSULTING INLEIDING BIJ DE ZELFTEST PRGRAMMEREN IN PL/I m de voorkennis
Nadere informatieProgrammeren (1) Examen NAAM:
Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft
Nadere informatieTentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI
Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.
Nadere informatieElektronische indiening van offertes
Elektronische indiening van offertes Een checklist voor inschrijvers van overheidsopdrachten Wat heb ik nodig om via de applicatie e-tendering elektronische offertes in te dienen? Hoe ga ik te werk om
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 informatieE-PROCUREMENT GEBRUIKERSBEHEER
E-PROCUREMENT GEBRUIKERSBEHEER HANDLEIDING VOOR AANKOPERS GEBRUIKSVOORWAARDEN Rechten De FOD Personeel en Organisatie behoudt alle rechten (waaronder auteursrechten, merkrechten en octrooien) met betrekking
Nadere informatieVoor vragen: http://www.richard3332.nl/ of mail naar Richard3332@gmail.com
Welkom bij mijn PHP tutorial (Deel 1) Ik ga in deze delen PHP uitleggen, dit doe ik in het programma notepad++ (gratis) deze kunt u downloaden van www.richard3332.nl/downloads.php Als u beschikt over dreamweaver
Nadere informatieInhoudsopgave. Hoofdstuk 1.RMI...2
- CORBA Inhoudsopgave Hoofdstuk 1.RMI...2 1.1.Inleiding...2 1.2.De remote...4 1.3.Het remote...5 1.4.De server...6 1.5.De server opstarten...8 1.6.De client applicatie...8 1.7.De stub en skeleton en...10
Nadere informatieSoftware Ontwikkeling
Overzicht Bachelor Software Ontwikkeling Voorbereiding Visitatie ZAP vergadering donderdag 7/2/2008 2/15 Situatie Inleiding 6sp Klassiek ex-cathedra basisvak Oberon-2 Basisprincipes programmeren Inhoud
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord, Leonie Bosveld 12 december 2016 Zelle hoofdstuk 10 Stof Overzicht - theorie 1. Zelle hoofdstuk 4 en 5 2. Zelle hoofdstuk 7 en 8, recursie, Brookshear hoofdstuk
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Nadere informatie20 maart Prof. Dr. Katrien Verleye
20 maart 2018 Prof. Dr. Katrien Verleye Voorbereiding Nvivo sessie Start Nvivo op (Athena Academic Nvivo) BELANGRIJK: klik geregeld op save tijdens deze sessie Data-analyse met Nvivo NVivo does not prescribe
Nadere informatieOPLOSSINGEN REEKS 2 SYSTEMATISCHE EXPLORATIE Practicum Programmeerprincipes 2006-2007 cderoove@vub.ac.be Het waardenstelsel van Pico Oefening 1. op de waarde. Voorspel telkens de uitvoer als je de functie
Nadere informatieOpgaven. Python Assessment
Opgaven Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Inleiding Met dit assessment kun je controleren of je voldoende parate kennis over Python hebt om te beginnen
Nadere informatieJavaScript. 0 - Wat is JavaScript? JavaScript toevoegen
0 - Wat is JavaScript? JavaScript is hele andere koek dan Scratch. Het wordt ook door professionele programmeurs gebruikt. Doordat er veel mensen gebruik maken van JavaScript is er veel informatie over
Nadere informatie