Home Software Sviluppo Il machine programming di Intel aiuta gli sviluppatori a essere più produttivi

Il machine programming di Intel aiuta gli sviluppatori a essere più produttivi

Intel ha svelato un nuovo sistema di machine programming (MP), in collaborazione con il Massachusetts Institute of Technology (MIT) e il Georgia Institute of Technology (Georgia Tech). Il sistema machine inferred code similarity (MISIM) è un motore automatizzato progettato per apprendere cosa intende fare un software studiando la struttura del codice e analizzando le differenze sintattiche con altro codice che ha un comportamento simile.

L’obiettivo finale di Intel per il machine programming, ha dichiarato Justin Gottschlich, principal scientist e director/founder del Machine Programming Research di Intel, è quello di democratizzare la creazione di software. Quando sarà pienamente realizzato, secondo Gottschlich il machine programming consentirà a tutti di creare software semplicemente esprimendo la loro intenzione in qualunque modo sia meglio per loro, che sia codice, linguaggio naturale o qualcos’altro. Si tratta, è lo stesso scienziato di Intel ad ammetterlo, di un obiettivo audace, ma benché ci sia ancora molto lavoro da fare, MISIM è un passo concreto verso di esso.

Con l’avvento dell’heterogeneous computing, sottolinea Intel, i sistemi hardware e software stanno diventando sempre più complessi. Questa complessità, abbinata a una carenza di programmatori in grado di codificare a livello di esperti su più architetture, evidenzia la necessità di nuovi approcci di sviluppo.

Il machine programming, un termine coniato da Intel Labs e MIT nel loro paper intitolatoThree Pillars of Machine Programming”, mira a migliorare la produttività dello sviluppo attraverso l’uso di strumenti automatizzati. Una tecnologia chiave per molti di questi strumenti di machine programming emergenti è la “code similarity”, che ha il potenziale per automatizzare in modo accurato ed efficiente parte del processo di sviluppo del software, per soddisfare questa esigenza.

Tutt’ora, costruire sistemi di code similarity accurati è un problema relativamente irrisolto, evidenzia ancora Intel. Questi sistemi tentano di determinare se due frammenti di codice mostrano caratteristiche simili o mirano a raggiungere obiettivi simili, un compito scoraggiante quando si ha solo il codice sorgente da cui imparare. MISIM può determinare con precisione quando due pezzi di codice eseguono un calcolo simile, anche quando quei pezzi usano strutture dati e algoritmi diversi. E questo rappresenta un passo importante verso la visione più ampia del machine programming, secondo Intel.

machine programming Intel

Una differenziazione fondamentale tra MISIM e i sistemi di code similarity esistenti, spiega ancora Intel, risiede nella sua nuova context-aware semantic structure (CASS), che mira a far emergere ciò che il codice effettivamente fa.

A differenza di altri approcci esistenti, CASS può essere configurato in un contesto specifico, consentendo di acquisire informazioni che descrivono il codice a un livello più alto. CASS può fornire informazioni più specifiche su ciò che fa il codice piuttosto che su come lo fa.

Inoltre, MISIM può fare tutto questo senza usare un compilatore, che traduce il codice sorgente leggibile dall’essere umano in codice macchina eseguibile dal computer. Ciò ha molti vantaggi rispetto ai sistemi esistenti, tra cui la possibilità di eseguire snippet di codice incompleti che uno sviluppatore potrebbe stare scrivendo al momento, un’importante caratteristica pratica per i sistemi di raccomandazioni o per la correzione automatica dei bug.

Una volta che la struttura del codice è integrata in CASS, i sistemi di reti neurali danno punteggi di somiglianza (similarity) a pezzi di codice in base ai job per svolgere i quali sono progettati. In altre parole, se due pezzi di codice sembrano molto diversi nella loro struttura ma svolgono la stessa funzione, le reti neurali li classificherebbero come in gran parte simili.

Riunendo questi principi in un sistema unificato, i ricercatori hanno scoperto che MISIM era in grado di identificare pezzi di codice simili fino a 40 volte più accuratamente rispetto ai precedenti sistemi allo stato dell’arte.

Benché Intel stia ancora espandendo il set di funzionalità di MISIM, la società lo ha spostato dallo stato di research effort a quello di demonstration effort, con l’obiettivo di creare un motore di raccomandazione del codice per aiutare tutti gli sviluppatori di software a programmare le varie architetture eterogenee di Intel. Questo tipo di sistema, afferma Intel, sarebbe in grado di riconoscere l’intento dietro un semplice algoritmo inserito da uno sviluppatore e offrire codici candidati semanticamente simili ma con prestazioni migliorate.

Il Machine Programming Lab di Intel si sta anche impegnando con i team software di Intel per vedere come MISIM possa essere integrato nel loro lavoro di sviluppo quotidiano, per, ad esempio, migliorare la produttività ed eliminare alcune delle parti banali della programmazione, come la caccia ai bug.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato sulle novità tecnologiche

css.php