TIES542 Ohjelmointikielten periaatteet (5 op)
Avainteksti
Kuvaus
Tällä kurssilla käydään läpi ohjelmointikielten teorian ja toteutuksen yleisimmät käsitteet ja menetelmät, joihin lukeutuvat ainakin operaatiosemantiikka: ison askeleen (luonnollinen) ja pienen askeleen (rakenteellinen) semantiikka; tyyppijärjestelmät: tyypitys, tyypinpäättely ja tyyppintarkistus; yksinkertainen imperatiivinen ohjelmointikieli: syntaksi, laskenta ja ominaisuudet; imperatiivisten ohjelmien analysoiminen: pysähtyminen, yksiselitteisyys, ohjelmien yhtäläisyys, esiehdot, jälkiehdot ja silmukkainvariantit; yksinkertaisesti tyypitetty lambdalaskenta: syntaksi, sieventäminen, ominaisuudet ja laajennukset; sekä funktionaalisten ohjelmien analysoiminen: sieventämisen yhtenevyys ja eteneminen, tyypityksen säilyminen ja järkevyys.
Osaamistavoitteet
Tällä kurssilla tutustumme ohjelmointikielten teoriaan ja pohdimme hyvän ohjelmointikielen olemusta. Tämän kurssin tavoite on tarjota teille kosketus ohjelmointikielten tutkimuksen keskeisimpiin menetelmiin ja muodostaa teille riittävät pohjatiedot siihen, että voitte myöhemmin tutustua ohjelmointikielten tutkimuskirjallisuuteen ilman kyyneliä. Toisaalta tämä kurssi tarjoaa teille myös erinomaisen tekosyyn uudenlaisten työkalujen ja työtapojen kokeilemiseen.
Lisätietoja
Itsenäinen suoritustapa (suoritetaan itsenäisesti tekemällä opettajan kanssa sovitut tehtävät).
Esitietojen kuvaus
Tällä kurssilla ei ole ehdottomia kurssimuotoisia esitietovaatimuksia. Osallistujilta kuitenkin edellytetään vahvaa imperatiivisen ja funktionaalisen ohjelmoinnin osaamista, kääntäjätekniikan perusteiden tuntemusta, huomattavaa matemaattista kypsyyttä sekä tervettä asennetta työntekoon. Matemaattinen kypsyys ei ainoastaan tee kurssista mahdollista suorittaa, vaan auttaa sen lisäksi luomaan yhteyksiä sellaisiin asioihin, joita käsitellään syvällisemmin muilla kursseilla.
Suositeltuja esi-/taustietoja: Ohjelmointi-kurssit, algoritmit, logiikka (MATA-), funktio-ohjelmointi.