De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Inleiding Informatica, 2000-2001 College 5, H 5- sheet nr. 117 October 2000 - 14:19 Basiscursus Informatica 98/991 Inleiding Informatica College 6, Brookshear."— Transcript van de presentatie:

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

2 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.)

3 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

4 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

5 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

6 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

7 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

8 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.)

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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.)

17 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

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

19 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!

20 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

21 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)

22 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

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

24 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’)

25 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

26 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

27 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)

28 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

29 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

30 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

31 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

32 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);

33 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

34 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.)

35 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

36 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.

37 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

38 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

39 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

40 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

41 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

42 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)

43 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...

44 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

45 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

46 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.)

47 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)

48 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

49 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.)


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

Verwante presentaties


Ads door Google