Basiscursus Informatica, 98-99 College 5, H 5 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 5, Programming Languages Brookshear H5 Richard.

Slides:



Advertisements
Verwante presentaties

Advertisements

PSD Basisstructuren programmeren.
Hoe werkt een rekenmachine?
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
November 2013 Opinieonderzoek Vlaanderen – oktober 2013 Opiniepeiling Vlaanderen uitgevoerd op het iVOXpanel.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
7 april 2013 Zoetermeer 1. 1Korinthe Maar, zal iemand zeggen, hoe worden de doden opgewekt? En met wat voor lichaam komen zij? 2.
Basiscursus Informatica SWI Theoriegedeelte Overzicht en H0 Richard Benjamins.
STAPPENPLAN GRAMMATICUS.
Ronde (Sport & Spel) Quiz Night !
Basiscursus Informatica, College 7, H 7 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 7, Data Structures Brookshear H7 Richard.
Practica Computerlinguistiek Tekst en uitleg:
Kb.1 Ik leer op een goede manier optellen en aftrekken
Datastructuren Analyse van Algoritmen en O
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.

Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
VHDL Peter Slaets KHLim Functies en procedures Functies –type conversie functies »bit vector to integer en omgekeerd –verkorte componenten met maar 1 output.
FOD VOLKSGEZONDHEID, VEILIGHEID VAN DE VOEDSELKETEN EN LEEFMILIEU 1 Kwaliteit en Patiëntveiligheid in de Belgische ziekenhuizen anno 2008 Rapportage over.
Elke 7 seconden een nieuw getal
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Hoofdstuk 1 Programmeren.
Les 2 Basisbouwstenen (deel 1)
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
1 introductie 3'46” …………… normaal hart hond 1'41” ……..
Oefeningen F-toetsen ANOVA.
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator  Calculator met “loopjes” Calculator met “loopjes”  Processor.
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
Frank Stalpers en Ad Baars
Numerieke Natuurkunde
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
CONTROLESTRUCTUREN (DEEL 1)
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
Hoe werkt een rekenmachine?
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
ribwis1 Toegepaste wiskunde Lesweek 01 – Deel B
Opleiding INFORMATICA Programmeertaal Implementatie Taal ontwerp Vertalen.
Algoritmiek Dataweergave en bewerking Hoorcollege 2 - Ma. 11 sept L.M. Bosveld-de Smet.
Hoofdstuk 3: Inleiding tot Java Applets
Inleiding Informatica, College 6, H 6 – sheet nr. 117 October :27 Basiscursus Informatica 98/991 Inleiding Informatica College 7, Brookshear.
Inleiding Informatica, College 5, H 5- sheet nr. 117 October :19 Basiscursus Informatica 98/991 Inleiding Informatica College 6, Brookshear.
Inleiding Informatica, College 4, H 4 – sheet nr. 117 October :17 Basiscursus Informatica 98/991 Inleiding Informatica College 5 Brookshear.
Basiscursus Informatica, College 8, H 8 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 8, File Structures Brookshear H8 Richard.
Basiscursus Informatica, College 6, H 6 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 6, Software Engineering Brookshear H6 Bob.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 5.
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 3: Werken met numerieke gegevens.
Basiscursus Informatica, College 9, H 9 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 9, Database Structures Brookshear H9 Richard.
Basiscursus Informatica, College 4, H 4 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 4, Algoritmes Brookshear H4 Richard Benjamins.
De financiële functie: Integrale bedrijfsanalyse©
23 september 2014 Niels Vanmarcke
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
13 november 2014 Bodegraven 1. 2 de vorige keer: 1Kor.15:29-34 indien er geen doden opgewekt worden...  vs 29: waarom dopen?  vs.30-32: waarom doodsgevaren.
CONTROLESTRUCTUREN (DEEL 1)
Hoofdstuk 3 - Conditionele logica
Parsing 1. Situering Contextvrije grammatica’s Predictive (of recursive-descent) parsing LR-parsing Parser generator: Yacc Error recovery 2.
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
tircms02-p les 1 Operating Systems practicum
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Welkom! maandag 16 November 2015 Les B-2.
Les 3 - Operators Workshop Php Basic. ICT Academy Php Basic Content Operators Wiskundig Toewijzing Vergelijking.
Informatica Welkom! maandag 16 November Les B-1.
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Programmeren woensdag 4 oktober 2017.
Transcript van de presentatie:

Basiscursus Informatica, College 5, H 5 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 5, Programming Languages Brookshear H5 Richard Benjamins

