Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "Kursmaterial" mellan 2016-09-26 16:57 av Dilian Gurov och 2016-09-26 17:20 av Dilian Gurov.

Visa < föregående | nästa > ändring.

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.


* 30 AugustiIntro (Per Austrin)Slides
* 31 AugustiFunktionell Programmering 1 (Marcus Dicander) Komma igång med Haskell: Funktioner, rekursion, listor, oändliga listor och listomfattningar (list comprehensions). Slides och kod.
* 1 SeptemberFunktionell Programmering 2 (Marcus Dicander) Typer och typklasser. Slides.
* 5 SeptemberFunktionell programmering 3 (Marcus Dicander) Högre ordningens funktioner.Slides.
* 8 SeptemberFunktionell programmering 4 (Marcus Dicander) Monader.Monads are not...Bra grund att stå på.Slides
* 14 SeptemberFunktionell programmering 5 (Marcus Dicander) Sammanfattning och fördjupning, tentor och kontrollskrivningar.
* 22 SeptemberLogikprogrammering 1 (Dilian Gurov)Slides, Lådmodellen, Prolog
* 28 SeptemberLogikprogrammering 2 (Dilian Gurov)Slides, Strukturell induktion, Prolog
* 28 SeptemberLogikprogrammering 3 (Dilian Gurov)
* 5 OktoberLogikprogrammering 4 (Dilian Gurov)
* 11 OktoberLogikprogrammering 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
* Learn You A Haskell, en bra introduktion!
* User's guide för GHC.
* Hoogle, mycket bra sökverktyg för att leta efter funktioner i Haskells standardbibliotek
* 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
* Manual för SWI-Prolog:
* 7.2.3 (versionen som körs på Kattis och CSCs Ubuntu-datorer)
* 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.:
* Formal language
* Regular Expression.
* Deterministic Finite Automaton.
* Context-free Grammar.
* Ambiguous grammar
* Pushdown automaton
* Recursive descent parser
* Lexical analysis

* 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
* Ta en titt på referensbladet för Emacs-kommandon.