2017-08-10 11 views

Répondre

1

Les langages naturels sont considérablement plus flexibles.

De même, les langages naturels ne peuvent souvent pas être entièrement décrits par une grammaire sans contexte. Par exemple, en anglais, les clauses "respectivement" (avec quelques autres constructions) gâchent la grammaire. Accordé, neither C# nor Java are context-free either (bien que this article prétend avoir une grammaire sans contexte pour C# début), mais les langages de programmation sont beaucoup plus susceptibles d'avoir une grammaire sans contexte.

La plus grande différence est que les grammaires des langages naturels permettent toutes l'ambiguïté alors que les langages de programmation ont été soigneusement conçus pour éviter toute ambiguïté. Considérez la déclaration suivante:

Kevin a vu John avec le télescope dans le parc.

Qui utilisait le télescope - John ou Kevin? Et lequel d'entre eux était dans le parc - Kevin, John, ou le télescope? Quelques interprétations:

  • Le télescope était dans le parc. John l'utilisait. Kevin a vu John là pendant qu'il l'utilisait.
  • John était dans le parc. Kevin a utilisé le télescope pour regarder John au parc.
  • Le télescope était dans le parc. Kevin l'a utilisé pour voir John.
  • Etc

Les langages de programmation sont soigneusement conçus pour vous éviter d'être en mesure d'écrire des phrases comme ça.