Il tool di Machine Programming di Intel rileva i bug di codice e aggiunge interessanti novità per il debugging
Intel ha presentato ControlFlag – un sistema di ricerca per il machine programming in grado di rilevare autonomamente gli errori di codice. Seppure appena lanciato, questo nuovo sistema auto-supervisionato si dimostra promettente come potente strumento di produttività per assistere gli sviluppatori di software nell’impegnativo compito del debugging. Nei test preliminari, ControlFlag ha istruito e appreso nuovi difetti su oltre 1 miliardo di linee di codice non categorizzato simili a quelle di un codice di produzione.
Le parole di Justin Gottschlich
Justin Gottschlich, principal scientist and director/founder of Machine Programming Research di Intel Labs, ha dichiarato:
“Pensiamo che ControlFlag sia un potente nuovo strumento in grado di ridurre drasticamente il tempo e il denaro necessari per valutare e ed effettuare il debugging dei codici. Secondo gli studi, gli sviluppatori di software spendono circa il 50% del loro tempo per le attività di debugging. Con ControlFlag, e sistemi simili a questo, ci auguriamo che i programmatori risparmino tempo per il debugging e abbiano più tempo per esprimere idee nuove e creative per le macchine”.
Caratteristiche principali di questa innovazione
In un mondo sempre più gestito dal software, gli sviluppatori continuano a trascorrere una quantità sproporzionata di tempo nel risolvere i bug piuttosto che nel creare codice. Si stima infatti che il 50% di 1.250 miliardi di dollari che lo sviluppo di software costa ogni anno all’industria IT, venga speso in azioni di debugging.
Sembra che il debugging abbia un impatto ancora più grande sugli sviluppatori e sull’industria in generale. Man mano che si entra in un’era di architetture eterogenee – definite da un mix di processori costruiti ad hoc per coordinare la grande quantità di dati oggi disponibili – il software necessario per gestire questi sistemi diventa sempre più complesso, creando una maggiore probabilità di bug. Inoltre, sta diventando difficile trovare programmatori software che abbiano la competenza necessaria per programmare in modo corretto, efficiente e sicuro su diversi hardware, il che determina maggiori occasioni di nuovi e più complessi errori di codice.
Una volta completato, ControlFlag potrebbe automatizzare le parti noiose dello sviluppo del software, come i test, il monitoraggio e il debugging. Questo non solo permetterebbe agli sviluppatori di fare il loro lavoro in modo più efficiente, destinando più tempo alla creatività, ma consentirebbe di ridurre anche una delle voci di costo più elevate nello sviluppo del software.
I vantaggi operativi
Le capacità di rilevamento dei bug di ControlFlag sono abilitate dal machine programming, fusione di machine learning, metodi formali, linguaggi di programmazione, sistemi compilatori e informatici.
ControlFlag opera specificamente attraverso una capacità nota come rilevamento delle anomalie. Come gli esseri umani imparano a considerare “normali” alcuni modelli attraverso l’osservazione, così ControlFlag impara a rilevare i normali schemi di coding partendo da esempi verificati, identificando le anomalie nel codice che possono causare un bug. Inoltre, ControlFlag è in grado di rilevare queste anomalie indipendentemente dal linguaggio di programmazione.
Un vantaggio importante dell’approccio non supervisionato di ControlFlag nel riconoscimento dei modelli, è che può imparare ad adattarsi allo stile di uno sviluppatore. Con input limitati agli strumenti di controllo che il programma dovrebbe valutare, ControlFlag è in grado di identificare le variazioni stilistiche nel linguaggio di programmazione, così come un lettore riconosce la differenza tra una parola completa e la versione abbreviata nella sua lingua nativa.
Lo strumento impara a identificare ed etichettare queste scelte stilistiche e può personalizzare l’identificazione degli errori e suggerire una soluzione sulla base delle sue intuizioni, il che riduce al minimo le caratterizzazioni di ControlFlag del codice in errore che possono essere semplicemente una differenza stilistica tra due team di sviluppo.
Futuri sviluppi
ControlFlag ha già dimostrato la capacità di identificare i bug latenti che esistono nel codice di qualità di produzione ampiamente utilizzato che è stato precedentemente rivisto dagli sviluppatori di software. Ad esempio, quando ControlFlag ha analizzato cURL – una riga di comando disponibile in open source e ampiamente adottata dai programmatori per consentire il download da Internet – ha identificato un’anomalia che non era stata precedentemente riconosciuta, spingendo gli sviluppatori di cURL a proporre una soluzione migliore.
Intel ha anche iniziato a valutare internamente l’uso di ControlFlag per identificare i bug nella propria produzione di software e firmware. Si tratta di un elemento chiave del progetto di Intel “Rapid Analysis for Developers” che mira ad accelerare la velocità fornendo un’assistenza esperta.
Voi cosa ne pensate? Fateci sapere nei commenti e continuate a seguirci sulle pagine di tuttoteK dove potrete trovare le ultime novità e non solo.
Lascia un commento