J‘ai récemment été invité à présenter un exposé lors de la conférence AI DevWorld qui s‘est tenue à Jose Jose, en Californie. AI DevWorld à San Jose, en CalifornieJ‘ai été ravi de donner un aperçu du problème et de la recherche actuelle dans le domaine de la synthèse de programmes à un public de développeurs et de responsables de produits. Une véritable synthèse de programmes permettra à terme aux humains de construire des programmes informatiques utiles sans recourir à la programmation conventionnelle. En effet, grâce à de nouvelles interfaces utilisateur et au langage naturel, nous pourrons exprimer l‘objectif d‘un programme et un logiciel plateforme générera le code qui permettra d‘atteindre l‘objectif souhaité.
En tant que professeur d‘informatique et scientifique en chef chez SnapLogic, j‘aime travailler à la fois dans le monde universitaire et dans l‘industrie (j‘ai déjà écrit sur les sujets suivants combler le fossé entre les perspectives académiques et industrielles). Mon intervention à AI DevWorld m‘a permis d‘expliquer le problème formel de la synthèse de programmes et certaines des recherches effectuées pour résoudre ce problème. J‘ai également expliqué le travail que nous effectuons à SnapLogic pour rendre la synthèse de programmes pratique dans notre site plateforme. Nous combinons un langage de programmation visuel avec l‘apprentissage automatique pour aider à automatiser la construction de données, d‘API et de flux de travail.
Si vous ne connaissez pas AI DevWorld, l‘événement se présente comme "le plus grand événement mondial pour les développeurs d‘intelligence artificielle". Vous pouvez lire le résumé de ma présentation ici : "Toward Practical Program Synthesis for Data, API, and Workflow Automation (Vers une synthèse de programmes pratique pour l‘automatisation des données, des API et des flux de travail)." Le public était engagé et plusieurs personnes m‘ont parlé après ma présentation pour poser des questions de suivi et poursuivre la conversation.
La réponse a été intrigante. Une personne qui m‘a contacté après ma session n‘était pas familière avec le domaine de recherche, mais a pu apprécier la complexité du problème. Lorsque nous écrivons des logiciels, même dans un langage de haut niveau, nous effectuons en réalité toutes les opérations lourdes pour que les ordinateurs fassent ce que nous voulons qu‘ils fassent. En d‘autres termes, en tant qu‘humains, nous devons toujours travailler au niveau de la machine. Les programmes exigent une quantité incroyable de détails. Il est donc difficile de passer d‘objectifs de haut niveau exprimés en langage naturel, qui manque de détails, à un code réel. Pour moi, la voie à suivre consiste à utiliser autant de contexte que possible pour aider à remplir les détails, ainsi qu‘une approche conversationnelle de la synthèse de programme dans laquelle le processus de création de programme sera une série d‘affinements du code suggéré ou synthétisé.
Dans l‘ensemble, je suis heureux d‘avoir pu donner un aperçu de la recherche et des approches pratiques de la synthèse de programmes. Si vous souhaitez vous tenir au courant de toutes les innovations en matière d‘IA et de ML que nous réalisons chez SnapLogic, restez à l‘écoute de ce blog et consultez notre vitrine sur l‘apprentissage automatique!