I LLM Mostrano Promesse nell'Analisi del Codice su Più Linguaggi
Uno studio recente su arXiv valuta 21 modelli linguistici di grandi dimensioni (LLM) all'avanguardia per capacità chiave di analisi del codice in quattro linguaggi di programmazione: C, Java, Python e Solidity. Lo studio esamina l'analisi sintattica, l'inferenza semantica statica e il ragionamento dinamico, testando i modelli su nove compiti diversi, tra cui la generazione di alberi sintattici astratti (AST), la costruzione di grafi di flusso di controllo (CFG) e l'analisi di taint. Utilizzando un approccio a tre livelli—metriche automatiche, valutazioni di esperti e controlli di coerenza—la ricerca ha analizzato 3.124 campioni di codice. I risultati indicano che, sebbene gli LLM possano eseguire analisi del codice zero-shot, le loro prestazioni variano in base al compito e al linguaggio. Questo studio evidenzia il potenziale degli LLM per migliorare o addirittura sostituire gli strumenti di analisi tradizionali specifici per linguaggio nell'ingegneria del software, in particolare per il debug e le valutazioni di sicurezza.
Fatti principali
- 21 LLM all'avanguardia valutati
- Nove compiti di analisi del codice testati
- Quattro linguaggi: C, Java, Python, Solidity
- 3.124 campioni di codice analizzati
- Protocollo di valutazione a tre livelli utilizzato
- I compiti includono generazione di AST, costruzione di CFG, dipendenza dei dati, analisi di taint, ragionamento su test instabili
- Lo studio è strutturato attorno all'analisi sintattica, inferenza semantica statica, ragionamento dinamico
- arXiv:2305.12138v5
Entità
Istituzioni
- arXiv