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

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 e-tentillä 2 opintopisteen arvoisena. 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. The teacher is fluent in English and thus able to answer any questions you may have. You may 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. See also the submission instructions for a project.

Since the lectures will be in Finnish, we recommend that you read one of the following works to familiarize with the theory required.

  • 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–8.
  • Dick Grune, Kees van Reeuwijk, Henri E. Bal, Ceriel J.H. Jacobs, and Koen Langendoen: Modern Compiler Design. 2nd edition. New York, NY: Springer, 2012. doi:10.1007/978-1-4614-4699-6. Chapters 1–7, 9.1, and 11.

The exam will be done as an e-exam. See the general e-exam guide. You can enroll in the English-language exam using this link. The exam may be done by pencil and paper at a general exam if there is good reason; contact Antti-Juhani Kaijanaho to make the arrangements.

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