Till KTH:s startsida Till KTH:s startsida

Visa version

Version skapad av Dilian Gurov 2016-09-26 16:57

Visa < föregående | nästa >
Jämför < föregående | nästa >

Kursmaterial

Kurslitteratur

Se Före kursstart.

Föreläsningsanteckningar

Materialet från föreläsningarna kommer att läggas upp här. Föreläsningsanteckningar från tidigare år kan hittas på förra årets sida.

  1. 30 Augusti
    Intro (Per Austrin)
    Slides 

  2. 31 Augusti
    Funktionell Programmering 1 (Marcus Dicander) Komma igång med Haskell: Funktioner, rekursion, listor, oändliga listor och listomfattningar (list comprehensions).
    Slides och kod.
  3. 1 September
    Funktionell Programmering 2 (Marcus Dicander) Typer och typklasser.
    Slides.
  4. 5 September
    Funktionell programmering 3 (Marcus Dicander) Högre ordningens funktioner.
    Slides.
  5. 8 September
    Funktionell programmering 4 (Marcus Dicander) Monader.
    Monads are not...
    Bra grund att stå på.
    Slides
  6. 14 September
    Funktionell programmering 5 (Marcus Dicander) Sammanfattning och fördjupning, tentor och kontrollskrivningar.
  7. 22 September
    Logikprogrammering 1 (Dilian Gurov)
    Slides, Lådmodellen, Prolog
  8. 28 September
    Logikprogrammering 2 (Dilian Gurov)
    Slides, Strukturell induktion, Prolog
  9. 28 September
    Logikprogrammering 3 (Dilian Gurov)
  10. 5 Oktober
    Logikprogrammering 4 (Dilian Gurov)
  11. 11 Oktober
    Logikprogrammering 5: Villkorsprogrammering (gästföreläsning(??))

(Sidan kommer att fyllas på med föreläsningarna för period 2 senare.)

Länkar till mer information

Haskell

  1. Learn You A Haskell, en bra introduktion!
  2. User's guide för GHC.
  3. Hoogle, mycket bra sökverktyg för att leta efter funktioner i Haskells standardbibliotek
  4. Real World Haskell är en omfattande och intressant bok om Haskell av Sullivan, Stewart och Goerzen. Den finns både som pappersversion och i digital form!

Prolog

  1. Manual för SWI-Prolog:
    1. 7.2.3 (versionen som körs på Kattis och CSCs Ubuntu-datorer)
    2. senaste (lite nyare än den version vi kör, men skillnaderna borde i praktiken vara små och är i en behändig html-version till skillnad från PDF-filen för version 7.2.3)

Syntaxanalys

  • Det finns mycket online-material från andra kurser om formella språk och syntaxanalys att hitta på Internet. De flesta av dessa är dock hela kurser snarare än en liten del av en annan kurs, och därför betydligt mer omfattande. Här är några tips på föreläsningsvideor som man kan titta på.
    • Kursen Automata från Coursera med Professor Jeffrey Ullman. Föreläsningarna finns på YouTube.

      De tre första kursavsnitten matchar ganska bra mot syntaxdelen i progp. Mer specifikt, så är de föreläsningar som är mest relevanta för det som ingår i syntaxavsnittet i kursen följande:

      • 1-1-1 lite motivation om varför ämnet är intressant
      • 1-2-2 och 1-3-3 (ändliga automater)
      • 2-1-5 första tredjedelen (att reguljära uttryck och automater är ekvivalenta ingår i kursen, men inte detaljerna om hur man visar det)
      • 2-2-6 (vissa delar av föreläsningen talar om icke-deterministiska automater, NFA, vilket inte ingår i vår kurs)
      • 2-3-7 och 2-4-8 har vi diskuterat men är inte lika viktiga som de andra föreläsningarna
      • 7-1
      • 3-1-9 Kontextfria grammatiker
      • 3-2-10 Parseträd, tvetydighet

      Det viktigaste som inte täcks in av dessa föreläsningar är stackautomater (föreläsningen 3-4-12 pratar om dessa, men ur ett lite annat perspektiv, man kan kolla på denna men den kan nog lätt upplevas som lite för teknisk) och rekursiv medåkning.

    • Kursen Compilers från Coursera med Professor Alex Aiken.

      Delar som är mest relevanta för syntaxdelen i progp är:

      • 3-01, 3-02, 3-05, 4-01 om lexikal analys
      • 5-01 om parsning

      Denna kurs har även föreläsningar om formella språk (3-04), reguljära uttryck, ändliga automater (4-02, första halvan), och kontextfria grammatiker (5-02, 5-03, 5-04). Dessa föreläsningar är också relevanta och täcker ungefär samma stoff som föreläsningarna från Automata-kursen ovan – man kan utnyttja båda för att få lite olika perspektiv, eller helt enkelt den man tycker är bäst.

  • Wikipedia-sidorna om formella språk, automater, etc, är överlag bra, t.ex.:
  • ANTLR - ANother Tool for Language Recognition, en syntaxanalysatorgenerator med många målspråk.
  • BNFC, en syntaxanalysatorgenerator som utvecklas på Chalmers.
  • DCG, en Prolognotation för kontextfria grammatiker.

Emacs-tips