(0) 阅读 (1127)

词缀语法 编辑

词条创建者 匿名用户

词缀语法

编辑

词缀语法是一种形式语法;它被用来描述语言的语法,主要是计算机语言,使用的方法是基于自然语言的典型描述方式。词缀语法的语法规则是无语境语法的规则,只是在非终结语中的某些部分(词缀)被用作论据。如果同一个词缀在一条规则中出现多次,它的值必须一致,也就是说,它必须在所有地方都一样。在某些类型的词缀语法中,词缀值之间可能存在更复杂的关系。

词缀语法的例子

编辑

我们可以用以下方式来描述一个极其简单的英语片段。句子→主语谓语主语→名词谓语→动词对象对象→名词名词→约翰名词→玛丽名词→孩子名词→父母动词→喜欢动词→喜欢动词→帮助动词→帮助这个无语境语法描述了一些简单的句子,如约翰喜欢孩子玛丽帮助约翰孩子帮助父母父母喜欢约翰有了更多的名词和动词,以及更多介绍其他语篇的规则,就可以描述很大范围的英语句子;所以这是一种描述英语语法的有前途的方法。然而,给定的语法也描述了诸如以下的句子约翰喜欢孩子,孩子帮助父母这些句子是错误的:在英语中,主语和动词有一个语法上的数字,必须一致。一个词缀语法可以直接表达这一点。句子→主语+数谓语+数主语+数→名词+数谓语+数→动词+数对象对象→名词+数名词+单数→约翰名词+单数→玛丽名词+复数→孩子名词+复数→父母动词+单数→喜欢动词+复数→喜欢动词+单数→帮助动词+复数→帮助这个语法只描述了正确的英语句子,尽管可以认为约翰喜欢约翰仍然是不正确的,应该改为约翰喜欢自己如果描述不同词缀值之间关系的手段足够强大,这一点也可以用词缀纳入。如上所述,这些手段取决于所选择的词缀语法的类型。

词缀语法的类型

编辑

在最简单的词缀语法类型中,词缀只能从有限的域中取值,而且词缀值只能通过约定来联系,就像例子中那样。以这种方式应用,词缀增加了语法的紧凑性,但没有增加表达能力。另一种方法是允许词缀以任意的字符串为值,并允许在规则中使用词缀的连接。词缀的可允许值的范围可以用无语境语法规则来描述。这就产生了两级语法的形式主义,也被称为VanWijngaarden语法或2VW语法。这些语法已被成功地用于描述复杂的语言,特别是Algol68编程语言的语法。然而,事实证明,即使词缀值只能用字符串连接来操作,这种形式主义也是图灵完全的;因此,即使是关于任意2VW语法所描述的语言的最基本问题,在一般情况下也是不可解的。20世纪80年代发展起来的扩展词缀语法是同一思想的一个更有限的版本。它们主要被用于描述自然语言的语法,例如英语。另一种可能性是允许用某种编程语言编写的代码来计算词缀的值。

词缀语法

有两种基本方法被使用。在属性语法中,词缀(称为属性)可以从任意领域取值(例如整数或实数,复杂的数据结构),并且可以指定任意的函数,用选择的语言编写,以描述规则中的词缀值是如何相互衍生的。在CDL(编译器描述语言)和它的后继者CDL2(开发于20世纪70年代)中,源代码的片段(通常是汇编语言)可以在规则中使用,而不是正常的右手边,允许直接表达输入扫描和词缀值计算的原语。作为实际编译器构建的基础,这种方法被用来编写编译器,以及其他软件,例如文本编辑器。


内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/163759/

发表评论

登录后才能评论

词条目录
  1. 词缀语法
  2. 词缀语法的例子
  3. 词缀语法的类型

轻触这里

关闭目录

目录