La programmation fonctionnelle est-elle la prochaine étape vers la programmation en langage naturel? [fermé]

StackOverflow https://stackoverflow.com/questions/285848

  •  08-07-2019
  •  | 
  •  

Question

C’est ma toute première question, je suis donc un peu inquiète car je ne suis pas sûre de bien comprendre le sens. Quoi qu'il en soit, on y va ....

Chaque fois que de nouveaux jalons en matière de programmation ont été atteints, il semble qu'ils aient toujours eu un objectif commun: faciliter la programmation des programmes.

Le langage machine, les opcodes / mnémoniques, les procédures / fonctions, les structures, les classes (OOP), etc. ont toujours aidé, à l’époque, à planifier, structurer et coder les programmes de manière plus naturelle, compréhensible et mieux maintenable.

Bien entendu, la programmation fonctionnelle n’est pas une nouveauté, mais il semble qu’elle ait connu une sorte de renaissance ces dernières années. Je pense aussi que la PF aura un énorme coup de pouce lorsque Microsoft ajoutera le F # à ses langages de programmation traditionnels.

Pour revenir à ma question initiale, je pense qu’en fin de compte, la programmation se fera dans un langage naturel (anglais) avec très peu de restrictions ou de règles. Le compilateur fera partie d'un système AI / NLP qui extrait des informations du code ou devrais-je dire du texte et le transformer en un langage intermédiaire que le compilateur peut compiler.

Alors, la PF rapproche-t-elle la programmation en langage naturel ou est-ce plutôt un obstacle et la POO traditionnelle nous mènera plus rapidement à la programmation en langage naturel?

Cette question ne devrait pas être utilisée pour discuter de la facilité d'utilisation ou de la faisabilité de la programmation en langage naturel, car seul l'avenir le dira.

Était-ce utile?

La solution

Désolé, je ne suis pas du tout d'accord. Le code est en définitive un modèle pour la création d'objets (objets). Il doit donc être très précis et régi par des règles afin de fonctionner de manière fiable. Le langage naturel ne prendra pas la programmation plus tôt que d’esquisser des idées sur des serviettes va prendre en charge la construction mécanique.

Autres conseils

Personnellement, j’en suis venu à la conclusion que la programmation en langage naturel est un peu fêlée.

L'anglais n'est pas tout à fait adapté pour être utilisé pleinement comme langage de programmation. Trop de mots abstraits sans corrélation dans la programmation, tels que des termes émotionnels et d'autres notions abstraites qui n'ont pas leur place dans la programmation. être " langage naturel " suivrait, que " langage naturel " pourrait être la programmation, mais ce n'est pas.

Maintenant, alors que je comprends ce que vous dites ici, le problème est que la langue anglaise a trop de rebuts et de noms répétés pour les mêmes choses, nous utiliserions donc quelque chose qui n'est même pas spécifique au domaine de programmation, pour la tâche de programmation.

Je pense qu'il est plus approprié que les gens comprennent que la programmation est en fait un langage hautement spécialisé. Ils utilisent leur cerveau et apprennent à coder dans un langage qui est simple, déclaratif et possède une définition cohérente, contrairement à l'anglais, définition. est très subjectif.

Une fois que vous avez appris les tenants et les aboutissants d'une langue, ainsi que ses schémas et ses comportements, vous pouvez les combiner pour faire de nouvelles choses.

Prenez Perl, tout le monde le qualifie de bruit de ligne, mais lorsque vous connaissez de nombreux langages de programmation, une fois que vous avez dépassé les obstacles initiaux de "OMG LINE NOISE", il existe un certain degré d’intuitivité où vous pouvez créer des éléments. que vous ne lisez jamais et que vous voyez que cela fonctionne comme par magie, exactement comme vous le souhaitiez.

Et à mon humble avis, les langues spécifiques à un domaine ont la priorité sur celles parlées pour la résolution ciblée de problèmes.

"Alors, la PF rapproche-t-elle la programmation en langage naturel ou est-ce plutôt un obstacle et la programmation orientée objet nous mènera plus rapidement à la programmation en langage naturel?"

