2.1.2 语法

每一个学习过外语的人都知道,语法就是一本充满规则和教会人们这门语言的示例的书。好的语法总是会仔细区分“句子/单词”和“单词/字母”的层级,前者通常被称为句法或句法集,后者通常被称为词法。句法包括一些规则,就像“pour que是虚拟语气,而parce que就不是”。词法也包括了一些规则比如“英文名词的复数形式一般词尾追加-s,除了单词本来就以-s.-sh,-o,-ch或-x结尾,这些单词为不规则复数形式,结尾追加-es”。

我们暂时先跳过计算机科学家看待语法的视线,先看看形式语言学家(formal-linguist)眼中的语法。形式语言学家的观点是抽象的同时又和外行的看法很相似:语法是任何语言的确定的、有限大小的、完整的描述,即句子的集合。这实际上是学院派的语法,只是去掉了其中的模糊性。虽然很明显这一定义具有充分的通用性,但却又太过笼统以至于显得很无力。它包括一些描述像“可能是乔叟写的一组句子”;柏拉图谈到这定义了一个集合,但是我们却没有办法创建这个集合或度量一个句子是否属于这种语言。这这个特定的例子, 即使它“曾经能让人困扰”也并不会令形式语言学家困扰, 但是有更接近他家的例子会。“π的超长的小数部分是一个最长的块”描述了一种语言,这种语言最多只有一个单词(这个单词就是乱七八糟的数字),而且很符合定义说的精确、有限大小并且完备。然而又有一个问题,那就是没人知道这个词完整的样子:假设即便有一个人找到了一堆长度为数十亿的数字,在这后面却任然还有着数不尽的数字。另一个问题就是,我们还根本无法知道这么长的数字是不是真的存在。很可能就是一个人在不停的发现π的小数,另一个人却发现了越来越长的小数仍然没有被找到。关于π的小数的全面展开理论也许能解释这些问题,不过目前这个理论还不存在。

因为一些这样或那样的原因,形式语言学家们放弃了他们静止的柏拉图式的观点,转而接受了另一个更有建设意义的,衍生语法:衍生语法是语言中构建句子的准确且固定大小的诀窍。这意味着,使用这个语法就一定可以构建语言(动作数量有限)中的句子,而不会有其他的可能。这并不是说,给一个句子,语法就能让我们知道这个句子是如何构造的,只是说我们可以通过语法来知道。这些语法可能有几种形式,其中有一些会比其他更具便捷性。

计算机科学家们通常会赞同这个的观点,而且还有一个附加的要求就是衍生语法应该隐含一句话是如何构造的。