Till KTH:s startsida Till KTH:s startsida

Visa version

Version skapad av Per Austrin 2015-09-16 13:29

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. 31 Augusti
    Intro (Per Austrin)
    Slides
  2. 10 September
    Funktionell Programmering 1: Intro, funktioner, rekursion, typer (Carina Edlund)
    Slides
  3. 11 September
    Funktionell Programmering 2: Listor, tupler och listomfattning (Carina Edlund).
    Slides
  4. 15 September
    Funktionell programmering 3: Högre ordningens funktioner, anonyma funktioner och evaluering (Carina Edlund)
    Slides
  5. 16 September
    Funktionell programmering 4: Typer, klasser, algebraisk datatyp, polymorfi och överlagring (Marcus Dicander och gästföreläsare Johan Söderholm)
    Slides
  6. 21 September
    Funktionell programmering 5: I/O, monader (Marcus Dicander)
    Slides

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. 6.6.4 (versionen som körs på Kattis och CSCs Ubuntu-datorer)
    2. senaste (innehåller saker som inte finns i den version vi kör, men är en behändig html-version till skillnad från PDF-filen för version 6.6.4)

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