Kääntäjän jäsennysmenetelmien vertailu
Tamminen, Kalle (2018)
Tamminen, Kalle
2018
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
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ä
2018-06-06
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201805241800
https://urn.fi/URN:NBN:fi:tty-201805241800
Tiivistelmä
Ohjelmointikielen kääntäjän tehtävä on kääntää jollakin ohjelmointikielellä kirjoitettu ohjelma lähdekoodista konekieliseksi. Ohjelmointikielet sopivat käytettävyydeltään ihmisten kirjoitettavaksi, mutta niitä ei voi sellaisenaan suorittaa laitteistolla. Tämän vuoksi vaaditaan kääntäjä, joka suorittaa koodille käännöksen.
Työssä tutkittavat jäsennysmenetelmät suorittavat syntaksianalyysin, joka on yksi käännösprosessin vaiheista. Syntaksianalyysin tehtävä on analysoida koodista sen rakenne, ja esittää se sopivassa muodossa kääntäjän seuraavalle vaiheelle. Tyypillisesti tämä muoto on puurakenne. Vertailtavat jäsennysmenetelmät, eli top–down- ja bottom–up-jäsennys suorittavat puurakenteen muodostamisen päinvastaisissa järjestyksissä, eli ylhäältä alas tai alhaalta ylös. Lähdekoodin rakenteen tulkitsemisen apuna käytetään niin sanottuja kontekstittomia kielioppeja, joiden käyttö eroaa vertailtavien menetelmien välillä.
Työn tavoitteena oli selvittää minkälaisiin sovelluskohteisiin top–down- ja bottom–up- jäsennysmenetelmät sopivat parhaiten. Tätä pyrittiin arvioimaan vertailemalla menetelmien ominaisuuksia. Vertailun tuloksena todettiin, että top–down-jäsennys voi sopia paremmin pienemmille projekteille sen yksinkertaisemman toteutuksen vuoksi, mutta monimutkaisemmille ohjelmointikielille sen asettamat rajoitteet saattavat olla esteenä. Tämän vuoksi laajemman ohjelmointikielen kääntäjää toteutettaessa bottom–up-jäsennys saattaa olla sopivampi, vaikka se voikin olla toteutukseltaan monimutkaisempi.
Työssä tutkittavat jäsennysmenetelmät suorittavat syntaksianalyysin, joka on yksi käännösprosessin vaiheista. Syntaksianalyysin tehtävä on analysoida koodista sen rakenne, ja esittää se sopivassa muodossa kääntäjän seuraavalle vaiheelle. Tyypillisesti tämä muoto on puurakenne. Vertailtavat jäsennysmenetelmät, eli top–down- ja bottom–up-jäsennys suorittavat puurakenteen muodostamisen päinvastaisissa järjestyksissä, eli ylhäältä alas tai alhaalta ylös. Lähdekoodin rakenteen tulkitsemisen apuna käytetään niin sanottuja kontekstittomia kielioppeja, joiden käyttö eroaa vertailtavien menetelmien välillä.
Työn tavoitteena oli selvittää minkälaisiin sovelluskohteisiin top–down- ja bottom–up- jäsennysmenetelmät sopivat parhaiten. Tätä pyrittiin arvioimaan vertailemalla menetelmien ominaisuuksia. Vertailun tuloksena todettiin, että top–down-jäsennys voi sopia paremmin pienemmille projekteille sen yksinkertaisemman toteutuksen vuoksi, mutta monimutkaisemmille ohjelmointikielille sen asettamat rajoitteet saattavat olla esteenä. Tämän vuoksi laajemman ohjelmointikielen kääntäjää toteutettaessa bottom–up-jäsennys saattaa olla sopivampi, vaikka se voikin olla toteutukseltaan monimutkaisempi.
Kokoelmat
- Kandidaatintutkielmat [8344]