Regisztráció és bejelentkezés

Modulárisan kiterjeszthető fordítás automatizálás

A szoftverfejlesztési folyamatok során, kis- és nagy projektek esetén is előfordulhat olyan probléma, melyre a hatékony megoldást a fordítási lépéseken való módosítás vagy optimalizálás adhatja. Ilyen esetben olyan fordítói rendszerre van szüksége a fejlesztőnek, mely ezt könnyen konfigurálható módon teszi lehetővé, míg mellette ugyanazokat a szolgáltatásokat is nyújtja, amiket a jelenleg piacon fellelhető elterjedt fordítói eszközök is. A dolgozat egy erre a problémára nyújtott modulárisan kiterjeszthető fordító rendszer tervezését, felépítését és használatát mutatja be.

A dolgozatban bemutatott megoldásom fő tulajdonsága, hogy a fordítás során elvégzendő lépéseket, a jelenleg elterjedt függőség alapú leírásoktól eltérően, szekvenciálisan van mód megadni. Ez egyrészt a programozó számára könnyebb áttekinthetőséget biztosít, mivel minden folyamatnak meghatározott lefutási sorrendje van, másrészt különböző rendszerekkel ellentétben, nem határoz meg a fejlesztőnek egy kötelezően követendő projektstruktúrát.

A kiterjeszthetőség biztosításával lehetőség van a fejlesztő által létrehozott komplex lépések definiálására, mely során tetszőleges feladatok elvégezhetőek fordítási időben. A rendszer ehhez igazodva egy olyan lazán csatolt szerkezet alapján működik, melyben dinamikusan van lehetőség különböző modulok betöltésére. Ennek megoldására a környezet a Java nyelv és virtuális gép lehetőséget használja ki, mely kiválóan támogatja kódok futásidejű betöltését.

A fordítási lépések megadásához a rendszer egy különálló nyelvet definiál, melynek segítségével leírhatóak, és konfigurálhatóak az elvégzendő feladatok. A szkriptben létrehozott adatszerkezetek, és a példányosított feladatokat elvégző modulok bemenetei között a rendszer automatikus konverziót biztosít, mellyel egy gyengén tipizált környezetet ad.

A fejlesztők támogatásának érdekében a rendszer rendelkezik Eclipse integrált fejlesztői környezethez tartozó kiterjesztéssel, mely támogatja az általam kidolgozott szkript nyelv alapján történő fordítást. A fordítás után a kiterjesztés a rendelkezésre álló információk alapján úgy módosítja a lefordított projekt tulajdonságait, hogy a fejlesztőnek lehetősége legyen a beépített funkciók használatára (pl.: Content Assist).

Jelen TDK dolgozat összehasonlítja a fejlesztett rendszert a piacon lévő kész megoldásokkal, és taglalja a tervezés során felmerülő implementációs kérdéseket. Részletesen bemutatja a rendszer tervezését, felépítését, használatát, és ismerteti a moduláris kiterjeszthetőség módszereit.

szerző

  • Sipka Bence
    Mérnök informatikus szak, mesterképzés
    mesterképzés (MA/MSc)

konzulens

  • Dr. Ekler Péter
    Docens, Automatizálási és Alkalmazott Informatikai Tanszék

helyezés

Morgan Stanley II. helyezett