TIES448 Kääntäjätekniikka (2–8 op)

Opinnon taso:
Syventävät opinnot
Arviointiasteikko:
0-5
Suorituskieli:
suomi
Vastuuorganisaatio:
Informaatioteknologian tiedekunta
Opetussuunnitelmakaudet:
2017-2018, 2018-2019, 2019-2020

Kuvaus

Sisältö

Tietokonekielten ohjelmallinen analyysi ja synteesi. Syntaksiorientoitunut tietokonekielen käsittely. Tietokoneohjelmien staattisen analyysin perusteet. Välikielet ja abstraktit tai virtuaaliset koneet. Rekisterikonekoodin generointi.

Suoritustavat

E-tentti (2 op) tai harjoitustyö (3–8 op). Joillakin kurssi-instansseilla voi olla lisäksi erillisiä oppimistehtäviä, jotka vaikuttavat arvosanaan tai opintopistelaajuuteen.

Arviointiperusteet

Tentti (2 op) arvioidaan sen mukaan, kuinka opiskelija osoittaa luennolla tai muulla erikseen sovitulla tavalla hankitun asiatiedon hallintaa. Harjoitustyön arvosana-arvioinnissa huomioidaan valmiusaste, omintakeisuus, käytettyjen algoritmien vaativuus ja soveltuvuus, aikataulussa pysyminen, rajapintojen dokumentointiaste ja koodin selkeys tässä prioriteettijärjestyksessä; harjoitustyön arvioinnissa otetaan huomioon myös työryhmän koko ja työn yleisilme. Harjoitustyön opintopistelaajuus (3-8 op) määräytyy opettajan tekemän vaativuusarvion mukaisesti.

Osaamistavoitteet

Kurssin 2 op:lla suorittanut tuntee kääntäjätekniikan perusteet lukuunottamatta varsinaisen optimoinnin tekniikoita. Kurssin vähintään 3 op:lla suorittanut osaa lisäksi laatia tietokoneohjelman, joka kääntää ohjelmointikieltä toiselle ohjelmointikielelle tai suorittaa ohjelmointikielellä laadittuja ohjelmia tulkkaamalla, ja on saanut kokemusta vaativan ohjelmointitehtävän täyttämisestä.

Esitietojen kuvaus

Hyvä ohjelmointitaito (vähintään kurssien Ohjelmointi 1, Ohjelmointi 2, Algoritmit 1, Algoritmit 2 osaamistavoitteiden hyvä hallinta; suositellaan lisäksi kurssien Funktio-ohjelmointi 1 ja 2 sekä Oliosuuntautunut suunnittelu ja ohjelmointi osaamistavoitteiden hallintaa).
Konekielen perusteiden tuntemus (vähintään siinä määrin kuin kurssin Käyttöjärjestelmät, 5 op, osaamistavoitteisiin sisältyy).
Jäsennysteorian perusteiden tuntemus (Automaatit ja kieliopit -kurssin osaamistavoitteiden hallinta).
Suositellaan lisäksi kokemusta projektimuotoisesta ohjelmistokehityksestä (esimerkiksi Aineopintojen projektityö).

Oppimateriaalit

Aho, Lam, Sethi, Ullman: Compilers – Principles, Techniques, Tools (2nd edition).
Appel: Modern compiler implementation in Java (2nd edition).
Grune, van Reeuwijk, Bal, Jacobs, Langendoen: Modern Compiler Design (2nd edition)

Suoritustavat

Tapa 1

Valitaan kaikki merkityt osat
Suoritustapojen osat
x
Julkaisematon arviointikohde