TIES448 Kääntäjätekniikka, kevät 2016

Suomeksi

Ohjelmointikielen kääntäjän laatiminen on vaativa ohjelmointitehtävä, jossa onnistuminen jo sinänsä kertoo ohjelmoijan osaamisesta paljon. Siinä vaaditaan teorian ja käytännön onnistunutta sulauttamista yhdeksi toimivaksi kokonaisuudeksi. Kääntäjän tekemisessä hankittu osaaminen on hyödyksi myös monessa muussa vaativassa ohjelmointitehtävässä. Kurssilla tämä osaaminen hankitaan ohjatusti, mutta se vaatii silti huomattavasti työtä ja sisua.

Kurssi jakaantuu kahteen osaan: 4. periodissa pidetään luentosarja kääntäjätekniikan teoriasta, jonka päätteeksi kurssin voi suorittaa halutessaan tentillä 2 opintopisteen arvoisena (ilmoittaudu e-tenttiin tästä). Luentosarjan aikana ja sen jälkeen opiskelijat ohjelmoivat 1–3 hengen ryhmissä harjoitustyönä toimivan kääntäjän yksinkertaiselle ohjelmointikielelle; harjoitustyöllä kurssista voi saada 3–6 opintopisteen arvoisen suorituksen (tällöin tenttiä ei tehdä). Harjoitustyön tekemistä suositellaan kaikille kurssin opiskelijoille, sillä vain itse tekeminen opettaa kääntäjätekniikan kunnolla.

In English

The language of instruction in this course will be Finnish. Both teachers are fluent in English and thus able to answer any questions you may have. The teachers are best contacted by email at ties448_2016_opet@korppi.jyu.fi . You may also find the Slack instance of use.

You may complete this course by taking an exam, which is worth 2 credits, or by completing a project, which is worth 3–6 credits. There is no point in doing both; a project will override an exam.

Since the lectures will be in Finnish, we recommend that you read one of the following works to familiarize with the theory required. If you take an exam, please let us know in advance, which book you have read.

  • Andrew W. Appel: Modern Compiler Implementation in Java. 2nd ed. Cambridge University Press, 2002. Chapters 1–16.
  • Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman: Compilers: Principles, Techniques, & Tools. 2nd ed. Pearson Addison-Wesley, 2007. Chapters 1–2, 3.1, 3.3–3.5, 4.1–4.5, 4.8–4.9, 5–8 (except 5.5)

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