|
Helsingin yliopisto, Helsinki 2006 Oliokielten välikielten optimointiPietu PohjalainenPro gradu, syyskuu 2006. Javan myötä ohjelmointikielten kääntämisprosessiin on uudelleen esitelty erityisen käsittelyn kohteeksi kelpaava välikieli, tavukoodi. Tavallisesti Java-ohjelmaa suoritettaessa erityinen virtuaalikone lataa tavukoodimuotoisen ohjelman esityksen, jota suoritetaan joko tulkkaamalla tai suoritusaikaisesti suoritusalustan ymmärtämälle kielelle kääntäen. Tässä tutkielmassa tutkitaan välikielen tasolla tapahtuvia optimointimahdollisuuksia. Oliokielten dynaamisen luonteen vuoksi puhtaasti staattinen optimointi on vaikeaa ja siksi usein hedelmätöntä. Tutkielman yhteydessä kuitenkin tunnistettiin mobiiliohjelmointiin soveltuva suljetun maailman oletus, jonka puitteissa tavukoodin tasolla voidaan ohjelmaa parannella turvallisesti. Esimerkkinä tutkielmassa toteutetaan ylimääräisiä rajapintaluokkia poistava optimointi. Koska optimointialgoritmit ovat usein monimutkaisia ja vaikeaselkoisia, tutkitaan työssä myös mahdollisuuksia niiden yksinkertaisempaan esittämiseen. Alunperin Javalla toteutetun luokkahierarkiaa uudelleenjärjestelevän algoritmin esiehtojen tarkastus onnistutaan kuvaamaan ensimmäisen kertaluokan logiikan kaavalla, jolloin esiehtojen tarkastus onnistuu tutkielman puitteissa toteutetulla logiikkakoneella. Logiikkakoneelle kuvataan logiikkakaavojen propositiot Javalla, mutta propositioiden yhdistely tapahtuu ja-konnektiiveja käyttävällä logiikkakielellä. Suorituskyvyltään logiikkakone on joissain tapauksissa Java-toteutusta nopeampi. Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty. © Helsingin yliopisto 2006 Viimeksi päivitetty 11.10.2006 |