Il MIT rivoluziona il porting di codice tra progetti diversi

CodeCarbonCopy consente di integrare funzioni provenienti da un programma all'interno di un altro. I risultati della sperimentazione sono incoraggianti, ma per arrivare al riutilizzo automatico del codice c'è ancora tanta strada da fare

Roma – Alcuni ricercatori del Laboratorio di Scienze Informatiche e Intelligenza Artificiale (CSAIL) del MIT, hanno sviluppato un sistema in grado di trasferire un blocco di codice appartenente ad un certo software all’interno di un altro , integrandolo con esso: hanno realizzato quindi, un primo caso d’uso di uno scenario che finora è stato appannaggio quasi esclusivo dell’intervento umano: il riutilizzo del codice .

Il sistema, chiamato CodeCarbonCopy (CCC) , richiede ancora alcuni interventi manuali : uno sviluppatore deve identificare sia il codice relativo alla funzionalità da trasferire all’interno del secondo programma, sia il punto esatto – all’interno del codice del secondo programma – in cui il trasferimento deve avvenire.

Una volta definiti questi parametri, CodeCarbonCopy esegue sia il codice di partenza che quello di destinazione, passando in input lo stesso file: durante queste esecuzioni, vengono salvate delle espressioni simboliche atte a rappresentare ogni valore computato dal codice; queste espressioni andranno a formare un mapping tra la rappresentazione del dato usata all’interno del codice sorgente e quella usata nel programma di destinazione.

Per fare ciò, i ricercatori hanno realizzato un algoritmo di strumentazione, scritto in un linguaggio da loro ideato – chiamato semplicemente “Core” – rappresentato attraverso il software Valgrind.

algoritmo di strumentazione usato da CodeCarbonCopy

Nello specifico, l’algoritmo di strumentazione è in grado di identificare e salvare il risultato di ogni singola operazione: assegnazioni, accesso a puntatori a memoria, operatori binari (identificati dal simbolo ⊕), variabili puntate, allocazioni dinamiche, letture da file.

In seguito, il mapping viene utilizzato per generare dei data adapter di input e di output: il primo legge le strutture dati del programma di destinazione per popolare quelle del codice sorgente, che il codice trasferito andrà ad accedere; il secondo scrive i valori computati dal codice sorgente all’interno delle strutture dati del programma di destinazione. In poche parole, gli adapter consentono al codice sorgente di funzionare con le proprie strutture dati, provvedendo alle opportune operazioni di conversione dei parametri di input e di output , per garantire la compatibilità con il programma di destinazione.

Infine, dopo aver eliminato parti irrilevanti del codice sorgente, attraverso una procedura di analisi statica, il codice viene trasferito all’interno del programma di destinazione. Durante quest’ultima fase, eventuali variabili globali utilizzate dal codice di partenza vengono rimpiazzate con degli analoghi puntatori, al fine di facilitare l’operazione.

I ricercatori hanno allegato anche una serie di otto test di sperimentazione, in ognuno dei quali alcune funzionalità sono state trasferite da un programma all’altro: nello specifico, sono stati utilizzati programmi di tipo imaging e media player ; i tempi di esecuzione variano dai 3 ai 24 minuti circa. In un unico caso, CodeCarbonCopy ha fallito, a causa di particolari strutture di dati utilizzate dal software bmp2tiff .

test di esecuzione di CodeCarbonCopy

In conclusione, CodeCarbonCopy rappresenta un buon punto di partenza per un futuro impiego intensivo del riutilizzo automatico del codice: i diversi vincoli presenti, al momento, impediscono notevolmente un suo potenziale utilizzo nel quotidiano . Difatti, oltre alla necessità di intervento umano, gli ostacoli principali sono due: la necessità che il codice sorgente e quello di destinazione prendano in input solamente un parametro – nello specifico un file – ed il funzionamento esclusivo con programmi scritti utilizzando il linguaggio di programmazione C.

Elia Tufarolo

Fonte Immagine

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

  • xte scrive:
    traduzione
    Cari editori noi siamo stati buoni, vi abbiamo spiegato che è bene cerchiate di guadagnare solo dalla pubblicità (che gestiamo noi, ma questo è un dettaglio insignificante, noi siamo buoni la nostra pubblicità funziona assai bene e ha soglie di ingresso veramente basse) adesso passiamo a maniere più forti: sapete bene che al mondo ci son tante testate, tra queste una quota parte pubblicherà vivendo solo sulla pubblicità. Chi sceglierà diversamente semplicemente non sarà più nei nostri aggregatori perché inevitabilmente gli articoli free saran i più cercati/guardati/letti e quindi i primi nei risultati.-- fine traduzioneIn se questo a noi oggi vien bene ma alla lunga pone il classico problema: resteranno 4 gatti a comandare il mondo. Cari concittadini tutti pensate MOLTO bene e fate il possibile per educare i vostri prossimi e spingere verso soluzioni distribuite o per noi e i nostri figli il cetriolo arriverà senza bisogno di spingere, direttamente per "traspirazione sociale". E sarà assai sgradevole.Non so se l'avete letto ma per la stessa serie ci sono manifestazioni di interesse by Amazon per comprare Carrefour...
    • giadiniere scrive:
      Re: traduzione
      cactus in arrivo dopo aver istituito la web tax per googleattenta che i giardinieri fanno in fretta a metterti in cattiva luce
    • c0981cfcc71 scrive:
      Re: traduzione


      Non so se l'avete letto ma per la stessa serie ci
      sono manifestazioni di interesse by Amazon per
      comprare Carrefour...Mi sa di XXXXXXX messa in giro per giocare con le azioni in borsa.Le dimensioni in gioco sarebbero una distorsione troppo forte del mercato, non può passare l'anti-trust.
      • xte scrive:
        Re: traduzione
        Può darsi, la notizia principale è partita da Retail Detail Europe, Forbes ha seguito (cerca Carrefour Amazon su qualche aggregatore) ma non mi stupirebbe troppo... Negli USA ha già un peso tale anche nel cibo da aver schiacciato molte altre gdo più piccole, in Europa Amazon ha un peso assai minore e Carrefour non ha una posizione così dominante pur essendo grosso quindi potrebbe anche passare (specie con Macron).Ad ogni modo sarebbe solo uno dei tasselli del trend alla "piattaforma" che di fatto stà monopolizzando la nostra società. I governi son sempre più deboli in tal senso e il "popolo bove" va ancora contro non i rappresentanti corrotti ma il *concetto* di istituzione (vedi i trend al presidenzialismo, all'elezione diretta ecc che in ultima analisi sono l'uomo solo al comando).
Chiudi i commenti