De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Basiscursus Informatica, 98-99 College 5, H 5 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 5, Programming Languages Brookshear H5 Richard."— Transcript van de presentatie:

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

2 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

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

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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

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

17 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

18 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

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

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

21 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

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

23 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

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

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

26 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

27 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

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

29 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

30 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

31 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

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

33 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;

34 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

35 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

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

37 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

38 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

39 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

40 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

41 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

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

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

44 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

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


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

Verwante presentaties


Ads door Google