L'écriture des programmes informatiques requiert en général la connaissance de langages spécialisés comme C++, Fortran ou de l'Assembleur. Dans différents documents édités par le Laboratoire d'intelligence artificielle et de la science informatique (CSAIL) du MIT, les scientifiques ont cherché un moyen d'écrire des programmes en langage naturel, c'est-à -dire celui que nous utilisons quotidiennement pour parler et écrire.
Pour démontrer cela, les scientifiques ont créé un système pour apprendre à un ordinateur comment convertir des éléments de langage naturel en expressions régulières, via un ordre ou une séquence de chaînes de données (lettres, variables, etc). L'objectif est d'éviter au système de se tromper sur certaines expressions comme « mangez grand-père » à ne pas confondre avec « manger grand-père ». Les chercheurs ont donc adapté les descriptions du texte à différents formats de fichiers correspondant à des modes de programmation particuliers. Par exemple, pour la description « mot de trois lettres commençant par X », le système le convertit en expression régulière « \bX[A-Za-z]{2}\b ». A première vue, cela ne ressemble pas à grand-chose, mais pour les informaticiens cette solution génère des programmes d'analyses d'entrées qui aident les logiciels à comprendre le sens exact d'une phrase ou d'une expression. Ainsi « \bX[A-Za-z]{2}\b » est la définition exacte en informatique d' « un mot de trois lettres commençant par X » et il retournera ce résultat lors de son exécution.
Le système est capable d'interpréter des descriptions beaucoup plus longues et complexes avant de les convertir. Malgré tout, la programmation en langage naturel en est à ses débuts et reste encore limitée. Il faudra encore du temps pour que les non-développeurs puissent devenir des codeurs experts.
La programmation en langage naturel s'améliore
Les développeurs passent souvent des années dans l'apprentissage de la programmation. Aujourd'hui, des chercheurs du MIT annoncent avoir mis au point un moyen qui donne à la personne la plus inexpérimentée la possibilité de développer du code.