为什么我们在计算机语言中使用术语语法而不是术语语法

时间:2014-10-14 22:20:57

标签: parsing language-agnostic

我在单词语法和语法之间感到困惑。是否有理由为计算机语言我们总是使用单词语法来描述单词顺序而不是单词语法?

2 个答案:

答案 0 :(得分:2)

术语"syntax""grammar"都来自语言学领域。在语言学中,语法是指构造句子的规则。语法指的是语言规则如何相互关联。

语法实际涵盖syntaxmorphologyphonology。形态学是如何修改单词以添加含义或上下文的规则。音韵是单词应该如何听起来的规则(反过来控制拼写在该语言中的作用)。

那么,程序员如何采用语言学概念?

如果你看一下与计算相关的真正旧论文和出版物,例如图灵关于可计算性的开创性工作(图灵机)甚至更老,巴贝奇的出版物描述了他的分析引擎和Ada Lovelace&#39关于编程的出版物,你会发现他们没有将计算机程序称为语言。相反,他们只是被称为指令,或者,如果你想得到花哨的算法。

部分,或许主要是诺姆乔姆斯基的作品将语言与编程相关联。

寻找一种研究语言的新方法以及如何从句子中提取意义乔姆斯基创造了Chomsky hierarchy的概念。他的想法是从最简单的系统开始,该系统可以处理一系列"东西" (声音,字母,单词):图灵机并将图灵机的指令分类为0型语法。然后他继续定义语法类型1,2和3(类型3是人类语言的语法,如英语或斯瓦希里语),希望当我们理解复杂性如何被引入时,我们最终会得到一个人类语言的解析器。

大多数编程语言都是类型2.事实上,我们已经以语言交换器和CPU设计的形式发现了类型0,1和2的解析器。

继承乔姆斯基的作品,我们已经定义了#34;语法"在计算中意味着如何安排符号来实现语言特征和#34;语法"表示语法规则的集合。

答案 1 :(得分:0)

因为一种语言只有一个"一个"语法(它将接受的字符串集),即使我们排除了琐碎的变体,也可能包含很多语法。

如果您考虑这个短语,这可能会更清楚,"语言语法允许东西"。此短语独立于可能用于描述语法的任何语法。