【发布时间】:2017-08-10 05:36:13
【问题描述】:
在语法的上下文中,自然语言和编程语言有什么区别?
【问题讨论】:
标签: language-agnostic programming-languages
在语法的上下文中,自然语言和编程语言有什么区别?
【问题讨论】:
标签: language-agnostic programming-languages
自然语言要灵活得多。
此外,自然语言通常不能用上下文无关语法完全描述。例如,在英语中,“reversely”从句(以及其他一些结构)会弄乱语法。诚然,neither C# nor Java are context-free either(尽管this article 声称早期 C# 有上下文无关语法),但编程语言更可能有上下文无关语法。
最大的区别是自然语言的语法都允许歧义,而编程语言经过精心设计以避免歧义。考虑以下语句:
凯文在公园里用望远镜看到了约翰。
谁在使用望远镜——约翰还是凯文?他们中的哪一个在公园里——凯文、约翰,还是望远镜?一些解释:
编程语言经过精心设计,可以避免您写下这样的句子。
【讨论】: