epost: [email protected] hemsida: cs.umu.se/~bopspe tel: 786 5349 rum: d438

24
Anders Broberg, Programspråksteoridelen DVA Moment 2 Epost: [email protected] Hemsida: http://www.cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Upload: rafael-reed

Post on 01-Jan-2016

33 views

Category:

Documents


6 download

DESCRIPTION

Epost: [email protected] Hemsida: http://www.cs.umu.se/~bopspe Tel: 786 5349 Rum: D438. Kurslitteratur:. Robert W. Sebesta Concepts of Programming Language”, 4th ed. Schemaändningar. 13 April är det två föreläsningar 14 April är det föreläsning + gruppövning - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 21

Epost: [email protected]

Hemsida: http://www.cs.umu.se/~bopspe

Tel: 786 5349

Rum: D438

Page 2: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 22

Kurslitteratur:

Robert W. Sebesta

Concepts of Programming Language”, 4th ed.

Page 3: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 23

Schemaändningar

13 April är det två föreläsningar 14 April är det föreläsning + gruppövning 17 April varken föreläsning eller gruppövning 18 April ingen föreläsning 25 April är det en extra föreläsning (repetition

av hela kursen)

Page 4: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 24

Laboration 3

Utvärdering av ett programmeringsspråk 2 och 2 mejla senaste 6/4 Ingen programmering Uppsats/rapport

– Inlämning 25/4

Muntlig redovisning– Datum meddelas senare

Se web-sidorna för mer information

Page 5: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 25

”Programspråksteori”

Mål för kursen Kursinnehåll Varför studera ”programspråksteori”

Page 6: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 26

Kursinnehåll

Allmänt om programmeringsspråk Grundläggande principer för design av

programmeringsspråk Visa på de grundläggande byggnadsstenarna

hos programmeringsspråk

Page 7: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 27

Mål

Bli orienterade om programmeringsspråk Få en förståelse för hur programmeringsspråk

är uppbyggda Kunna läsa och förstå en informell

beskrivning av ett programmeringsspråk Underlätta inlärandet av nya

programmeringsspråk Lättare kunna välja språk

Page 8: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 28

Varför studera programspråk?

1. Ökad förmåga att uttrycka och förstå begreppinom programmering

2. Kunskaper för att välja programmeringsspråk

3. Lättare att lära sig nya programmeringsspråk

4. Förstå varför ett språk är implementerat på ett visst sätt

5. Designa nya programmeringsspråk

6. Bredare förståelse av datavetenskap som område

Page 9: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 29

Programmerings domäner

Vetenskapliga beräkningar– FORTRAN

”Business applications”– COBOL

AI- ”symboliska beräkningar”– LISP, Prolog

Systemprogrammering– C

Scriptprogrammering (bla. www)– PERL, Javascript

Tillämningsspråk– RPG - rapportgenerering– PLEX - AXE-växlar

Page 10: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 210

Krav på bra programspråk

Universellt– Lösa alla lösbara problem

Naturligt– Lösningarna skall kännas naturliga

Implementerbara– Måste gå att implementera

Effektiva– Det måste gå att göra en rimligt effektiv

implementation av språket (både tids och minnes effektivt)

Page 11: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 211

Kritierier för utvärdering

Läsbarhet Skrivbarhet Tillförlitighet Kostnader Övriga

Page 12: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 212

Läsbarhet

Enkelhet Ortogonalitet Kontrollsatser Datatyper och datastrukturer Ren syntax

Page 13: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 213

Skrivbarhet

Enkelhet och ortogonalitet Stöd för abstraktion Uttryckbarhet

Page 14: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 214

Tillförlitlighet

Typkontroller Undantagshantering ”Aliasing” Läs och skrivbarhet

Page 15: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 215

Kostnader

– Är ett samspel mellan många (alla andra) faktorer» Utbildning kostar» Skriva program kostar» Kompilering kostar» Exekvering av program kostar» Utvecklingsmiljöer/kompilatorer mm kostar» Tillförlitlighet kostar

Att få Men också dålig tillförlitlighet kostar

» Underhållandet av program kostar

Page 16: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 216

Övriga kriterier

Portabilitet Generalitet ”Well-defined”

Page 17: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 217

Utmärkande influenser för design

Arkitekturen hos maskinerna– Von Neumann 99.9% av alla datorer– Övriga arktekturer ||-arkitekturer, dataflödes, LISP-

maskinen,...

”Hypade” programmeringsmetodiker– Strukturerad programmering– Dataabstarktion– Objektorienterad programmering

Page 18: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 218

Typer av programspråk

Imperativa– FORTRAN , C, Modula 2, och Pascal

Funktionella– LISP, Haskell, Miranda och ML

Logikspråk– Prolog

Objektorienterade– Simula, Smalltalk, Eiffel, C++, Java

Page 19: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 219

”Trade-offs” för språkdesign

Tillförlitlighet vs. Beräkningskostnaden Skrivbarhet vs. Läsbarhet Flexibilitet vs. Säkerhet

Page 20: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 220

Implementeringsmetoder

Kompilerande språk Interpreterande språk Hybridsystem

Page 21: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 221

Kompilering

Översätter hösnivåspråk -> maskinkod Snabb exekvering av programmen Långsam process att översätta Vanligast för produktionsspråk så som

– C, COBOL, FORTRAN, ADA

Page 22: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 222

Interpretering

”Mjukvaru dator” Hanterar högnivåkommandon istället för

maskininstruktioner– Ingen översättning av programmet

Långsam exekvering av program Allt ovanligare

– En del LISP implementationer

Page 23: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 223

Hybridsystem

Översätter till mellankod Mellankoden skall vara enkel att interpretera Tex. Perl, och de flesta Java

implementationerna

Page 24: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 224

Historisköverblick (Självstudier)

Årtal och släktskap mellan språk är inte entydigt

Nya språk har idéer från ”alla” äldre språk Kapitel 2 kan läsas ganska översiktligt strunta

i detaljnivå Försök att komma ihåg ”nytt och bestående”