Ni l'un ni l'autre. Les deux fonctionnent sur le même principe, à savoir que vous devez spécifier ce que vous voulez que l'ordinateur fasse. Il ne doit y avoir aucune marge de manœuvre pour l’incertitude, et aucun des paradigmes n’a rien à faire avec les langues naturelles. Ils abordent un problème totalement différent: celui de la gestion et de la structuration de code complexe et de grandes bases de code.

Le gros obstacle dans les langues naturelles est l'analyse syntaxique. Il est impossible d'analyser sans ambiguïté le langage naturel. Même les humains ne peuvent le faire sans beaucoup d'informations de contexte (expressions faciales, ton de voix), et même dans ce cas, nous nous trompons encore assez souvent.

OOP et FP ne traitent que de ce qui se passe après l'analyse . Quelle signification est attribuée à chaque élément sémantique, une fois qu’il a été identifié et analysé.

Peut-être serons-nous un jour en mesure de programmer en langage naturel. Je doute que cela se produise au cours des deux prochaines décennies, mais cela peut arriver un jour. Mais les paradigmes de programmation actuels ne vont pas accélérer ce processus ni le retarder. Ils n’ont simplement rien à voir avec cela et n’aideront pas à résoudre le problème de l’analyse.

Je ne pense pas que la programmation fonctionnelle soit plus proche de la programmation en langage naturel que de la programmation OO. La programmation fonctionnelle a une syntaxe très orientée vers les verbes. Lorsque vous programmez en Lisp ou en Scheme, vous passez beaucoup de temps à réfléchir aux fonctions et aux actions que vous souhaitez entreprendre sur vos données. En programmation OO, vous passez la plupart de votre temps à penser à des objets, ce qui semble donc être très axé sur les noms. Cependant, en Smalltalk, C ++ et Java, vous disposez également de méthodes vous permettant d'appliquer des verbes à tous vos noms (pour ainsi dire).

Je ne pense pas que la programmation OO nous mènera nécessairement à la programmation en langage naturel, mais de mon point de vue, elle est un peu plus étroite que la programmation fonctionnelle. La programmation fonctionnelle me semble un peu plus proche des mathématiques que du langage naturel. Ce n’est pas une si mauvaise chose, car les mathématiques sont peut-être le langage auquel nous devrions penser quand nous programmons quand même.

Just FYI, Informer 7 est probablement le plus proche des gens obtenu à la programmation en langage naturel. C'est un langage pour un domaine très spécifique: l'écriture de fiction interactive, le genre de logiciel qui a commencé avec les "jeux d'aventure".

La poussée d’intérêt actuelle dans la programmation fonctionnelle, qui résulte principalement des nouvelles fonctionnalités intéressantes de C # 3.0, est essentiellement destinée à permettre le parallélisme et indique un passage à l’informatique multi-cœur. IMHO, je ne pense pas que nous puissions considérer cela comme une prochaine étape vers la 'programmation en langage naturel'

Si vous recherchez la prochaine évolution des langages de programmation, je me tournerais vers les DSL. DSL permet l'utilisation de langages hautement personnalisés qui permettent aux utilisateurs d'entreprise sophistiqués de configurer un système sans se soucier des détails de codage tels que les types de données, les threads et les widgets d'interface utilisateur.

Les langages fonctionnels auront leur place dans le "traitement hautement parallèle". l'espace.

Pensez-vous que les questions subjectives obtiendront ceci ici pour "Windows Internals the 5th Element" " ajouté à la base de données et envoyé à mon adresse? Si tel est le cas, la programmation en langage naturel sera très proche de la programmation fonctionnelle, car j’ai posé ma question de manière quelque peu fonctionnelle. Sinon, la programmation en langage naturel ne fera pas recevoir ma commande, n'est-ce pas? La programmation fonctionnelle peut fonctionner car elle n’a toujours rien à voir avec les langages naturels.

Non. La programmation fonctionnelle nous rapprochera de la preuve des compilateurs. Ce sont des compilateurs qui prouvent plus d'affirmations à propos de votre code. Plus les compilateurs peuvent nous le prouver, plus le développement logiciel se rapproche de l’ingénierie plutôt que de l’art.

Un langage de programmation NLP est probablement davantage un "fais ce que je veux dire pas ce que je dis" langue de style. C’est probablement le contraire de l’orientation des langages fonctionnels.

"Tous les langages de programmation convergent vers LISP."

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top