Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avLennart Pålsson
1
2002-11-05F. Drewes, Inst. f. datavetenskap1 Föreläsning 1: Inledning administrativt o dyl kursens mål varför programspråksteori? språkkategorier användningsområden för programspråk språkegenskaper och utvärderingskriterier
2
2002-11-05F. Drewes, Inst. f. datavetenskap2 Administrativt Lärare Frank Drewes David Olsson Set Norman Urban Sandström Kursbok Sebesta: Concepts of Programming Languages, 5:e upplagan, Addison-Wesley, 2002 Två laborationer jämföra två programspråksparadigmer komplettera en interpretator för ett litet programspråk handledning, gruppövningar
3
2002-11-05F. Drewes, Inst. f. datavetenskap3 Administrativt (2) Speciell gruppövning 8/11, 15-17, i sal MA 112 ML-repetition genomförd av Set Norman Aktuell information kommer att finnas på kursens hemsida Handledarna kommer hit 9:45 för att säga ytterligare några ord
4
2002-11-05F. Drewes, Inst. f. datavetenskap4 Kursens mål Känna till de viktigaste programspråksparadigmen Förstå koncepten som ligger till grunds för dem Kunna utvärdera språk/språkkoncept och välja ut det som är mest lämpligt i en viss situation Ha baskunskaper om hur programspråk definieras och implementeras Kursen är varken en programmeringskurs eller en kurs i översättarteknik
5
2002-11-05F. Drewes, Inst. f. datavetenskap5 Varför programspråksteori? Min personliga motivation Det räcker inte att kunna programmera. Datavetare blir man först när man kan reflektera på hur saker och ting hänger ihop och hur de fungerar. Att begrunda ämnet på ett vetenskapligt sätt kräver att formulera allmänna principer som det bygger på förstå de grundläggande ideerna bli medveten om deras för- och nackdelar på lång sikt själv kunna bidra till utvecklingen
6
2002-11-05F. Drewes, Inst. f. datavetenskap6 Varför programspråksteori? (2) Mer praktiska motiveringar är att få tillgång till ett ökade utbud av problemlösningar skapa en bas för att lättare kunna lära sig/välja/utveckla programspråk kunna undvika fel som beror på att ”farliga” koncept används eller olika koncept inte hålls isär skriva bättre (t.ex. effektivare) program genom att kunna bedöma hur de påverkas av implementationsfrågor Dessutom: Ju fler personer får en bättre överblick desto större är chansen att nya koncept får ingång i praktiken.
7
2002-11-05F. Drewes, Inst. f. datavetenskap7 Språkkategorier Imperativa språk beskriver hur minnescellernas innehåll förändras stegvis orienterar sig mot von Neumanns datorarkitektur Funktionella språk specificerar funktioner efter matematikens förebild abstraherar från datorn Logiska språk specificerar basfakta och deras förhållanden använder logiska inferensregler för att härleda nya fakta Objektorienterade språk fokuserar på ”objekt” som ”kommunicerar” med varandra numera ofta imperativ i grund och botten
8
2002-11-05F. Drewes, Inst. f. datavetenskap8 Användningsområden för programspråk Vetenskapliga beräkningar effektivitet, snabb flyttals- aritmetik (tidigt språk: FORTRAN) Ekonomiska tillämpningar decimalaritmetik, generera ekonomiska rapporter (tidigt språk: COBOL) Artificiell intelligens ”symboliska” beräkningar, hantering av listor (tidigt språk: LISP, senare: PROLOG) Systemprogrammering effektivitet, direkt tillgång till operativsystemets rutiner och resurser (tidigt språk: PL/I, senare: C) Övriga (språk för speciella områden, ”scripting languages”)
9
2002-11-05F. Drewes, Inst. f. datavetenskap9 Kriterier för språkutvärdering Läsbarhet hur lätt är det att förstå vad programmet gör? avgörande faktor för underhåll av mjukvara påverkar alla övriga kriterier Skrivbarhet hur lätt är det att skriva ett program? motiveringen för att överhuvudtaget utveckla programspråk ingen skrivbarhet utan läsbarhet Är ett språk/språkkoncept bra?
10
2002-11-05F. Drewes, Inst. f. datavetenskap10 Kriterier för språkutvärdering (2) Tillförlitlighet gör programmen det de skulle göra? ingen tillförlitlighet utan läsbarhet och skrivbarhet ibland det viktigaste kriteriet av alla Kostnader som orsakas av att undervisa folk och skriva, använda och underhålla program implementera språket köra program (effektivitet)
11
2002-11-05F. Drewes, Inst. f. datavetenskap11 Egenskaper som särskilt påverkar läsbarhet Enkelhet antalet koncept hur många olika sätt finns det att uttrycka en sak? används ”overloading” på ett nyttigt sätt? Ortogonalitet ett fåtal grundläggande och oberoende byggstenar kan kombineras enligt enkla syntax- och semantikregler utan undantag ökar läsbarheten (så länge det inte används i övermått) Kontrollstrukturer överskådlig struktur är viktigare än flexibilitet
12
2002-11-05F. Drewes, Inst. f. datavetenskap12 Egenskaper som särskilt påverkar läsbarhet (2) Datatyper och datastrukturer möjlighet att definiera egna måste finnas (ortogonalitet!) data måste kunna representeras på ett ”naturligt” sätt Stöd för abstraktion koncept som tillåter att skapa olika detaljnivåer både process- och dataabstraktion är viktiga Syntax språkets syntax bör vara lätt att tolka (korrekt)
13
2002-11-05F. Drewes, Inst. f. datavetenskap13 Egenskaper som särskilt påverkar skrivbarhet Enkelhet och ortogonalitet lär dig bara några få grundkoncept och regler så kan du språket Stöd för abstraktion ta ett problem i taget Uttryckskraft koncepten som finns borde vara kraftfulla (men det kan lätt minska läsbarheten!)
14
2002-11-05F. Drewes, Inst. f. datavetenskap14 Egenskaper som särskilt påverkar tillförlitlighet Typkontroll typfel tyder på felaktig eller slarvig programmeringsstil Hantering av undantag (”exception handling”) att enkelt kunna beskriva hur undantag ska hanteras återhämtning efter att fel uppstod Referenstyper och pekare vad kan de referera till? ”aliaser” ger ofta problem möjlighet till explicit avallokering är farligt
15
2002-11-05F. Drewes, Inst. f. datavetenskap15 Enkla svar fattas!!! Exempel enkelhet mot uttryckskraft tillförlitlighet mot effektivitet tillförlitlighet mot skrivbarhet Kriterierna strider mot varandra på många sätt. Att hitta den bästa kompromissen är ofta en avvägningsfråga.
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.