2016. január 2., szombat

Programozót kódjáról

Annak ellenére, hogy szinte mindenki, aki rendszeresen dolgozott csapatban valamilyen szoftverprojekten, tudja, hogy minden programozónak van egy sajátos stílusa. Azt azonban kevesen tudják, hogy ezek a stílusjegyek jóval egyedibb mintát alkotnak, mint azt gondolnánk. Legalábbis amerikai kutatók erre az álláspontra jutottak a 2015. évben, akik szerint a programok az ujjlenyomathoz hasonlóan alkalmasak lehetnek a készítők azonosítására, akkor is, ha a csak a forráskód áll rendelkezésre.

A Marylandi Egyetem munkatársai előálltak egy olyan, gépi tanulási és nyelvelemzési algoritmusokat használó programmal, ami képes a forráskódok sajátosságainak kiszűrésére. A módszerük annyira hatékony, hogy a Google Code Jam programozási versenyének kódjai közül 95%-os pontossággal volt képes az egyes programok szerzőit megállapítani. Viszonyításképpen az ujjlenyomatokkal 97%-os pontosság érhető el a gyakorlatban.

Továbbfejlesztve a módszert, az újabb kutatási eredményük szerint nem szükséges a forráskód, mivel akár a lefordított kód is elegendő lehet a fejlesztő azonosítására. Ennek teszteléséhez a GitHubon elérhető programokat és a készítőkről megadott információkat használták fel a tanításhoz. A létrejött neurális háló kis számú fejlesztő esetén eléggé pontos: 96%-os, azonban a fejlesztők számát több százra növelve már csak az esetek felében adott helyes választ.

Az eljárásnak lehet létjogosultsága a gyakorlatban is: kézenfekvő megoldás lehet a rosszindulatú kódok létrehozóinak azonosítására, valamint segítséget nyújthat szerzői jogi viták esetén a valódi alkotó megállapítása.

2 megjegyzés:

  1. Azért a lefordított kódnál nem baj, ha ki van kapcsolva az optimalizálás. :D;)

    VálaszTörlés
  2. Nem hátrány, viszont azzal szépen rá lehetne tanulni az egyes fordítókra :)

    VálaszTörlés