Kääntäjän toiminta : Lähdekoodin muuntaminen konekielelle
Knaapi, Tuomas (2021)
Knaapi, Tuomas
2021
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-04-16
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202104163063
https://urn.fi/URN:NBN:fi:tuni-202104163063
Tiivistelmä
Kääntäjä on ohjelma, joka mahdollistaa korkean tason ohjelmointikielien käytön. Korkean tason ohjelmointikielet ovat niin abstrakteja, että ne sopivat vain ihmisten käytettäväksi, eikä niillä toteutettua ohjelmaa voida suoraan ajaa tietokoneella. Tästä syystä tarvitaan kääntäjä, joka rakentaa käännetyn version ohjelmakoodista. Käännettävää koodia kutsutaan lähdekoodiksi, kun taas käännettyä koodia kohdekoodiksi.
Tässä tutkielmassa tarkastellaan, miten ohjelmointikielten kääntäjä toimii. Työssä tutkitaan käännösprosessin vaiheita, joihin kuuluvat analyysivaihe ja synteesivaihe. Analyysivaiheen päätehtävänä on tuottaa väliesitys lähdekoodista, joka välitetään synteesivaiheelle. Analyysivaihe jakautuu neljään pienempään osaan, joilla kaikilla on oma tehtävänsä välikoodin tuottamisessa. Osien nimet ovat leksikaalinen analyysi, syntaksianalyysi, semanttinen analyysi ja välikoodin generointi. Leksikaalinen analyysi tuottaa lähdekoodin sanoista tunnisteita, jotka välitetään syntaksianalyysille. Syntaksianalyysi muodostaa sanojen tunnisteista tietorakenteen nimeltä jäsennyspuu. Seuraavaksi sementtinen analyysi tarkastaa syntaksipuista, että jokaisella operaattorilla on vastaavat operandit. Analyysivaiheen viimeisenä osuutena on luoda välikoodi, jonka muodostaa välikoodin generointi.
Synteesivaiheen tehtävänä on luoda lopullinen kohdekoodi. Myös synteesivaihe jakautuu pienempiin osiin analyysivaiheen tapaisesti. Nämä osat ovat välikoodin optimointi, sekä kohdekoodin generointi ja optimointi. Kohdekoodin generointi luo analyysivaiheelta saadusta välikoodista lopullisen kohdekoodin. Tästä kohdekoodista saadaan tehokkaampi synteesivaiheeseen kuuluvilla optimoinneilla.
Työn tavoitteena oli tutkia aiheeseen liittyvää kirjallisuutta ja muita tieteellisiä tekstejä apuna käyttäen, kuinka ohjelmointikielen kääntäjä toimii. Tarkoituksena on luoda yleiskatsaus kääntäjän toiminnasta ja siihen kuuluvista vaiheista.
Tässä tutkielmassa tarkastellaan, miten ohjelmointikielten kääntäjä toimii. Työssä tutkitaan käännösprosessin vaiheita, joihin kuuluvat analyysivaihe ja synteesivaihe. Analyysivaiheen päätehtävänä on tuottaa väliesitys lähdekoodista, joka välitetään synteesivaiheelle. Analyysivaihe jakautuu neljään pienempään osaan, joilla kaikilla on oma tehtävänsä välikoodin tuottamisessa. Osien nimet ovat leksikaalinen analyysi, syntaksianalyysi, semanttinen analyysi ja välikoodin generointi. Leksikaalinen analyysi tuottaa lähdekoodin sanoista tunnisteita, jotka välitetään syntaksianalyysille. Syntaksianalyysi muodostaa sanojen tunnisteista tietorakenteen nimeltä jäsennyspuu. Seuraavaksi sementtinen analyysi tarkastaa syntaksipuista, että jokaisella operaattorilla on vastaavat operandit. Analyysivaiheen viimeisenä osuutena on luoda välikoodi, jonka muodostaa välikoodin generointi.
Synteesivaiheen tehtävänä on luoda lopullinen kohdekoodi. Myös synteesivaihe jakautuu pienempiin osiin analyysivaiheen tapaisesti. Nämä osat ovat välikoodin optimointi, sekä kohdekoodin generointi ja optimointi. Kohdekoodin generointi luo analyysivaiheelta saadusta välikoodista lopullisen kohdekoodin. Tästä kohdekoodista saadaan tehokkaampi synteesivaiheeseen kuuluvilla optimoinneilla.
Työn tavoitteena oli tutkia aiheeseen liittyvää kirjallisuutta ja muita tieteellisiä tekstejä apuna käyttäen, kuinka ohjelmointikielen kääntäjä toimii. Tarkoituksena on luoda yleiskatsaus kääntäjän toiminnasta ja siihen kuuluvista vaiheista.
Kokoelmat
- Kandidaatintutkielmat [8453]