MLforSE

A projekt keretein belül 2018 óta kutatjuk a mesterséges intelligencia és a szoftvertechnológia közös részterületét. Célunk megtanítani a számítógépeket programkód megértésére, írására, és javítására. Főleg a mélytanulás eszközeit használjuk, azon belül is a nagy nyelvi modelleket és a rekurrens neurális hálókat. Jelenleg főleg a nagy nyelvi modellek kódértelmező képességének vizsgálatával, programtranszformációkkal, és kódvisszafejtéssel foglalkozunk.

Nagy nyelvi modellek kódértelmezése

A nagy nyelvi modellek használata a szoftverfejlesztés során már nem számít egyedi megoldásnak. Ugyanakkor az, hogy mennyire tudnak megfelelő minőségben hozzájárulni a szoftverfejlesztési feladatok, kódmegértés támogatásában, még nem világos. Kutatásunk során erre keresünk választ. 

Kódvisszafejtés

A kódvisszafejtés feladata visszanyerni a lefordított bináris fájlból a forráskódot. A mélytanulás előnye a hagyományos módszerekkel szemben, hogy idiomatikusabb kódot ad és kevésbé függ a fordítótól. Rendszerünk teljesen mélytanulás alapú: a literálok és konstansok meghatározása sem heurisztikákkal történik, szemben más mélytanuló rendszerekkel. Hosszú távú célunk, hogy a C nyelv összes nyelvi elemét támogassuk. 

Programtranszformációk

A mélytanulás arra is jól alkalmazható, hogy egy kevésbé idiomatikus, rosszul optimalizált, vagy éppen hibás kódot egy javított változatára transzformáljunk. Mi főleg Python programok idiomatizálásával és automatikus hibajavításával foglalkozunk.