TIES448 Compiler Technology (2–8 cr)
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
Description of prerequisites
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
Appel: Modern compiler implementation in Java (2nd edition).
Grune, van Reeuwijk, Bal, Jacobs, Langendoen: Modern Compiler Design (2nd edition)