Basiscursus Informatica, College 5, H 5 2 Basiscursus Informatica 98/992 Deeltentamen 1 n Hoofdstuk 1-5 n Dinsdag 9 februari van 15: :00 n Gebouw A, zaal E (beneden) n Machiel Janssen, Pascal Beys n Eerst volgende college: H 6, Software Engineering (deze zaal) n Door Prof. Wielinga

Basiscursus Informatica, College 5, H 5 3 Basiscursus Informatica 98/993 Overzicht college 5 n Geschiedenis van programmeertalen n Verschillende manieren van programmeren n Programmaonderdelen n Implementatie van programmeertalen n Niet: 5.5 (parallel computing) en 5.6 (declarative programming)

Basiscursus Informatica, College 5, H 5 4 Basiscursus Informatica 98/994 Geschiedenis n Machine-taal1ste generatie n Assembly-taal2de generatie n Hoognivo-taal3de generatie

Basiscursus Informatica, College 5, H 5 5 Basiscursus Informatica 98/995 Machine-taal n Moeilijk te begrijpen, wijzigen, debuggen n Machine-afhankelijk n Programmeur gedwongen te denken in kleine stappen 156C 166D E C000 machine 1machine 2

Basiscursus Informatica, College 5, H 5 6 Basiscursus Informatica 98/996 Assembly taal n Makkelijker te begrijpen n Assembler zet het om in machine-taal n Nog steeds machine- afhankelijk n Nog steeds laag-nivo primitieven 156C 166D E C000 Cel 6C heet PRICE Cel 6D heet TAX Cel 6E heet TOTAL ADDI add integers LD R5, PRICE LD R6, TAX ADDI R0, R5 R6 ST R0, TOTAL HLT

Basiscursus Informatica, College 5, H 5 7 Basiscursus Informatica 98/997 Hoognivo-taal n Hoognivo primitieven ä assign Tot the value P+T n (Bijna) machine- onafhankelijk n Vertaling door compiler ä compileer verschillende machine-instructies samen in hoognivo primitive machine 1machine 2machine 3 compiler1 compiler2 compiler if(cijfer>=60) System.out.println

Basiscursus Informatica, College 5, H 5 8 Basiscursus Informatica 98/998 Generaties n Eerste generatie: machine-talen n Tweede generatie: assembly-talen n Derde generatie: hoognivo-talen n Vierde generatie: software paketten voor niet-programmeurs n Vijfde generatie: declaratieve talen ä concentreer op probleem en laat machine het oplossen n Ontwikkeling ä van mens past zich aan aan machine naar machine past zich aan aan mens ä van hoe naar wat

Basiscursus Informatica, College 5, H 5 9 Basiscursus Informatica 98/999 Overzicht college 5 n Geschiedenis van programmeertalen n Verschillende manieren van programmeren n Programmaonderdelen n Implementatie van programmeertalen

Basiscursus Informatica, College 5, H 5 10 Basiscursus Informatica 98/9910 Imperatieve paradigma n = Procedurele paradigma n Gebaseerd op CPU fetch-decode-execute n Opeenvolging van commando’s/instructies n Voorbeelden ä Fortran, Cobol, Algol, Basic, C, Pascal, Ada n Zie vorige college

Basiscursus Informatica, College 5, H 5 11 Basiscursus Informatica 98/9911 Declaratieve paradigma n Nadruk op probleem-beschrijving en n niet op hoe het op te lossen n Een “general problem solver” doet dat ä zoektocht naar GPS n Logisch programmeren n Voorbeeld: Prolog

Basiscursus Informatica, College 5, H 5 12 Basiscursus Informatica 98/9912 Prolog (declaratief) /* feiten */ vader(jan, piet). vader(piet, willem). vader(piet, ellen). moeder(saskia, piet). broer(peter, saskia). /* regels */ ouder(X, Y):- vader(X, Y). ouder(X, Y):- moeder(X, Y). oom(X, Y):- ouder(Z, Y), broer(X, Z). vader(jan, willem)?no vader(jan, X)? X=piet vader(Y, piet)?Y=jan ouder(X, piet)?X=jan;X=saskia oom(X, piet)?X=peter

Basiscursus Informatica, College 5, H 5 13 Basiscursus Informatica 98/9913 Functionele paradigma n Programma is ontwikkelen van “black boxes” (functies) ä hebben input en output ä functionele taal heeft ingebouwde functies ä programmeur bouwt hier opvoort n Gemiddelde: (Divide (Sum Numbers) (Count Numbers)) n Voorbeeld: LISP

