网站大量收购闲置独家精品文档,联系QQ:2885784924

编译原理第三章文法和语言.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 文法和语言 ;课前思考;学习目标;学习指南;难重点;知识结构;引言和预备知识;语法 任何语言程序都可以看成是一定字符集(字母表)上的字符串 语法使得这串字符形成一个形式上正确的程序 语法=词法规则+语法规则 例如:0.5*x1+c 0.5、x1、c、*、+是语言的单词符号 0.5*x1+c是语言的语法单位;词法 单词符号 语言中具有独立意义的最基本结构 词法规则 词法规则规定了字母表中哪些字符串是单词符号 单词符号一般包括:常数、标识符、基本字、算符、界限符等 我们用正规式和有限自动机理论来描述词法结构和进行词法分析;语法 单词符号 语法单位 表达式、子句、语句、函数、过程、程序 语法规则 规定了如何从单词符号来形成语法单位 现在多数程序语言使用上下文无关文法来描述语法规则 语言的词法规则和语法规则定义了程序的形式结构,是判断输入字符串是否构成???个形式上正确的程序的依据;例,对于一个PASCAL程序来说,一个上下文无关文法可以定义 A:=B+C 是合乎语法的, 而A:=B+ 是不合乎语法的。;语义 对于一个语言来说,不仅要给出它的词法、语法规则,而且要定义它的单词符号和语法单位的意义 离开语义,语言只是一堆符号的集合 各种语言中有形式上完全相同的语法单位,含义却不尽相同 对某种语言,可以定义一个程序的意义的一组规则称为语义规则 目前,大多数编译程序使用基于属性文法的语法制导翻译方法来分析语义;对于高级程序设计语言及其编译程序来说,语言的语法定义是很重要的。本章主要介绍语法结构的形式描述问题,编译原理的主要内容也可以归纳为应用形式语言理论,并将它贯穿于词法分析和语法分析两个阶段;*;*;*;句子:字母表上符合某种规则构成的串 语言:字母表上句子的集合 注:约定用a, b, c…表示符号;用?, ?, ?…表示符号串;用A, B, C表示其集合;*;符号串的方幂:设?是符号串,把?自身连接n次得到符号串?,即?=???…??,称为符号串?的方幂,写作?=?n。 符号串集合:若集合A中的一切元素都是某字母表上的符号串,则称A为字母表上的符号串集合。;两个符号串集合A和B的乘积(连接): AB={??|? A且? B} 注:1)串集的自身乘积称作串集的方幂 2)A0={?} 字母表V的n次方幂是字母表V上所有长度为n的串集;*;3.1 文法的直观概念;比如:“我是大学生。”是汉语的一个句子 汉语句子可以是由主语后随谓语而成,构成谓语的是动词和直接宾语 句子::=主语谓语 主语::=代词|名词 代词::= 我 | 你 | 他 名词::= 王明 | 大学生 | 工人 | 英语 谓语::=动词直接宾语 动词::= 是 | 学习 直接宾语::=代词|名词;一旦有了一组规则以后,我们可以按照如下方式用它们去推导或产生句子。我们开始去找::=左端的带有〈句子〉的规则并把它表示成::=右端的符号串 规则中的“::=”也常用“?”表示,含义是使用一条规则,代替=左边的某个符号,产生?右端的符号串。 注意∶文法中,描述某个特定的语法成分的规则可能不只一条。;得到句子“我是大学生”的全部动作过程是: 句子?主语谓语    ? 代词谓语    ?我谓语    ?我动词直接宾语    ?我是直接宾语    ?我是名词    ? 我是大学生;“我是大学生”的构成是符合上述规则 “我大学生是”不符合上述规则 这些规则成为我们判别句子结构合法与否的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里仅仅涉及汉语句子的结构描述。这样的语言描述称为文法。 ;3.3 文法和语言的形式定义;文法G定义为四元组(VN,VT,P,S) VN :非终结符集 VT :终结符集 P:产生式(规则)集合 S:开始符号(或识别符号) VN∩VT= φ, S∈VN V=VN∪VT,称为文法G的文法符号集合;句子的语法结构,可以用一组规则来描述。 规则也称为“重写规则”、“产生式”或“生成式”,是形如?→?或?::=?的(?,?)有序对,且?∈V+, ?∈V* ,V为某字母表。 ?称为规则的左部(或产生式的左部) ?称为规则的右部(或产生式的右部) 这里使用的符号→(::=)读作“定义为”;例3.1 文法G=(VN,VT,P,S) VN = { S }, VT ={ 0, 1 } P={ S→0S1, S→01 } S为开始符号;例3.2 文法G=(VN,VT,P,S) VN ={标识符,字母,数字} VT ={a,b,c,…x,y,z,0,1,…,9} P={标识符→字母 标识符→标识符字母 标识符→标识符数字

文档评论(0)

bokegood + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档