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.

Slides:



Advertisements
Liknande presentationer
F. Drewes, Inst. f. datavetenskap1 Föreläsning 13: Resolution •Resolution i satslogiken •Resolution i predikatlogiken.
Advertisements

Beskriver vad eleven ska försöka uppnå
TILLSAMMANS KAN VI GÖRA SKILLNAD VAR MED I EN ENTREPRENÖRIELL UTMANING.
Att svara på tentafrågan - Strategier Språkhandledningen på IT-fakulteten.
Att söka till högskolan
Liten introduktion till Wiki’n som KunskapsDatabas
”Språk, lärande och identitetsutveckling är nära förknippade
Datavetenskapens roll. Datavetenskap •Vad är datavetenskapens roll i kognitionsvetenskapen?
Mål och betygskriterier
Mjukvara och nätverk Vad är det?.
Att bygga en fungerande webbplats
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella.
Riktlinjer för presentationer
ERGONOMI Vad är det?.
Objektorientering.
Next previous Refactoring och lite mönster kodade i Java Innehåll Vad är refactoring? Ett större refactoringexempel Några mönster kodade i Java OOMPA 2000.
Dialogkort - arbetsmiljö och hälsa
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning.
Välkommna! till kursen HI1024 Programmering, grundkurs 8,0 hp
Polymorfism.
Att programmera i språket Java
Introduktion Logikprogrammering HT-02 Staffan Larsson.
Lund Studentlitteratur
Föreläsning 2 Datalogi för E1 2D1343
Ett arbetsområde om poesi
Prolog PROgramming LOGic (programmation en logique)
Java. Kortfattat om Java Syntaxen påminner i hög grad om C++ Stöd för objektorientering Kod kan köras i en virtuell maskin som finns tillgänglig för nästan.
Programmering B PHP Lektion 2
Att få rätt saker att hända
Förskolan Sandviks lärmiljöer utifrån läroplanen
”Hur gör vi varandra bättre” IFK TUMBA FOTBOLL Ledarutveckling
Om konsten att bedöma trovärdigheten hos det du ser, hör och läser
? Gymnasiearbetet Hur kan biblioteket hjälpa dig
Kunskapskrav och matriser
1 Programmeringsmetodik, 8p ML-delen Programmering Programmeringsmetodik Programspråk NR 1.
Ett naturvetenskapligt arbetssätt
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
Känna till och ha provat metoder och verktyg för processledning
F. Drewes, Inst. f. datavetenskap1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning Singel mot multipelt.
Logoped Lena Nilsson Logoped Elin Berglund
Läroplansträff fritidshem
Vad är bra och vad kan bli bättre? Utvärdering med Ekjur12 15/
URsmart Innehåll och tankar Attila Szabo Utbildningsförvaltningen Stockholms stad Digitala akademin 12 maj.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Presentation of I. Name: Disputerat nu vår Forskningsintresset är:
F. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 7: Uttryck och sidoeffekter Uttryck Sidoeffekter Överladdning Tilldelningar i uttryck.
1 Mångfald Hur leder man en arbetsgrupp som präglas av mångfald ?
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
Program. Symboliska samband Symboliska beteenden Matematisk kausalitet (orsak – verkan) 2x = y, y = x^2, y = kx + l.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 5: Syntaxanalys (parsning) Syntaxanalysens mål Tillvägagångssätt och komplexitet Syntaxanalys.
Föreläsning 14 Logik med tillämpningar Innehåll u Cuts och negation u Input/output u Extralogiska predikat u Interaktiva program, failure-drivna.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
Analysförmåga Jämföra: Likheter och skillnader, för- och nackdelar
Formella metoder i MDI Behovet Vad menas med formell? Verktyg Exempel Att läsa: Kapitel 14 i kursboken.
Föreläsning 1 Introduktion till kursen. Algoritmer
Föreläsningsanteckningar Kortfattat om programmeringsmetodik Ola Ågren Hur det går till att göra ett program.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 3: Abstrakta datatyper Algebror Abstrakta datatyper Inkapsling och informationsmaskering.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 16.
R EDOVISNINGS AFFISCH V ETENSKAPLIG POSTER. A FFISCHEN Affischen är en sammanfattning av en kurs eller projekt för att väcka intresse och ge en snabb.
Presentationens avskrift:

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

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

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

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

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

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

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

F. 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”)

F. 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?

F. 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)

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

F. 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)

F. 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!)

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

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