Recentemente sono stato invitato a presentare un intervento alla conferenza conferenza AI DevWorld a San Jose, Californiaed è stato fantastico dare una panoramica del problema e della ricerca attuale nell'area della sintesi dei programmi a un pubblico di sviluppatori e product manager. La vera sintesi dei programmi consentirà agli esseri umani di costruire programmi informatici utili senza la programmazione convenzionale; piuttosto, attraverso nuove interfacce utente e il linguaggio naturale, saremo in grado di esprimere l'obiettivo di un programma e una piattaforma software genererà il codice che raggiungerà l'obiettivo desiderato.
In qualità di professore di informatica e Chief Scientist di SnapLogic, mi piace lavorare sia nel mondo accademico che in quello industriale (in precedenza ho scritto su come colmare il divario tra le prospettive accademiche e industriali). L'intervento all'AI DevWorld mi ha permesso di spiegare il problema formale della sintesi dei programmi e alcune delle ricerche condotte per risolverlo. Ho anche spiegato il lavoro che stiamo facendo a SnapLogic per rendere pratica la sintesi dei programmi nella nostra piattaforma. Stiamo combinando un linguaggio di programmazione visuale con l'apprendimento automatico per aiutare ad automatizzare la costruzione di pipeline di dati, API e flussi di lavoro.
Se non conoscete AI DevWorld, l'evento si definisce "il più grande evento al mondo per sviluppatori di intelligenza artificiale". Potete leggere l'abstract della mia presentazione qui: "Verso una sintesi pratica dei programmi per l'automazione di dati, API e flussi di lavoro".." Il pubblico si è impegnato e diverse persone hanno parlato con me dopo la mia presentazione per fare domande e approfondire la conversazione.
La risposta è stata intrigante. Una persona che mi ha contattato dopo la mia sessione non conosceva l'area di ricerca, ma ha apprezzato la complessità del problema. Quando scriviamo un software, anche in un linguaggio di alto livello, in realtà stiamo facendo tutto il lavoro pesante per far sì che i computer facciano ciò che vogliamo. In altre parole, come esseri umani dobbiamo ancora lavorare al livello della macchina. I programmi richiedono un'incredibile quantità di dettagli. È quindi difficile passare da obiettivi di alto livello espressi in linguaggio naturale, che manca di dettagli, al codice vero e proprio. Per me, la strada da seguire è quella di utilizzare il più possibile il contesto per aiutare a riempire i dettagli, insieme a un approccio conversazionale alla sintesi del programma, in cui il processo di creazione del programma sarà una serie di perfezionamenti del codice suggerito o sintetizzato.
Nel complesso, sono lieto di essere riuscito a condividere alcune informazioni sulla ricerca e sugli approcci pratici alla sintesi dei programmi. Se volete tenervi aggiornati su tutte le innovazioni nel campo dell'intelligenza artificiale e del ML che stiamo facendo in SnapLogic, rimanete sintonizzati su questo blog e date un'occhiata alla nostra vetrina sull'apprendimento automatico!