在语法的上下文中,自然语言和编程语言之间有什么区别?

时间:2017-08-10 05:36:14

标签: language-agnostic programming-languages

自然语言和编程语言在语法的背景下有什么区别?

1 个答案:

答案 0 :(得分:1)

自然语言更灵活。

此外,自然语言通常无法通过无上下文语法完全描述。例如,在英语中,"分别为"从句(以及其他一些结构)搞乱了语法。当然,neither C# nor Java are context-free either(虽然this article声称早期C#具有无上下文语法),但编程语言更有可能具有无上下文语法。

最大的区别在于,自然语言的语法都允许含糊不清,而编程语言经过精心设计以避免歧义。请考虑以下声明:

  凯文在公园里用望远镜看见约翰。

谁在使用望远镜 - 约翰还是凯文?他们中的哪一个在公园里 - 凯文,约翰还是望远镜?一些解释:

  • 望远镜在公园里。约翰正在使用它。凯文在他使用它的时候看到了约翰。
  • 约翰在公园里。凯文用望远镜在公园里看约翰。
  • 望远镜在公园里。凯文用它来看约翰。

编程语言经过精心设计,以避免您能够写下这样的句子。