- 1、本文档共73页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 文法和语言 本章的目的是为语言的语法描述寻求工具 通过这个工具,可以达到以下目的: 工具要对源语言(程序设计语言)给出精确无二义的语法描述,要求严谨、简洁、易读 根据语言文法的特点来指导语法分析的过程。 从描述语言的文法可以自动构造出可用的语法分析程序。 制导语义翻译 文法的直观概念和语言概述 表述一种语言时,无非是说明这种语言的句子,如果语言只含有有穷多个句子,则只需列出句子的有穷集就行了,对于含有无穷句子的语言,存在着如何给出它的有穷表示的问题。 自然语言无法列出全部句子,但可以给出一些规则,用这些规则来说明(或者定义)句子的组成结构,用EBNF来表示这种句子的构成规则: EBNF表示句子的构成规则 〈句子〉∷=〈主语〉〈谓语〉 〈主语〉∷=〈代词〉|〈名词〉 〈代词〉∷=我|你|他 〈名词〉∷=王明|大学生|工人|英语 〈谓语〉∷=〈动词〉〈直接宾语〉 〈动词〉∷=是|学习 〈直接宾语〉∷=〈代词〉|〈名词〉 导出句子 首先去找∷=左端的带有〈句子〉的规则并把它由∷=右端的符号串代替,这个动作表示成: 〈句子〉 ? 〈主语〉〈谓语〉 然后在得到的串〈主语〉〈谓语〉中,选取〈主语〉或〈谓语〉,再用相应规则的∷=右端代替之。比如,选取了〈主语〉,并采用规则〈主语〉∷=〈代词〉, 那么得到:〈主语〉〈谓语〉 ? 〈代词〉〈谓语〉, 重复做下去,即可得到一个句子。 【例】句子:“我是大学生”的全部动作过程是: 〈句子〉 ? 〈主语〉〈谓语〉 ? 〈代词〉〈谓语〉 ?我〈谓语〉 ?我〈动词〉〈直接宾语〉 ? 我是〈直接宾语〉 ?我是〈名词〉 ?我是大学生 句子构成规则 “我是大学生”的构成符合上述规则,而“我大学生是”不符合上述规则。这些规则成为判别句子结构合法与否的依据,这些规则是一种元语言,用它描述汉语。这里仅仅涉及汉语句子的结构描述。其中一种起描述作用的元语言称为文法。 语言概述 语言是由句子组成的集合,是由一组符号所构成的集合。 汉语-所有符合汉语语法的句子的全体 英语-所有符合英语语法的句子的全体 程序设计语言-所有该语言的程序的全体 每个句子构成的规律 研究语言 每个句子的含义 每个句子和使用者的关系 语言概述 研究程序设计语言 每个程序构成的规律 每个程序的含义 每个程序和使用者的关系 语言研究的三个方面 语法(Syntax):表示构成语言句子的各个记号之间的组合规律 语义(Semantics):表示各个记号的特定含义。(各个记号和记号所表示的对象之间的关系) 语用(Pragmatics):表示在各个记号所出现的行为中,它们的来源、使用和影响。 语言概述 每种语言具有两个可识别的特性,即语言的形式和该形式相关联的意义。 语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看,其一是该句子的创立者所想要表示的意义,另一是接收者所检验到的意义。这两个意义并非总是一样的,前者称为语言的语义,后者是其语用意义。幽默、双关语和谜语就是利用这两方面意义间的差异。 形式语言 如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。 形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。 形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础。 语言的一般描述 程序设计语言是由一切程序所组成的集合,而程序是由保留字,字母和数字这样一些基本符号所组成,从字面上看,每个程序都是一个“基本符号”串,设有一基本符号集,那么程序设计语言可看成是在这个基本符号集上定义的、按一定规则构成的一切基本符号串组成的集合. 定义和记号 符号:可以相互区别的记号(元素)。字母是符号,数字也是符号。 字母表∑ :符号(元素)的非空有穷集合。因此字母表也称为符号集。 不同的语言可以有不同的字母表,例如汉语的字母表中包括汉字、数字及标点符号等。C语言的字母表是由字母、数字、若干专用符号。 定义和记号 符号串:由字母表中的符号组成的任何有穷序列称为符号串. 例如00 11 10 是字母表? ={0,1}上的符号串. 字母表A={a,b,c}上的一些符号串有:a,b,c,ab,aaca。 在符号串中,符号的顺序是很重要的,符号串ab就不同于ba,abca和aab
文档评论(0)