← Ultimi articoli
🤖 AI

Large Language Models for Code Generation from Multilingual Prompts: A Curated Benchmark and a Study on Code Quality

Questo articolo introduce un benchmark multilingue curato e presenta uno studio che dimostra come la lingua utilizzata nei prompt influenzi significativamente la correttezza funzionale, la qualità strutturale e le caratteristiche lessicali del codice generato dai modelli linguistici di grandi dimensioni (LLM), rivelando che i prompt in inglese non producono costantemente i risultati migliori e che l'impatto varia tra i diversi modelli e linguaggi di programmazione.

Autori originali: Saima Afrin, Alessandro Midolo, Camilo Escobar-Velásquez, Mario Linares-Vásquez, Weiyuan Ding, Bowen Xu, Massimiliano Di Penta, Antonio Mastropaolo

Pubblicato 2026-07-17
📖 6 min di lettura🧠 Approfondimento

Autori originali: Saima Afrin, Alessandro Midolo, Camilo Escobar-Velásquez, Mario Linares-Vásquez, Weiyuan Ding, Bowen Xu, Massimiliano Di Penta, Antonio Mastropaolo

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Il Grande Esperimento del Traduttore di Codice

Immaginate di avere un amico robot super intelligente che sa costruire qualsiasi cosa, da una semplice casetta per uccelli a un'astronave complessa. Questo robot, chiamato Large Language Model (o LLM), ha letto quasi tutto ciò che è mai stato scritto su Internet, inclusi milioni di righe di codice informatico. Poiché ha letto così tanto, è incredibilmente bravo a seguire istruzioni per scrivere nuovo codice per noi. Di solito, parliamo con questo robot in inglese perché è la lingua nella quale la maggior parte del codice che ha imparato è stata scritta. Ma cosa succederebbe se chiedeste al robot di costruire un'astronave usando istruzioni in spagnolo, hindi o cinese? Il robot si confonderebbe? L'astronave cadrebbe a pezzi? O costruirebbe esattamente la stessa cosa, solo con un accento diverso?

Questa è la grande domanda alla base di un nuovo studio condotto da un team di ricercatori. Volevano vedere se la lingua che usiamo per parlare con questi robot IA cambia la qualità del codice che scrivono. Nel mondo dell'ingegneria del software, il "codice" è l'insieme di istruzioni che dice a un computer cosa fare. La "correttezza" significa che il codice funziona effettivamente e supera tutti i test, come un ponte che regge un'auto senza crollare. La "qualità" è un concetto più ampio; significa che il codice è facile da leggere, segue le regole del quartiere (come non lasciare spazzatura sul marciapiede) e non ha trappole nascoste che potrebbero rompersi in seguito. I ricercatori erano curiosi di sapere se chiedere un ponte in una lingua diversa dall'inglese avrebbe fatto costruire al robot un ponte traballante, o se il robot è altrettanto bravo a costruire in qualsiasi lingua.

L'Esperimento: Una Sfida di Programmazione Multilingue

Per scoprirlo, i ricercatori hanno organizzato un enorme concorso di programmazione. Hanno preso 460 diversi compiti di programmazione — 230 per Python e 230 per Java — da un famoso benchmark chiamato CoderEval. Questi non erano semplici compiti tipo "stampa ciao"; erano sfide del mondo reale che richiedevano all'IA di risolvere problemi, gestire dati e costruire strutture.

Poi, hanno fatto una cosa astuta. Invece di chiedere all'IA in inglese, hanno tradotto questi 460 compiti in altre quattro lingue: cinese, hindi, spagnolo e italiano. Ma non si sono limitati a usare un rapido traduttore automatico. Hanno fatto in modo che madrelingua esperti di informatica controllassero e correggessero manualmente ogni singola traduzione. Volevano che le istruzioni fossero perfette e naturali, proprio come un essere umano che chiede aiuto a un amico.

Successivamente, hanno fornito queste istruzioni tradotte a tre dei robot IA più potenti disponibili oggi: GPT-4o mini, DeepSeek e Claude. Hanno chiesto a ciascun robot di risolvere gli stessi 460 problemi in tutte e cinque le lingue (inglese più le altre quattro). In totale, hanno generato migliaia di pezzi di codice da confrontare.

La Grande Sorpresa: L'Inglese Non è Sempre il Re

