- formaalit kielet ja kääntäjän arkkitehtuuri
|
|
- selittää kääntäjän merkitys osana ohjelmointiympäristöjä
- selittää formaalien kielten ominaisuudet
|
- selittää kääntäjän yleisrakenne, eri osat ja kunkin osan toiminta
- selittää formaalien kielioppien käyttö kääntäjien toteutuksessa
|
- käyttää formaaleja kielioppeja ja kääntäjätyökaluja osana sovellusten kehittämistä
|
|
- 582206 Laskennan mallit
- ohjelmointitaito
|
- selittää selaajan asema kääntäjän arkkitehtuurissa
|
- toteuttaa selaaja-algoritmi annetun ohjelmointikielen tekstialkioille
- lukea ja laatia säännöllisiä lausekkeita
- selittää automaattien käyttö selaajageneraattoreissa
- käyttää selaajageneraattoria
- liittää selaaja osaksi kääntäjää
|
- laatia oma selaajageneraattori
|
|
- 582206 Laskennan mallit
- ohjelmointitaito
|
- selittää jäsentäjän asema kääntäjän arkkitehtuurissa
|
- selittää osittava ja kokoava jäsennys
- määritellä LL(1)-kielioppi
- selittää ja laatia rekursiivinen jäsentäjä
- muuntaa annettu ohjelmointikielen kielioppi jäsennykseen sopivaksi
- käyttää jäsentäjägeneraattoreita
- toteuttaa kääntäjään toipuminen jäsennyksen havaitsemista virheistä
- liittää jäsentäjä osaksi kääntäjää
|
- laatia oma jäsentäjägeneraattori
|
|
|
- selittää semanttisen analysoijan asema kääntäjän arkkitehtuurissa
|
- selittää tärkeimmät ohjelmointikielen semantiikan (käytännön) määrittelytavat
- laatia attribuuttikielioppi annetulle yksinkertaiselle kielelle
- kuvata sanallisesti ja algoritmisesti annetun ohjelmointikielen semanttiset tarkistukset
- liittää semanttinen analysoija osaksi kääntäjää
|
- luoda semanttinen määrittely ei-triviaalille olemassa olevalle käytännön kielelle
|
|
|
- selittää koodin generoinnin asema kääntäjän arkkitehtuurissa
|
- selittää välikoodin tarve ja käyttö kääntäjän takaosassa
- selittää eri välikoodien rakenne, eroavaisuudet ja käyttötapoja
|
- toteuttaa koodin optimointia osana kääntäjää
|