Autogenerating Language Bindings for a Codebase
Rekunen, Roope (2024)
Rekunen, Roope
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202405059210
https://urn.fi/URN:NBN:fi:amk-202405059210
Tiivistelmä
Ohjelmointirajapinnan eli API:n käyttö yleensä rajoittuu siihen ohjelmointikieleen, millä rajapinta on alun perin kirjoitettu. Käytön muilla ohjelmointikielillä voi sallia tekemällä halutulla kielellä rajapinnan, joka muistuttaa käytettävää APIa. Tätä kutsutaan myös kielisidokseksi. Vaikka kielisidoksia pystyy kirjoittamaan käsin, se lisää työmäärää, sillä jokainen päivitys alkuperäiseen APIin pitää tehdä myös kielisidoksiin.
Yrityksellä, jolle projekti tehtiin, oli ongelma, jossa heidän tuotteensa käsintehdyt kielisidokset eivät aina pysyneet ajan tasalla. Ongelman ratkaisemista varten aloitettiin projekti, jossa kehitettiin työkalu. joka tuottaa yrityksen tuotteelle kielisidoksia. Projektin tarkoitus oli varmistaa, että kun tuotteen APIin tehdään muutoksia, muutokset siirtyvät kielisidoksiin automaattisesti.
Yritykselle tehdyn työkalun lisäksi uuden avoimen lähdekoodin projektin nimeltä Autoglue kehitys aloitettiin. Autoglue on ohjelmointikirjasto, jonka tarkoituksena on antaa kehittäjille rajapinta, jota voi käyttää oman kielisidoksia tuottavan työkalun kehittämiseen. Sen sijaan että Autoglue toimisi kuin monet muut projektit, jotka tuottavat kielisidoksia yhdestä kielestä monelle kielelle, tämän työn esittelemiä käsitteitä hyödynnetään abstraktioihin, joita voidaan käyttää kielisidosten tuottamisseen mistä tahansa kielestä mille tahansa kielelle.
Tämän työn tarkoitus on tutkia kielisidoksia, niiden sisäistä toimintaa ja miten niitä pystyy generoimaan automaattisesti. Käsitteet käydään läpi mahdollisimman yleisellä tasolla, mutta niiden seasta löytyy tarkempia esimerkkejä, jotka antavat käsityksen oikeasta toteutuksesta.
Yrityksellä, jolle projekti tehtiin, oli ongelma, jossa heidän tuotteensa käsintehdyt kielisidokset eivät aina pysyneet ajan tasalla. Ongelman ratkaisemista varten aloitettiin projekti, jossa kehitettiin työkalu. joka tuottaa yrityksen tuotteelle kielisidoksia. Projektin tarkoitus oli varmistaa, että kun tuotteen APIin tehdään muutoksia, muutokset siirtyvät kielisidoksiin automaattisesti.
Yritykselle tehdyn työkalun lisäksi uuden avoimen lähdekoodin projektin nimeltä Autoglue kehitys aloitettiin. Autoglue on ohjelmointikirjasto, jonka tarkoituksena on antaa kehittäjille rajapinta, jota voi käyttää oman kielisidoksia tuottavan työkalun kehittämiseen. Sen sijaan että Autoglue toimisi kuin monet muut projektit, jotka tuottavat kielisidoksia yhdestä kielestä monelle kielelle, tämän työn esittelemiä käsitteitä hyödynnetään abstraktioihin, joita voidaan käyttää kielisidosten tuottamisseen mistä tahansa kielestä mille tahansa kielelle.
Tämän työn tarkoitus on tutkia kielisidoksia, niiden sisäistä toimintaa ja miten niitä pystyy generoimaan automaattisesti. Käsitteet käydään läpi mahdollisimman yleisellä tasolla, mutta niiden seasta löytyy tarkempia esimerkkejä, jotka antavat käsityksen oikeasta toteutuksesta.