epost: [email protected] hemsida: cs.umu.se/~bopspe tel: 786 5349 rum: d438
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 PresentationTRANSCRIPT
![Page 1: Epost: bopspe@cs.umu.se Hemsida: cs.umu.se/~bopspe Tel: 786 5349 Rum: D438](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032709/56813277550346895d9910fd/html5/thumbnails/24.jpg)
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”