I risultati sono stati un po' scioccanti. La credenza comune era che se chiedete all'IA in inglese, otterrete il miglior codice perché quella è la lingua che l'IA ha studiato di più. Ma lo studio ha scoperto che questo non è sempre vero.

Infatti, per i compiti in Python, chiedere all'IA in cinese ha portato a risultati migliori rispetto all'inglese! Il codice generato da prompt in cinese ha superato più test ed è stato più affidabile. È come chiedere a uno chef di cucinare un piatto; a volte, dare la ricetta in una lingua diversa fa pensare allo chef un modo migliore per cucinare. Tuttavia, questo "vantaggio del cinese" non è avvenuto per ogni robot o per ogni tipo di compito. Per Java, i risultati sono stati più misti e nessuna lingua è stata chiaramente la vincitrice. Il punto principale è che parlare inglese a un'IA non garantisce il miglior codice, e parlare un'altra lingua non significa automaticamente che il codice sarà peggiore.

Il Codice Sembra Diverso, Ma È Peggiore?

I ricercatori hanno esaminato anche la "qualità" del codice, non solo se funzionasse. Hanno controllato cose come:

  • Complessità: Il codice è un groviglio confuso o una linea retta?
  • Commenti: Il robot ha spiegato cosa stava facendo?
  • Avvisi: Il codice ha infranto qualche regola o sembrava disordinato?

Hanno scoperto che il codice generato in lingue diverse dall'inglese non era necessariamente "cattivo". Sembrava solo diverso. Ad esempio, il codice scritto da prompt in cinese spesso conteneva più commenti, come se il robot stesse cercando di essere extra premuroso. Il codice proveniente da prompt in hindi presentava talvolta più errori di stile, come punteggiatura mancante o spaziature strane, ma si trattava solitamente di piccoli problemi che potevano essere facilmente risolti.

Una scoperta interessante riguardava l'hindi. Quando l'IA veniva interrogata per programmare in hindi, a volte produceva codice un po' più rischioso, con più potenziali bug o logica confusa. Ma per lo spagnolo e l'italiano, il codice era generalmente altrettanto buono della versione inglese, a volte anche migliore nel evitare certi errori.

Il Problema del "Mix-and-Match"

È qui che le cose si fanno un po' complicate. Sebbene la logica del codice possa essere ottima, le parole all'interno del codice erano spesso un mix confuso. I ricercatori hanno scoperto che, anche quando chiedevate all'IA in spagnolo o in cinese, il robot spesso scriveva i commenti (le note che spiegano il codice) e i nomi delle variabili (le etichette per i dati) in inglese.

È come chiedere a uno chef di scrivere una ricetta in italiano, ma lui scrive la lista degli ingredienti in inglese e le istruzioni in un mix di entrambe le lingue. I ricercatori hanno scoperto che l'IA è molto incoerente. A volte segue la vostra lingua, altre volte no. Questo è un problema per i team di sviluppatori che hanno bisogno che il loro codice sia in una lingua coerente affinché tutti possano capirlo. Lo studio suggerisce che chiedere semplicemente il codice in una lingua specifica non è sufficiente; potreste dover essere molto specifici nel dire al robot di mantenere le note e le etichette nella stessa lingua.

Cosa Significa per Noi?

Lo studio conclude che non dobbiamo avere paura di usare le nostre lingue madri per parlare con gli assistenti alla programmazione IA. Potete chiedere codice in spagnolo, cinese o hindi senza preoccuparvi che il robot fallisca. In alcuni casi, come per Python, potreste persino ottenere risultati migliori!

Tuttavia, ci sono due cose a cui prestare attenzione:

  1. Il Problema dello "Stile": Il codice potrebbe presentare più piccoli errori di formattazione (come virgole mancanti o righe troppo lunghe) quando scritto in lingue diverse dall'inglese. Ma questi sono facilmente risolvibili con strumenti automatizzati.
  2. Il Problema del "Mix di Lingue": L'IA potrebbe non mantenere i commenti e le etichette nella lingua che avete richiesto. Se avete bisogno che tutto sia in una sola lingua, potreste dover controllare il codice o dare all'IA istruzioni supplementari.

Nel complesso, questa ricerca dimostra che l'IA sta diventando più flessibile. Può comprendere e costruire cose in molte lingue, abbattendo la barriera che costringeva tutti a parlare inglese per ottenere un buon codice. Ma come ogni nuovo strumento, ha le sue stranezze, e dobbiamo imparare come lavorarci per ottenere i migliori risultati.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →