Inleiding Informatica, 2000-2001 College 5, H 5- sheet nr. 117 October 2000 - 14:19 Basiscursus Informatica 98/991 Inleiding Informatica College 6, Brookshear.

Slides:



Advertisements
Verwante presentaties
Objectgeoriënteerd Programmeren in C++
Advertisements

PSD Basisstructuren programmeren.
Hoofdstuk 1 Programmeren.
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Basiscursus Informatica SWI Theoriegedeelte Overzicht en H0 Richard Benjamins.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
Arduino project.
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:
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
VBA en VBS Een introductie.
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 5.
Inleiding Informatica
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.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Hoofdstuk 1 Programmeren.
Les 2 Basisbouwstenen (deel 1)
De koektrommel of de grabbelton
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Inleiding Informatica, College 2, H 2 - nr1 17 October :50 Basiscursus Informatica 98/991 SWI Inleiding Informatica Brookshear hoofdstuk.
Frank Stalpers en Ad Baars
Inleidend probleem Data structuur (hiërarchie van classes)
AI91  Het Probleem  Grammatica’s  Transitie netwerken Leeswijzer: Hoofdstuk AI Kaleidoscoop College 9: Natuurlijke taal.
Numerieke Natuurkunde
Designing Knowledge Systems b Hoofdstuk 11 van Knowledge Engineering and Management. The CommonKADS Methodology. b A.Th. Schreiber, J.M. Akkermans, A.A.Anjewierder,
CONTROLESTRUCTUREN (DEEL 1)
Java en BlueJ Een goed idee?.
Opleiding INFORMATICA Programmeertaal Implementatie Taal ontwerp Vertalen.
Algoritmiek Object-georiënteerd Programmeren
Algoritmiek Dataweergave en bewerking Hoorcollege 2 - Ma. 11 sept L.M. Bosveld-de Smet.
Inleiding Informatica, College 6, H 6 – sheet nr. 117 October :27 Basiscursus Informatica 98/991 Inleiding Informatica College 7, 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 5, H 5 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 5, Programming Languages Brookshear H5 Richard.
Basiscursus Informatica, College 6, H 6 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 6, Software Engineering Brookshear H6 Bob.
Basiscursus Informatica, College 2, H 2 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 2, Data Manupulatie Brookshear H2 Richard.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
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.
Overerving Inheritance Overerving l Inleiding l Type-extensie l Compatibiliteit van een basistype met zijn extensie l Statisch en dynamisch type l Run.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Variabelen en berekeningen
CONTROLESTRUCTUREN (DEEL 1)
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
tircms02-p les 1 Operating Systems practicum
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Beslissingen. Inhoud: Booleaanse expressies: wat? Booleaanse expressies: wat? Relationele en logische operatoren Relationele en logische operatoren De.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
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.
Programmeren.
Objectgeoriënteerd Programmeren
Hoofdstuk 9.2 Strings.
Object georiënteerd programmeren
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Programmeren woensdag 4 oktober 2017.
SQL Les February 2019.
Software Development fundamentals
Transcript van de presentatie:

Inleiding Informatica, College 5, H 5- sheet nr. 117 October :19 Basiscursus Informatica 98/991 Inleiding Informatica College 6, Brookshear hoofdstuk 5: Programming Languages

Inleiding Informatica, College 5, H 5- sheet nr. 217 October :19 Basiscursus Informatica 98/992 Overzicht college 6 n 1. Historisch perspectief n 2. Traditionele programmeerconcepten n 3. Procedurele eenheden n 4. Implementatie van programmeertalen n WEL 5. Object-georiënteerd programmeren n NIET: 5.6 (concurrency) en 5.6 (decl.progr.)

Inleiding Informatica, College 5, H 5- sheet nr. 317 October :19 Basiscursus Informatica 98/993 Geschiedenis n Machine-taal1ste generatie n Assembleer-taal2de generatie n Hoog nivo-taal3de generatie

Inleiding Informatica, College 5, H 5- sheet nr. 417 October :19 Basiscursus Informatica 98/994 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

Inleiding Informatica, College 5, H 5- sheet nr. 517 October :19 Basiscursus Informatica 98/995 Assembleer 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

Inleiding Informatica, College 5, H 5- sheet nr. 617 October :19 Basiscursus Informatica 98/996 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

Inleiding Informatica, College 5, H 5- sheet nr. 717 October :19 Basiscursus Informatica 98/997 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

Inleiding Informatica, College 5, H 5- sheet nr. 817 October :19 Basiscursus Informatica 98/998 Overzicht college 6 n 1. Historisch perspectief n 2. Traditionele programmeerconcepten n 3. Procedurele eenheden n 4. Implementatie van programmeertalen n WEL 5. Object-georiënteerd programmeren n NIET: 5.6 (concurrency) en 5.6 (decl.progr.)

Inleiding Informatica, College 5, H 5- sheet nr. 917 October :19 Basiscursus Informatica 98/ 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/ Declaratieve paradigma n Nadruk op probleem-beschrijving in plaats van op het algoritme n Een “general problem solver” doet dat ä zoektocht naar GPS n Logisch programmeren: Prolog n Database taal: SQL

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9911 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/ Functionele paradigma n Programmeren is ontwikkelen van “black boxes” (functies) ä hebben argumenten en funktiewaarde ä functionele taal heeft ingebouwde functies ä programmeur bouwt hier op verder n Gemiddelde: (Divide (Sum Numbers) (Count Numbers)) n Voorbeeld: LISP

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9913 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/ Object-oriëntatie n Koppeling van data (attributen) en funkties (gedrag) n Modulair, hergebruik, ‘natuurlijk’ n Objecten versturen ‘boodschappen’ n Bibliotheken van klassen van objecten n Bruikbaar voor analyse, ontwerp en implementatie ä Smalltalk, C++, Ada95, Java, CORBA

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9915 Voorbeeld OO MAIL To: From: Date: Text:.... Show Send Cancel data methoden object

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9916 Overzicht college 6 n 1. Historisch perspectief n 2. Traditionele programmeerconcepten n 3. Procedurele eenheden n 4. Implementatie van programmeertalen n WEL 5. Object-georiënteerd programmeren n NIET: 5.6 (concurrency) en 5.6 (decl.progr.)

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9917 Programma onderdelen n Declaratieve statements ä definities van wat je gebruikt in programma: variabelen en meervoudige datastructuren, objecten n Imperatieve statements ä hoe je het gebruikt: procedures, funkties, methoden n Documentatie en commentaar

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9918 Programma organisatie declaratieve gedeelte procedurele gedeelte commentaar

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9919 Declaraties n Variabele ä assign hoogte the value meter = 645 n Constante ä zeespiegelnivo = 645 n Literal ä 645 ä beter zo niet gebruiken: magic number!

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9920 Declaraties: data typen n Belangrijk voor ä interpretatie van bit patroon ä mogelijke operaties op data n Integer: gehele getallen (two’s complement) n Real: gebroken getallen (floating point) n Character: symbolen (ASCII, concatenatie) n Boolean: waar/onwaar

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9921 Declaraties: data structuren n Conceptuele structuur van de data n Array ä bv. string van characters met bepaalde lengte ä compiler moet dit weten n Homogene arrays (een of meer dimensionaal)

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9922 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9923 Programma organisatie declaratieve gedeelte procedurele gedeelte commentaar

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9924 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’)

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9925 Controle statements n Goto (in de ban) 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9926 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9927 Commentaar n Genegeerd door vertaler n Traditioneel: ondergeschoven kindje n Essentieel voor begrip ä zelfde programmeur, later ä andere programmeur n Interne documentatie (binnen programma)

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9928 Overzicht onderdelen programma declaratiefimperatiefcommentaar literalsconstantenvariabelen integerrealcharacterboolean data structuren homogeen arrayheterogeen array assignmentcontrole gotoif/then/else while/do repeat/until for interne documentatie

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9929 Programma units n Procedures: imperatieve paradigma n Functies: functionele paradigma n I/O statements: communicatie met OS ä read en write statements n Klasse en object: OO paradigma n Clausules: declaratieve paradigma

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9930 Procedures n Aanroepen van programma binnen een programma n Procedure naam (argumentenlijst) Procedure rekenom (gulden) { var euro: integer assign euro the value 2,20371; printf (gulden + “ gulden = “ + gulden /euro + “ euro “); } procedure header euro: lokale var gulden: globale var

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9931 Parameters n Programma en procedures wisselen data uit dmv parameters: ä formeel: beschrijving in de definitie ä actueel: invulling in de aanroep ä werken met een kopie: call-by-value ä werken met origineel: call-by-reference

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9932 Functies n Lijkt op procedure, maar nu wordt waarde niet teruggegeven een parameter, maar de functie zelf geeft de waarde terug n funkties: ä Max(N1, N2, N3), ä Min(N1, N2, N3); n grootste = Max (123, 345, 456); kleinste = Min (123, 345, 456);

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9933 Input/Output n Communicatie met het besturingssysteem via I/O procedures n in elke taal beschikbaar n in eenvoudige vorm de console funkties: read/print n geavanceerd: lezen en schrijven van complexe bestanden, poorten, protocollen

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9934 Overzicht college 6 n 1. Historisch perspectief n 2. Traditionele programmeerconcepten n 3. Procedurele eenheden n 4. Implementatie van programmeertalen n WEL 5. Object-georiënteerd programmeren n NIET: 5.6 (concurrency) en 5.6 (decl.progr.)

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9935 Vertaalproces n Van hoog nivo taal --> machine-taal n broncode programma VERTALEN naar object programma n VERTALEN: ä lexicale analyse ä parsing ä code generation

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9936 Lexical analysis n Teken voor teken lezen en omzetten naar programma ‘tokens’ ä bijvoorbeeld lezen van ‘i’, ‘n’, ‘t’ en omzetten naar ‘int’) n Parser krijgt de tokens als invoer: ä gereserveerde woorden ä getallen, rekenkundige operatoren, ä statement scheiders, blok scheiders, etc.

