Luennot

Luennot seuraavat pääosin kurssikirjaa.

Jokaisesta luennosta ilmoitamme noin viikkoa ennen, mihin osaan kurssikirjaa se liittyy. Opiskelijan tehtävänä on tutustua kyseiseen kurssikirjan osaan ennen luentoa. Lukutehtävistä kertyy pisteitä, joilla voi ansaita arvosanaan korotuksen seuraavasti:

  • Sinulle lasketaan luentokohtainen oikeiden vastausten prosenttiosuus (100 % = kaikki oikein).
  • Jos et vastaa luennon lukutehtävän kysymyksiin ajoissa, prosenttiosuus on tuolta luennolta 0 %.
  • Jos kaikkien luentojen prosenttiosuuksien keskiarvo on vähintään 70 %, olet ansainnut yhden arvosanapykälän arvoisen arvosanakorotuksen.

Luennot tallennetaan tilatallennuksella Moniviestimeen. Tallennuksen onnistumista ei voida taata.

Luento 15 (20.12.2018)

Viimeinen luento – käsitellään aliohjelmiin liittyviä kysymyksiä. Lue kurssikirjasta seuraavat osat ennen luentoa.

  • sivut 555–576 (luku 11.3 Routines and their activation)
  • sivut 625–626 (luku 12.1.7 Higher-order functions)
  • sivut 639–641 (luku 12.4.4 The translation of nested functions)
  • sivut 663–664 (luku 12.7.3 Tail calls)

Tee lukutehtävä ennen luentoa.

Luento 14 (18.12.2018)

Tarkastellaan tietorakenteita ja niiden esittämistä kääntäjässä. Lue kurssikirjasta seuraavat osat ennen luentoa.

  • Kappaleen 10.1 alku ja 10.1.1, Basic memory allocation
  • Kappaleen 10.2 alusta kappaleeseen 10.2.4 asti.
  • 11.2, Source language data representation and handling, kappaleen 11.2.7 loppuun asti

Tee lukutehtävä ennen luentoa.

Luento 13 (13.12.2018)

Viedään kääntäjän takapään perusasiat loppuun. Lue ennen luentoa seuraavat kurssikirjan osat:

  • sivut 341–353 (luvusta 7.5.2.2 Simple code generation for a register machine luvun 7.6.1.3 Evaluation of peephole optimization loppuun)
  • sivut 366–367 (luku 8.1.4 Alignment requirements and endianness)
  • sivut 397–402 (luku 9.1.2.2 From dependency graph to code)
  • sivut 427–432 (luku 9.1.5 Register allocation by graph coloring)

Tee luentotehtävä ennen luentoa.

Luento 12 (11.12.2018)

Tarkastellaan kohdekoodin generointia. Luennolla käsitellään osin jo aiemmin kurssikirjasta luettuja asioita. Tutustu ennen luentoa seuraaviin materiaaleihin:

Tee lukutehtävä ennen luentoa.

Luento 11 (4.12.2018)

LLVM-luento pidetään aiemmasta ilmoituksesta poiketen tiistaina 4.12.

Tutustutaan LLVM:ään. LLVM on nykyisin käytännöllinen valinta kääntäjän takapääksi. Sen käyttö pienentää merkittävästi kääntäjäprojektiin kuluvaa aikaa ja antaa mm. monia optimointeja ilmaiseksi.

Lue seuraavat asiat ennen luentoa:

# Lecs_topic_10

Luento 10 (29.11.2018)

Jatketaan edellisten luentojen asialla, ei lukutehtävää.

Luento 9 (27.11.2018)

Jatketaan välikieliin liittyvällä tematiikalla. Kirjassa tarvittavat käsitteet ja ideat on koodingenerointiteemaan sisälle sotkettuna. Lue seuraavat osat kurssikirjasta ennen luentoa:

  • sivut 313–320 (luku 7 Code Generation alaluvun 7.2.1 The Structure of Code Generation loppuun asti)
  • sivut 576–587 (luku 11.4 Code generation for control flow statements)
  • sivut 783–784 (Liite A)

Tee lukutehtävä ennen luentoa.

Luento 8 (22.11.2018)

Käsittelemme välikieliin liittyviä peruskäsitteitä. Nämä käsitteet on kurssikirjassa ripoteltu kummallisesti pitkin kirjaa. Lue seuraavat osat kurssikirjasta ennen luentoa:

  • sivut 262–267 (5.1 "Threading the AST")
  • sivut 335–340 (7.5.2 luvun 7.5.2.1 "Simple code generation for a stack machine" loppuun)
  • sivut 386–396 (9.1 luvun 9.1.2.1 "From AST to dependency graph" loppuun, ohita kuitenkin "Common subexpression elimination")

Tee lukutehtävä ennen luentoa.

Luento 7 (20.11.2018)

Aiheena WebAssembly. Luento ei käsittele kirjan sisältöjä. Lue seuraavat verkkodokumentit ennen luentoa:

Tee lukutehtävä ennen luentoa.

Luento 6 (15.11.2018)

Kirjan luvun 6 Interpretation alkuosa alaluvun 6.2 Recursive interpreters loppun asti sekä luvun 11 Imperative and Object-Oriented Programs alaluku 11.1 Context Handling (siis sivut 299–305 ja 511–532). Tee lukutehtävä ennen luentoa.

Luento 5 (13.11.2018)

Kirjan luvun 3 Tokens to Syntax Trees – Syntax Analysis loppuosa (aliluvusta 3.5 alkaen, siis sivut 156–206). Tee lukutehtävä ennen luentoa.

Luento 4 (8.10.2018)

Aiheena ANTLR. Luento ei käsittele kirjan sisältöjä. Lue Gabriele Tomassettin ANTLR-tutoriaali ennen luentoa. Tee lukutehtävä ennen luentoa.

Luento 3 (6.11.2018)

Kirjan luvun 3 Tokens to Syntax Trees – Syntax Analysis alkuosa (aliluvun 3.4 loppuun asti, siis sivut 115–156); tämäkin on osin kurssin TIEA241 kertausta. Tee lukutehtävä ennen luentoa.

Luento 2 (1.11.2018)

Kirjan luku 2 Program Text to Tokens — Lexical Analysis (sivuutetaan alaluvut 2.6 ja 2.7). Osittain tämä on kertausta kurssilta TIEA241 Automaatit ja Kieliopit. Tee lukutehtävä ennen luentoa.

Luento 1 (30.10.2018)

Kirjan luku 1 Introduction (sivuutetaan alaluvut 1.8 ja 1.9). Tee lukutehtävä ennen luentoa.

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.