Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le MIT ambitionne de remplacer les lignes de codes par le langage naturel
Vers la fin des langages de programmation ?

Le , par Stéphane le calme

23PARTAGES

5  0 
L'apprentissage d'un langage de programmation peut parfois être long et pénible. Pour y remédier, les chercheurs du laboratoire de science informatique et d'intelligence artificielle (CSAIL) du MIT se sont penchés sur la question de savoir s'il était possible d'écrire des programmes en langage naturel, dans le cas d'espèce en anglais.

Les résultats de ces recherches ont conduit à l'implémentation d'un système qui traduit la description d'une tâche en anglais standard en regex (un motif qui décrit un ensemble de chaînes de caractères possibles selon une syntaxe précise) afin que le programme puisse interpréter exactement la tâche qui lui est assignée.

Les chercheurs ont donné au système des spécifications de texte pour différents formats de fichiers. Lesdites spécifications ont été écrites en langage naturel et le système a appris automatiquement comment l'interpréter et le convertir en langage de programmation afin que l'ordinateur puisse lire correctement les données contenues dans les différents formats de fichiers.

Dans ses démonstrations, le CSAIL a donné la description suivante en langage naturel « mot de trois lettres commençant par X ». Le système a renvoyé la regex suivante « \bX[A-Za-z]{2}\b ».

Le système est capable d'interpréter des spécifications de textes bien plus longues et compliquées pour les convertir en regex.


Pour Luke Zettlemoyer, un assistant professeur au département des sciences informatique et de l'ingénierie à l'Université Washington, « il s'agit d'une première étape importante qui permettra aux utilisateurs de tous les jours de programmer sans aucune connaissance en langage de programmation. »

Le système ne permettra pas encore aux personnes qui n'ont jamais écrit de ligne de codes de faire tout d'un coup des programmes sophistiqués puisqu'il est encore limité et à ses débuts. La discipline gagnant en maturité, il sera probablement possible d'écrire des programmes entiers avec le langage naturel.

Source : recherche MIT (au format PDF)

Et vous ?

Que pensez-vous de cette initiative ? Les langages de programmation sont-ils en danger ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de CHbox
Membre confirmé https://www.developpez.com
Le 18/07/2013 à 14:36
J'y vois une forte utilité au sein de programmes de gestion qui propose à l'utilisateur de définir des règles simples, typiquement un des outils de mon client consiste à checker la liste des utilisateurs de l'Active Directory, ils peuvent définir des règles simples pour certains champs via des regex (typiquement vérifier le format d'un nom ou d'un numéro de téléphone) et les règles trop complexes sont définit dans le code, si on leur proposait ce système ça serait très pratique et bien plus facile d'accès.

Au delà de ça je ne pense pas que ça mette en danger les langages de prog, il faudrait une rigueur énorme pour définir son code correctement, ce qui est loin d'être à la portée de tout le monde (là c'est plus un problème de rigueur et de sérieux que de capacité), je pense que quelqu'un capable de définir un programme vraiment complexe avec des phrases n'aura aucun mal à le coder voir même ira plus vite à la coder qu'à réfléchir à la tournure de la phrase (il suffit de voir l'exemple proposé pour s'en rendre compte), les gens qui n'ont aucune notion de programmation ne sauront pas comment décrire un programme, même avec des phrases.
9  2 
Avatar de Cincinnatus
Membre éprouvé https://www.developpez.com
Le 19/07/2013 à 10:25
Citation Envoyé par Kaluza Voir le message
La peur que j'évoquais plus haut, c'est la peur d'avoir une communauté de décideurs/managers dire que la programmation c'est facile si ils utilisent ce genre d'outils ... ce qui aura tendance à répandre ce genre d'outils au delà de l'usage initial prévu et donnera du code non maintenable avec des perfs horrible.
Pour les calmer, c'est simple : il suffira de leur demander de "programmer" avec cet outil et de les voir se débattre en l'utilisant...

Le plus souvent ils sont déjà incapables de nous dire en français ce qu'ils veulent, alors le dire à un tel système :
7  0 
Avatar de Kaluza
Membre habitué https://www.developpez.com
Le 18/07/2013 à 14:23
Super on pourra fabriquer des programmeurs productifs qui n'auront aucune idée de ce qui se passe derrière ! Si il s'agit de faire que madame michu puisse programmer un truc sans trop se fouler pourquoi pas, mais j'ai peur des déviations que ça pourrait entrainer dans le monde pro.

[mode troll hardcore = on]
Finalement, ce serait juste la suite logique des langages managés... Un peu comme du java mais en pire quoi...
[mode troll hardcore = off]
12  6 
Avatar de Kaluza
Membre habitué https://www.developpez.com
Le 18/07/2013 à 15:13
La peur que j'évoquais plus haut, c'est la peur d'avoir une communauté de décideurs/managers dire que la programmation c'est facile si ils utilisent ce genre d'outils ... ce qui aura tendance à répandre ce genre d'outils au delà de l'usage initial prévu et donnera du code non maintenable avec des perfs horrible.
7  1 
Avatar de pierre-y
Membre éprouvé https://www.developpez.com
Le 19/07/2013 à 9:27
ça va être beau l'optimisation du code et la maintenance :
"va plus vite et arrête de zozotter"

