Computer programmeert computer
op
Dit wordt mogelijk dankzij machinaal leren in combinatie met bestaande reusachtige openbare software-databanken. Daarin zijn al miljoenen programma’s opgeslagen, bestaande uit vele miljarden regels code. ‘Big Code’, zoals Vechev dat noemt.
Computers kunnen in die bestaande code patronen herkennen en leren welke patronen in welke context worden gebruikt. Op die manier leren ze de betekenis van die code en de regels die voor het gebruik ervan gelden. Dit is enigszins vergelijkbaar met de manier waarop vertaalprogramma’s als Google Translate woorden in hun context analyseren en daaruit betekenis en gebruiksregels proberen af te leiden.
Toekomstige hulpprogramma's voor programmeurs zullen mogelijkerwijs op dezelfde manier functioneren als de aanvullingsfuncties die ons helpen tekstberichtjes op de smartphone te schrijven. De programmeur schrijft bijvoorbeeld de eerste paar honderd regels code, en op basis daarvan stelt het hulpprogramma (de assistent) een mogelijk vervolg voor, dat de programmeur dan kan accepteren of verwerpen.
De kern van dergelijke assistenten wordt gevormd door waarschijnlijkheidsmodellen, opgebouwd op basis van een grote hoeveelheid bestaande programma’s en programmafragmenten. Deze modellen worden dan gebruikt om een voortzetting van het programma te suggereren. Vechev en zijn team hebben al dergelijke assistenten ontwikkeld, bijvoorbeeld de vrij beschikbare online-programma’s JS Nice en APK Deguard. Hiermee kunnen gebruikers hun code testen, waarna mogelijkheden worden getoond om die programma’s te verbeteren.

Discussie (0 opmerking(en))