Basiscursus Informatica, College 5, H 5 14 Basiscursus Informatica 98/9914 Voorbeeld functioneel (+ 3 4)7 (* (- 4 2) (+ 3 4))14 (first "abcd")a (reverse "abcd")"dcba" (chop "abcd")"bcd" (concat a "bcd")"abcd" (first (reverse "abcd"))d (first (chop (reverse "wxyz"))y

Basiscursus Informatica, College 5, H 5 15 Basiscursus Informatica 98/9915 Obect-georienteerde paradig n Data gecentreerd n Data zijn actieve objecten ipv passieve zoals in imperatieve benadering n Data-object geassocieerd met procedures / methoden die er op kunnen werken ä GUI: window met mogelijke acties (bv door muis) ä event-driven system n Voorbeelden: ä Smalltalk, C++, Ada95, Java

Basiscursus Informatica, College 5, H 5 16 Basiscursus Informatica 98/9916 Voorbeeld OO MAIL To: From: Date: Text:.... Show Send Cancel data methoden object

Basiscursus Informatica, College 5, H 5 17 Basiscursus Informatica 98/9917 Overzicht college 5 n Geschiedenis van programmeertalen n Verschillende manieren van programmeren n Programmaonderdelen n Implementatie van programmeertalen

Basiscursus Informatica, College 5, H 5 18 Basiscursus Informatica 98/9918 Programma onderdelen n Declaratieve statements ä definities van wat je gebruikt in programma ä compiler moet weten hoe te vertalen naar machine-taal n Imperatieve statements ä hoe je het gebruikt n Commentaar ä uitleg

Basiscursus Informatica, College 5, H 5 19 Basiscursus Informatica 98/9919 Programma organisatie declaratieve gedeelte procedurele gedeelte commentaar

Basiscursus Informatica, College 5, H 5 20 Basiscursus Informatica 98/9920 Declaraties n Variabele ä assign hoogte the value meter n Constante ä zeespiegelnivo = 645 n Literal ä 645 ä beter niet gebruiken!

Basiscursus Informatica, College 5, H 5 21 Basiscursus Informatica 98/9921 Declaraties: data typen n Belangrijk voor ä interpretatie van bit patroon ä mogelijke operaties op data n Integer: gehele getallen (two’s complement) n Real: reele getallen (floating point) n Character: symbolen (ASCII, concatenatie) n Boolean: waar/onwaar

Basiscursus Informatica, College 5, H 5 22 Basiscursus Informatica 98/9922 Declaraties: data structuren n Conceptuele structuur van de data n Array ä string van characters met bepaalde lengte ä compiler moet dit weten n Homogene arrays (een of meer dimensionaal)

Basiscursus Informatica, College 5, H 5 23 Basiscursus Informatica 98/9923 Heterogene arrays n Blok data waarin verschillende elementen van verschillend type zijn Var Employee: record Name: packed array[1..8] of char; Age: integer; Skillrating: real; end Employee NameAgeSkillrating

Basiscursus Informatica, College 5, H 5 24 Basiscursus Informatica 98/9924 Programma organisatie declaratieve gedeelte procedurele gedeelte commentaar

Basiscursus Informatica, College 5, H 5 25 Basiscursus Informatica 98/9925 Assignment statements Total = Prijs + Belasting Var = Expressie n Kracht komt uit complexiteit van de expressie n Niet alleen numerieke expressies (concatenatie) n Overloading + ä optellen van integers (3+5) ä concatenatie van characters (‘ha’+’llo’)

Basiscursus Informatica, College 5, H 5 26 Basiscursus Informatica 98/9926 Controle statements n Goto n If/Then/Else goto 40 20Total = Price + 10 goto if Price < 50 goto 60 goto 20 60Total = Price stop if Price < 50 then Total = Price + 5 else Total = Price + 10 stop

Basiscursus Informatica, College 5, H 5 27 Basiscursus Informatica 98/9927 Controle statements n Repeat.... until n While.... do n For (lijkt op while/do) ä for (Count=1; Count<4; ++Count) {body} ä initialisatie, terminatie en modificatie op een regel ä handig als iteratie voor elke waarde in een reeks

Basiscursus Informatica, College 5, H 5 28 Basiscursus Informatica 98/9928 Commentaar n Genegeerd door vertaler n Ondergeschoven kindje n Essentieel voor begrip ä zelfde programmeur, later ä andere programmeur n Interne documentatie (binnen programma)

Basiscursus Informatica, College 5, H 5 29 Basiscursus Informatica 98/9929 Overzicht onderdelen programma declaratiefimperatiefcommentaar literalsconstantenvariabelen integerrealcharacterboolean data structuren homogeen arrayheterogeen array assignmentcontrole gotoif/then/else while/do repeat/until for interne documentatie

Basiscursus Informatica, College 5, H 5 30 Basiscursus Informatica 98/9930 Programma units n Procedures: imperatieve paradigma n Functies: functionele paradigma n I/O statements: communicatie met OS ä read en write statements n Object: OO paradigma n Clausules: declaratieve paradigma

Basiscursus Informatica, College 5, H 5 31 Basiscursus Informatica 98/9931 Procedures n Aanroepen van programma binnen een programma n Procedure naam (argumentenlijst) Procedure groet (Persoon) var Teller: integer assign Teller the value 3; while Teller > 0 do (printf "hallo Persoon"; assign Teller the value Teller - 1) procedure header Teller: lokale var globale vars

Basiscursus Informatica, College 5, H 5 32 Basiscursus Informatica 98/9932 Parameters n Programma en procedures wisselen data uit dmv parameters Sorteer (Mensen, Gesorteerd); while niet-leeg Gesorteerd do frist(Gesorteerd, Persoon) groet (Persoon), delete(Persoon, Gesorteerd)

Basiscursus Informatica, College 5, H 5 33 Basiscursus Informatica 98/9933 Functies n Lijkt op procedure, maar nu wordt waarde niet doorgegeven door parameter, maar de functie zelf heeft waarde n Z = Max(N1, N2) - Min(N3, N4); n Larger(N1, N2, L); Smaller(N3, N4, S); Z = L - S;

Basiscursus Informatica, College 5, H 5 34 Basiscursus Informatica 98/9934 Overzicht college 5 n Geschiedenis van programmeertalen n Verschillende manieren van programmeren n Programmaonderdelen n Implementatie van programmeertalen

Basiscursus Informatica, College 5, H 5 35 Basiscursus Informatica 98/9935 Vertaalproces n Hoognivo taal --> machine-taal n source program VERTAAL object program n VERTAAL ä lexical analysis ä parsing ä code generation

Basiscursus Informatica, College 5, H 5 36 Basiscursus Informatica 98/9936 Lexical analysis n Welke symboolstrings representeren een eenheid (‘145’ en niet ‘1’, ‘4’, ‘5’) n Elke eenheid heeft type ä getal, woord, rekenkundige operator, etc. ä token (input voor parser)

Basiscursus Informatica, College 5, H 5 37 Basiscursus Informatica 98/9937 Lexical analyzer programma in hoognivo-taal prijs = lexical analysis prijs : woord = : ass op 52 : getal + : add op 4 : getal tokens parsing code generation programma in machine-taal

Basiscursus Informatica, College 5, H 5 38 Basiscursus Informatica 98/9938 Parsing n Grammaticale struktuur identificeren ä declaratieve tokens worden omgezet in symbol table ä grammatica/syntax –interpunctie –keywords (if/then, etc.) n Resultaat is een parse tree n Vergelijk natuurlijke taal cijfer: real toets: integer totaal: integer

Basiscursus Informatica, College 5, H 5 39 Basiscursus Informatica 98/9939 Gewone taal n De man aait de hond zin onderwerpgezegde lijdend voorwerp lidwoord zelfstand naamwrd hoofd werkwoord lidwoord zelfstand naamwrd DEMANAAITDEHOND tokens

Basiscursus Informatica, College 5, H 5 40 Basiscursus Informatica 98/9940 Syntax parsing Grammatica specificatie IF-THEN-ELSE-ST :: if BOOLEAN-EX then STATEMENT else STATEMENT BOOLEAN-EX :: terminals non-terminals grammatica specificatie tokens parse tree

Basiscursus Informatica, College 5, H 5 41 Basiscursus Informatica 98/9941 Parser source programma prijs = lexical analysis prijs : woord = : ass op 52 = getal + : add op 4 : getal tokens parsing code generation assignment varass opvalue prijs= add op object programma

Basiscursus Informatica, College 5, H 5 42 Basiscursus Informatica 98/9942 Code generation n Construeren van machine-taal instructies die de statements uitvoeren die de parser heeft herkend n Code optimalisatie speelt hier een rol ä assign x the value y + z; assign w the value x + z n Merkop ä cijfer = 0.3*opdracht + 0.7*toets (RADD) ä opdracht = opdracht1 + opdracht2 (IADD)

Basiscursus Informatica, College 5, H 5 43 Basiscursus Informatica 98/9943 Code generator source programma prijs = lexical analysis prijs : woord = : ass op 52 = getal + : add op 4 : getal tokens parsing code generation assignment varass opvalue prijs= op object programma 106C 106D...

Basiscursus Informatica, College 5, H 5 44 Basiscursus Informatica 98/9944 Complete proces n Linking: ä source code wordt vaak niet als een geheel vertaald naar object code ä verschillende delen moeten met elkaar en met OS verbonden worden n Loading: ä laad gehele programma in geheugen ä normaal staat het op disk

Basiscursus Informatica, College 5, H 5 45 Basiscursus Informatica 98/9945 Van source naar exe source program object program load module executable program translatelinkload