58 votes

Quel langage de programmation ressemble le plus au langage naturel?

J'ai eu l'idée, pour cette question, de nombreuses situations où je ne comprends pas ce que la personne est en train de parler et quand les autres ne me comprennent pas.

De la sorte, un "smart" la solution serait de parler un langage informatique. :)

Je suis intéressé de savoir jusqu'où un langage de programmation peut aller pour un proche (en anglais) de la langue naturelle. Quand je dis proche, je veux dire, pas seulement à utiliser des mots et des phrases, mais pour être en mesure de "faire" des choses en langage naturel peut "faire" et "faire", je veux dire qu'il peut être utilisé (de façon très limitée) en remplacement de la langue naturelle.

Je sais que c'est impossible (?) mais je pense que cela peut être intéressant.

119voto

Beska Points 6717

Il y a un langage de programmation appelé Informer que, dans sa dernière incarnation, Informer les 7, ressemble un beaucoup comme le langage naturel...en particulier, la langue écrite.

Informer spécifiquement pour la création de texte jeux d'aventure, mais il n'y a pas de raison que les concepts ne pouvait pas être étendu dans d'autres domaines.

Voici un petit extrait de l'Informer de 7 code, pris dans le jeu du Verre, par Emily Court.

Stage is a room. 

The old lady is a woman in the Stage. Understand "mother" or 
"stepmother" as the old lady. The old lady is active. The description 
of the lady is "She looks plucked: thin neck with folds of skin
exposed, nose beaky, lips white. Perhaps when her fortunes are mended
her cosmetics too will improve." 

The Prince is a man in the Stage. The description of the prince is
"He's tolerably attractive, in his flightless way. It's hard not to
pity him a little." The prince carries a glass slipper. The glass
slipper is wearable. Understand "shoe" or "heel" or "toe" or "foot"
as the slipper. The description of the slipper is "It is very small
for an adult woman's foot."

Code complet peut être trouvé ici.

C'est un petit exemple simple...il peut effectivement gérer un étonnamment solide ensemble d'idées.

Il convient de rappeler que le code n'est pas vraiment une étrange monogramme où les constructions ont les significations cachées...ce code n'est plus ou moins ce que vous attendez. Par exemple:

The old lady is a woman in the Stage. Understand "mother" or 
"stepmother" as the old lady.

crée un objet qui se trouve être une personne de sexe féminin, des noms d'objet "vieille dame", et places de l'objet dans la pièce objet appelé le "Stade". Puis deux alias ("mère" et "belle-mère" sont créés aussi les faire référence à la "vieille dame" de l'objet.

Bien sûr, comme le montrent les exemples deviennent de plus en plus complexes, nécessaires à sauter à travers des cerceaux deviennent plus complexes. L'anglais est, de par sa nature même, ambigu, alors que le code informatique est plus définitivement pas. Donc, nous n'aurons jamais d'un "mariage parfait".

43voto

Alex Fort Points 9961

Cela dépend des cercles dans lesquels vous jouez , mais LOLCODE pourrait être considéré comme un langage naturel;)

Exemple de boucle:

 HAI
    CAN HAS STDIO?
    I HAS A VAR
    IM IN YR LOOP
        UP VAR!!1
        VISIBLE VAR
        IZ VAR BIGGER THAN 10? KTHXBYE
    IM OUTTA YR LOOP
KTHXBYE
 

Sur une note plus sérieuse, VB est un langage assez naturel. Il est facile pour les types non-programmeurs d'apprendre, la syntaxe doit donc être assez facile à comprendre.

32voto

Galwegian Points 29966

Le langage utilisé par Richard Pryor pour transférer des millions de dollars dans Superman III était très proche:

 > TRANSFER $1,000,000 DOLLARS TO WEBSTER'S ACCOUNT.... NOW
 

;-)

EDIT: caractères corrigés ;-)

19voto

Josh Mein Points 12352

COBOL se lit beaucoup comme l'anglais

 000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID.     HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400     DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500     DISPLAY "Hello world!" LINE 15 POSITION 10.
100600     STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800     EXIT.
 

la source

19voto

Carl Seleborg Points 7748

Lisp (bien sûr (si vous voyez ce que je veux dire (LOL)))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X