TIES448 Compiler Technology (2–8 cr)

Study level:
Advanced studies
Grading scale:
0-5
Language:
Finnish
Responsible organisation:
Faculty of Information Technology
Curriculum periods:
2017-2018, 2018-2019, 2019-2020

Description

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.

Learning outcomes

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ä.

Description of prerequisites

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ö).

Study materials

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)

Completion methods

Method 1

Select all marked parts
Parts of the completion methods
x
Unpublished assessment item