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
Anders Broberg, Programspråksteoridelen DVA Moment 21
Epost: [email protected]
Hemsida: http://www.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.
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)
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
Anders Broberg, Programspråksteoridelen DVA Moment 25
”Programspråksteori”
Mål för kursen Kursinnehåll Varför studera ”programspråksteori”
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
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
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
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
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)
Anders Broberg, Programspråksteoridelen DVA Moment 211
Kritierier för utvärdering
Läsbarhet Skrivbarhet Tillförlitighet Kostnader Övriga
Anders Broberg, Programspråksteoridelen DVA Moment 212
Läsbarhet
Enkelhet Ortogonalitet Kontrollsatser Datatyper och datastrukturer Ren syntax
Anders Broberg, Programspråksteoridelen DVA Moment 213
Skrivbarhet
Enkelhet och ortogonalitet Stöd för abstraktion Uttryckbarhet
Anders Broberg, Programspråksteoridelen DVA Moment 214
Tillförlitlighet
Typkontroller Undantagshantering ”Aliasing” Läs och skrivbarhet
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
Anders Broberg, Programspråksteoridelen DVA Moment 216
Övriga kriterier
Portabilitet Generalitet ”Well-defined”
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
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
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
Anders Broberg, Programspråksteoridelen DVA Moment 220
Implementeringsmetoder
Kompilerande språk Interpreterande språk Hybridsystem
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
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
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
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”