I ricercatori hanno creato un nuovo modello di intelligenza artificiale capace di generare codice sorgente in modo più veloce e preciso. Invece di usare le tradizionali reti neurali ricorrenti, hanno combinato una rete convoluzionale con una rappresentazione ad albero della grammatica del linguaggio di programmazione. Questo approccio riduce gli errori tipici dei metodi sequenziali, soprattutto quando il codice è lungo e complesso. Il modello è stato testato su due dataset: HEARTHSTONE, dove ha raggiunto un punteggio BLEU di 81,4 e un'accuratezza del 62,1%, e AST2CVCode, creato appositamente per applicazioni di visione artificiale, con un BLEU di 86,2 e una corrispondenza esatta del 51,9%. Inoltre, gli autori hanno proposto una nuova metrica, BLEU+, che valuta non solo la somiglianza testuale ma anche la correttezza funzionale del codice, ottenendo un punteggio del 92,0% su AST2CVCode. Questi risultati mostrano che una rete CNN, guidata da regole grammaticali, può davvero semplificare lo sviluppo di software per la computer vision, aprendo la strada a strumenti di programmazione più intelligenti e meno soggetti a errori umani.
Il modello proposto sfrutta una rete neurale convoluzionale (CNN) per catturare pattern locali nei token del codice, integrandoli in una struttura ad albero che rispecchia la grammatica del linguaggio di programmazione. Questa rappresentazione gerarchica consente al modello di mantenere la coerenza sintattica durante la generazione, evitando errori di parentesi o di indentazione tipici dei metodi sequenziali. L'architettura prevede un encoder‑decoder basato su CNN, dove l'encoder elabora l'albero sintattico astratto (AST) del codice di input, mentre il decoder genera la sequenza di token di output, guidato da maschere di attenzione che rispettano le regole grammaticali. Il dataset HEARTHSTONE, originariamente pensato per la generazione di script di gioco, è stato usato come benchmark standard, mentre AST2CVCode è stato costruito raccogliendo script Python e C++ per librerie di visione artificiale (OpenCV, PyTorch, TensorFlow). Per valutare la correttezza funzionale, è stato introdotto BLEU+, che combina il tradizionale punteggio BLEU con test di compilazione e di esecuzione su casi di prova specifici. In pratica, un codice generato ottiene un punteggio BLEU+ elevato solo se supera tutti i test unitari, garantendo che la valutazione rifletta la reale utilità del codice. I risultati mostrano che la combinazione di CNN e grammatica riduce il numero medio di errori sintattici del 35% rispetto ai modelli RNN, e migliora la capacità di generare funzioni complesse come filtri di immagine o reti neurali convoluzionali. Questo approccio apre la strada a sistemi di assistenza alla programmazione che possono suggerire blocchi di codice completi, riducendo il carico cognitivo degli sviluppatori e accelerando il ciclo di sviluppo software.
