• Home
  • Chimica
  • Astronomia
  • Energia
  • Natura
  • Biologia
  • Fisica
  • Elettronica
  • I ricercatori compilano un nuovo database di frammenti di codice Python eseguibili su GitHub

    (a) Frammento di codice per l'utilizzo dell'API di geocodifica di Google Maps (b) Dockerfile contenente le specifiche dell'ambiente necessarie per eseguire lo snippet di codice. Credito:Horton &Parnin

    Un team di ricercatori della North Carolina State University ha recentemente effettuato un'analisi empirica dello stato eseguibile dei frammenti di codice Python condivisi su GitHub. Il loro studio, pre-pubblicato su arXiv, presenta anche Gistable, un nuovo database di frammenti di codice Python eseguibili sul sistema GitHub, che potrebbe consentire studi riproducibili nel campo dell'ingegneria del software.

    Ogni giorno, gli sviluppatori di software di tutto il mondo creano e condividono codice online per dimostrare e delineare nuovi concetti di programmazione. GitHub è una delle più grandi piattaforme online su cui gli sviluppatori possono condividere i loro frammenti di codice e collaborare allo sviluppo del software. Attualmente, contiene oltre 300, 000 frammenti di Python e oltre 4,5 milioni di contenuti in una varietà di linguaggi di programmazione.

    Sebbene i frammenti di codice pubblicati online possano essere molto utili, a volte non sono direttamente eseguibili da altri. Ciò potrebbe essere dovuto a errori di analisi nel codice o a problemi con l'esecuzione di frammenti in ambienti che contengono dipendenze non soddisfatte.

    Per comprendere meglio quanti frammenti di codice ospitati sul sistema GitHub sono effettivamente eseguibili, i ricercatori della North Carolina State University hanno condotto una valutazione approfondita dell'eseguibilità degli script Python disponibili pubblicamente ospitati sulla piattaforma. Il loro studio mirava a identificare problemi comuni con l'esecuzione di frammenti di codice, che potrebbe fornire informazioni preziose per ulteriori ricerche sulla gestione automatizzata della configurazione del software.

    Nel loro studio, i ricercatori hanno anche presentato Gistable, un database e un framework estensibile costruito sul sistema essenziale di GitHub. Gistable contiene 10, 259 frammenti di codice Python, di cui circa 5, 000 sono dotati di un Dockerfile per configurarli ed eseguirli senza errori di importazione.

    "Il nostro lavoro su Gistable è stato motivato come parte di un progetto più ampio riguardante la configurazione automatizzata degli ambienti applicativi, "Eric Horton, uno dei ricercatori che ha condotto lo studio, ha detto a Tech Xplore. "Data una base di codice, come i frammenti studiati in Gistable, vogliamo trovare un processo che possa creare un ambiente di esecuzione sufficiente per loro senza richiedere input da uno sviluppatore. Per fare ciò, prima abbiamo dovuto fare un passo indietro e rispondere a un paio di domande. Primo, è un caso d'uso comune? Avevamo bisogno di stabilire una linea di base per quanto spesso le applicazioni esistenti necessitano di una sorta di configurazione non banale. Secondo, quando non è eseguibile, che tipo di configurazione è necessaria per abilitare l'esecuzione?"

    Nel loro studio, i ricercatori hanno scoperto che il 75,6 percento dei concetti di Python analizzati richiedeva configurazioni sostanziali per superare problemi come dipendenze mancanti, file di configurazione, dipendenza da un sistema operativo specifico, o altre sfide di configurazione dell'ambiente. Inoltre, i presupposti che gli sviluppatori fanno sui nomi delle risorse quando tentano di risolvere gli errori di configurazione sono risultati corretti meno della metà delle volte.

    "Abbiamo scoperto che circa il 30% del nostro campione rientrava nella categoria 'difficile da configurare', con la difficoltà di configurazione più comune essendo le dipendenze da librerie esterne, " ha spiegato Horton. "La nostra ricerca nell'immediato futuro si concentrerà sulle tecniche per trovare e installare queste librerie. in seguito, speriamo di affrontare altre difficoltà di configurazione comuni scoperte come parte di Gistable."

    Globale, un ambiente insufficientemente configurato era il fattore principale che impediva agli snippet di codice Python di essere eseguibili. Mentre in alcuni casi, le corrette configurazioni dell'ambiente applicativo potrebbero essere ripristinate automaticamente, altri hanno richiesto ulteriori interventi. In futuro, i ricercatori hanno in programma di studiare strategie per eseguire costantemente configurazioni ambientali efficaci.

    "Penso che il risultato più significativo di questo studio sia stata la nostra indagine su come gli sviluppatori eseguono la configurazione manualmente, " ha detto Horton. "Non solo le risposte dei partecipanti hanno confermato che questo è in molti casi un problema difficile, ma ci hanno anche aiutato a classificare le cose che possono rendere difficile la configurazione. Questo è molto utile, perché ci indica un elenco concreto di elementi per la ricerca futura".

    © 2018 Tech Xplore




    © Scienza https://it.scienceaq.com