En fait quand je lis ça, la question que je me pose surtout étant un amateur, c'est en quoi les "bases" de la programmation ne sont pas a la porté de tous? Les notions de boucle, de conditions,... sont assez simple en soit. Sa mise en œuvre un peux moins peut être, mais toujours plus que de devoir mettre en forme verbalement un idée en tenant compte qu'une même langue peut varier en fonction des régions, du pays ,du milieux social et professionnel. Qui sait va peut être y avoir des options pour le définir (bouseux, sadique pathologique, ...).

C'est aussi oublié les problèmes lié au notions sécuritaires et de mise en œuvre qui peuvent être lié a une demande. Qui va être responsable si le langage est mal interprété?
5  0 
Avatar de MiaowZedong
Membre extrêmement actif https://www.developpez.com
Le 18/07/2013 à 14:03
Un nouveau language de cinquième génération? Tous ceux qui ont été lancés dans le années 80 on échoués. Après, à voir les progrès dans le traitement des données non-structurée de cette dernière decennie (Watson, par exemple) c'est probablement possible, mais pour l'instant je pense que ce ne serait pas rentable.
4  0 
Avatar de Loceka
Expert confirmé https://www.developpez.com
Le 18/07/2013 à 17:05
Si on leur donne les besoin tels qu'ils nous sont exprimés en entrée, ça pourrait être marrant :
Code : Sélectionner tout
Create a graphical user interface that will manage the users.
Vas-y Mr le langage évolué, code-nous donc ça.
4  0 
Avatar de Omote
Membre averti https://www.developpez.com
Le 18/07/2013 à 20:34
Avez-vous déjà utilisé SenseTalk? J'en ai eu l'occasion pour évalué EggPlant. Le résultat c'est que je suis passé à Sikuli et a son Jython.

Le langage humain est codifié. Pour le transcrire en langage machine, l'IA devra toujours se baser sur des règles de grammaire. Quand bien même l'IA dispose d'un "dictionnaire" conséquent, il en revient toujours à l'être humain de rentrer une suite de mot que l'IA est en mesure de décodé...

Pour revenir au SenseTalk, j'ai passé du temps à tenté de deviner de quel façon je devais écrire pour que cela soit correctement interprété.

De plus pour les programmes plus long que faire de la manipulation de string ou des scripts de copie de fichiers, il y aurait beaucoup plus de ligne d'écriture humaine que de code. Bonjour la maintenance!

Et puis quid des non-anglophone? Apprendre un langage de programmation ou bien une langue étrangère, n'est-ce pas la même chose?
4  0 
Avatar de
https://www.developpez.com
Le 18/07/2013 à 15:12
Ça dispenserait de l'apprentissage de la syntaxe du langage. Mais cette étape est vraiment négligeable dans l'apprentissage de la programmation.
Ça ne nous dispensera pas de penser comme un ordinateur, sous forme d'algorithme.

Par exemple vérifier qu'un élément appartient un ensemble, pourrait se réduire en " vérifier que la variable a appartient à l'ensemble X" , sans être obligé de dire, qu'il faut faire une boucle for de i=1 à nombreelement(X), et parcourir tous les éléments et vérifier élément par élément si a=X[i] et à chaque vérification si c'est vrai on sort de la boucle avec un vrai, et à la fin de la boucle on sort avec un faux. Regardez toute cette connerie pour arriver un truc aussi simple que ça.

Ton langage n'a pas de fonction Contains() ?
4  1 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 18/07/2013 à 15:44
Citation Envoyé par Kaluza Voir le message
La peur que j'évoquais plus haut, c'est la peur d'avoir une communauté de décideurs/managers dire que la programmation c'est facile si ils utilisent ce genre d'outils ... ce qui aura tendance à répandre ce genre d'outils au delà de l'usage initial prévu et donnera du code non maintenable avec des perfs horrible.
ça rejoint ce que je voulais dire(et que j'ai sans doute mal dit, vu mon -1). On peut changer les langages, mais la logique sous-tendue, elle, doit être implacable. Qu'on utilise un langage concis(C) ou verbeux(COBOL, mais Flow-Matic était bien plus baveux encore), si derrière on est pas rigoureux, ça va donner n'importe quoi.

Mais c'est le reproche qu'on fait souvent au VBA : il y a plein de code pourri parceque la barrière d'entrée est très basse. Pourtant, si on traine sur le forum idoine, on trouve des gens de très haut niveau. Qui font du code impeccable, performant, clair, concis, évolutif... Les gens sérieux feront toujours du code sérieux, je ne me fais pas de souci là-dessus. L'avantage du C, c'est que les gens pas sérieux n'essayent même pas.
2  0