Inleiding Informatica, College 5, H 5- sheet nr October :19 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9942 Code generation n Construeren van machine-taal instructies die de statements uitvoeren die de parser heeft herkend n Coercion = overzetten van datatype door de parser (ook wel: cast) n Strongly typed = programmeur moet alle typen aangeven (itt weakly typed)

Inleiding Informatica, College 5, H 5- sheet nr October :19 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...

Inleiding Informatica, College 5, H 5- sheet nr October :19 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

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9945 Van source naar exe source program object program load module executable program translatelinkload

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9946 Overzicht college 6 n 1. Historisch perspectief n 2. Traditionele programmeerconcepten n 3. Procedurele eenheden n 4. Implementatie van programmeertalen n WEL 5. Object-georiënteerd programmeren n NIET: 5.6 (concurrency) en 5.6 (decl.progr.)

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9947 Object-oriëntatie n Klassen vormen ‘blauwdruk’ voor aktieve objecten n Objecten zijn instanties van klassen n Objecten bezitten attributen (state) en gedrag (behaviour)(ook wel: data en methoden) n Toestand en gedrag kunnen meer of minder beschermd worden (encapsulation)

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9948 Object-oriëntatie n Klassen vormen overervings-hiërarchie n Attributen en gedrag worden over-geërfd plus uitgebreid (specialisatie) in de subklasse n Polymorfisme: specifieke subklasse van een object hoeft niet bekend te zijn bij compilatie n Compositie: objecten kunnen samenstellende delen zijn van een klasse

Inleiding Informatica, College 5, H 5- sheet nr October :19 Basiscursus Informatica 98/9949 Overzicht college 6 n 1. Historisch perspectief n 2. Traditionele programmeerconcepten n 3. Procedurele eenheden n 4. Implementatie van programmeertalen n WEL 5. Object-georiënteerd programmeren n NIET: 5.6 (concurrency) en 5.6 (decl.progr.)