编译原理第三章
更新时间:2023-08-28 00:55:01 阅读量: 教育文库 文档下载
第三章 文法和语言
3.1 3.2 3.3 3.4 3.5 3.6 3.7
文法的直观概念 符号和符号串 文法和语言的形式定义 文法的类型 上下文无关文法及其语法树 句型的分析 有关文法实用中的一些说明
第三章 文法和语言
程序设计语言与自然语言一样,完整的定义包括语法和 语义两个方面。 所谓语法是指一组规则,用它可以形成和产生一个合适 的程序。 语法只是定义什么样的符号序列是合法的,与符号的含 义无关。 语义有两种类型:静态语义是一系列限定规则,确定哪 些合乎语法的程序是合适的;动态语义也称运行语义或 执行语义,表明程序要做些什么?要计算什么。 文法是阐明语法的一种工具,描述语法的规则。
3.1 文法的直观概念
语法是用来描述语言的组成规则。语句是组成语 言的基本元素。而组成语言的语句往往是无穷列 举的,这时就要给出一些规则来描述句子的组成 结构。 构成语句的组织规则就是语法的表现。而这种规 则或者说这种语言的描述就是文法。 使用文法工具,不仅为了严格地定义句子的结构, 也是为了用适当条数的规则把语言的全部句子描 述出来,是以有穷的集合刻画无穷的集合的工具。
以自然语言为例,人们无法列出全部句子,但 是人们可以给出一些规则,用这些规则来说明 (或者定义)句子的组成结构,比如汉语句子可 以是由主语后随谓语而成,构成谓语的是动词 和直接宾语。“我是大学生”。是汉语的一个 句子 〈句子〉∷=〈主语〉〈谓语〉 〈主语〉∷=〈代词〉|〈名词〉 〈代词〉∷=我|你|他
〈名词〉∷=王明|大学生|工人|英语 〈谓语〉∷=〈动词〉〈直接宾语〉 〈动词〉∷=是|学习
〈直接宾语〉∷=〈代词〉|〈名词〉
有了一组规则以后,按照如下方式用它们导出句子:开始 去找∷=左端的带有〈句子〉的规则并把它由∷=右端的符 号串代替,这个动作表示成: 〈句子〉 〈主语〉〈谓语〉, 然后在得到的串〈主语〉〈谓语〉中,选取〈主语〉或 〈谓语〉,再用相应规则的∷=右端代替之。 句子:“我是大学生”的全部动作过程是: 〈句子〉 〈主语〉〈谓语〉 〈代词〉〈谓语〉 我〈谓语〉 我〈动词〉〈直接宾语〉 我是〈直接宾 语〉 我是〈名词〉 我是大学生“我是大学生”的构成符合上述规则,而“我大学生是” 不符合上述规则,我们说它不是句子。这些规则成为我们 判别句子结构合法与否的依据,换句话说,这些规则看成 是一种元语言,用它描述汉语。这里仅仅涉及汉
语句子的 结构描述。其中一种描述元语言称为文法。
3.2 符号和符号串
程序设计语言的表达方式就是一个一个的程序。而程序 又是由一个个指令语句组成。语句又是由数字和字母这 样一些基本符号所组成。 程序设计语言可以看成是在基本符号集上定义的,按照 一定规则构成的一切基本符号串组成的集合。 字母表:是元素的非空有穷集合,这里所指的元素就是 符号。不同的语言可以有不同的字母表。 符号串:由字母表中的符号组成的任何有穷序列称为符 号串。 符号串涉及的有关概念有:符号的顺序、符号串的长度、 空符号串、符号串的头尾、符号串的省略写法、符号串 的连接、符号串的幂、符号串的集合。
符号串集合:若集合A中所有元素都是某字母表 上的符 号串,则称A为字母表 上的符号串集合。 两个符号串集合A和B的乘积定义为AB = xy|x A且y B 。 若集合A= ab,cde ,B= 0,1 ,则 AB= ab1,ab0,cde0,cde1 。 使用 * 表示 上的一切符号串(包括ε )组成的集合。 Σ *称为Σ 的闭包。 上的除ε 外的所有符号串组成的集合记为 + 。Σ +称为 Σ 的正闭包。 例:Σ ={a,b} Σ *={ε ,a,b,aa,ab,ba,bb,aaa, } Σ +={a,b,aa,ab,ba,bb,aaa,aab, }
指定字母表Σ, Σ*表示Σ上的所有有穷长 的串的集合。 Σ={0,1} Σ* ={ε,0,1,00,01,10, 11,000,001,010,…} Σ*= Σ0U Σ1U Σ2 U … U Σ n U … Σ*称为集合Σ的闭包: 正闭包:Σ+= Σ1U Σ2 U … U Σ n U … Σ*= Σ0U Σ+ Σ+ = Σ Σ*= Σ* Σ
目标是用有穷的规则描述无穷的语言
3.3文法和语言的形式定义
如何来描述一种语言? 如果语言是有穷的(只含有有穷多个句子),可以将 句子逐一列出来表示 如果语言是无穷的,找出语言的有穷表示。语言的有 穷表示有两个途经: 生成方式
(文法):语言中的每个句子可以用严格定义的规 则来构造。 识别方式(自动机):用一个过程,当输入的一任意串属于语 言时,该过程经有限次计算后就会停止并回答“是”,若不属 于,要麽能停止并回答“不是”,(要麽永远继续下去。)
3.3文法和语言的形式定义 规则(也称重写规则、产生式或生成
式):是形如α →β 或α ::=β 的 (α ,β )有序对,其中α 为字母表的 正闭包中的符号, β 为字母表的闭 包中的符号,α 称为规则的左部, β 称为规则的右部。 规则是文法的核心。
3.3 文法和语言的形式定义
所谓的形式定义就是用符号串来描述文法规则 的表述。 形式定义1:文法G定义为四元组(VN,VT,P, S)。其中, VN为非终结符号(或语法
实体,或变量)集; VT为终结符号集; P为产生式(也称规则)的集合; (VN,VT和P是非空有穷集。) S称做识别符号或开始符号,它是一个非终结符,至
少要在一条规则中作为左部出现。 VN和VT不含公共的元素,即VN VT= 。通常用V表 示VN VT,V称为文法G的字母表或字汇表。
例文法G =(VN,VT,P,S),其中 VN ={S} VT ={0,1} P ={S 0S1, S 01} 可见该文法中非终结符中只含一个符号S, 终结符中含两个符号0和1,由两个产生式,开 始符号是S.
例 文法G=(VN,VT,P,S) VN ={标识符,字母,数字} VT ={a,b,c,…x,y,z,0,1,…,9} P={<标识符>→<字母> <标识符>→<标识符><字母> <标识符>→<标识符><数字> <字母>→a,…, <字母>→z <数字>→0,…, <数字>→9 } S=<标识符>
很多时候不用将文法的四元组显式地表 示出来,而只将产生式写出。 一般约定:第一条产生式的左部是识别 符号;用尖括号括起来的是非终结符 号;不用尖括号括起来的是终结符号。 或者用大写字母表示非终结符号,小 写字母表示终结符号。 如:G: S 0S1 S 01
文法的写法 1 G:S→aAb A→ab A→aAb A→ε 2 G[S]:S→aAb A→ab A→aAb 3 G[S]:S→aAb A→ab |aAb |ε
A→ε
3.3 文法和语言的形式定义
为定义文法所产生的语言,引入推导概念。 形式定义2:如 是文法G=(VN,VT,P,S)的规则 (或说是P中的一产生式), 和 是V*中的任意符号,若有 符号串v,w满足: v= ,w= 。则说v(应用 规则 )直接产生w,或说w是v的直接推导,或者说 w直接规约到v,记作: v w。 形式定义3:如果存在直接推导的序列: v =w0 w1 w2… wn=w(w>0) 则称v推导出(产生) w(推导长 + 度为 n),或称w规约到v。记作v w + * 形式定义4:若有v w,或v w,则记作: v w
推导的举例例:G: S→0S1, S→01 S 0S1 00S11 00S11 000S111 000S111 00001111 S 0S1<程序> <分程序>. <分程序>. <变量说明部分>
<语句>.
VAR<标识符>;BEGIN READ(<标识符>)END. VAR A;BEGIN READ(<标识符> ) END.
例:G: S→0S1, S→010S1 00S11 00S11 000S111 000S111 00001111
S 0S1 00S11 000S111 00001111 S =>+ 00001111 S =>* S 00S11 =>* 00S11
一定是从文法开始符号出发进行推导
3.3 文法和语言的形式定义
形式定义5:设G[S]是一文法,如果符号串 x是 * 从识别符号推导出来的,即有S x,则称x是文 法G[S]的句型。 * 若x仅由终结符号组成,即S x,x V*T,则称x 为G[S]的句子。
例:G: S→0S1, S→01 S 0S1 00S11 000S111 00001111 G的句型S,0S1 ,00S11 ,000S111,00001111 G的句子00001111, 01
正在阅读:
编译原理第三章08-28
天然药物化学的试题4-6章11-28
计算机一级选择题(1-4章)06-09
北京第二外国语学院翻硕考研复习方法简介09-09
幼儿园安全工作自查报告12-28
学游泳记作文500字06-28
毕业论文 论张爱玲小说的意象艺术特色11-27
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 编译
- 原理
- 第三章
- 美国大学生数学建模竞赛2013 获奖论文
- 主流搜索引擎网站免费登录入口
- 人教版四年级上册语文词语盘点、日积月累
- 英语三级作文模板
- 我的理想人生
- 脱硫真空皮带机使用说明书
- 2020广东专插本管理学大纲考试重点笔记(周三多第四版)
- 2013年人口政策与房地产行业分析报告
- 示范乡镇卫生院评审细则
- ch1-3晶体三极管
- 大学语文C2012秋冬学期离线作业(1)
- 2015-2020年中国维修房屋市场行情动态及发展前景报告
- 货物贸易进口付汇操作指引企业版(外汇管理局)
- 品牌低成本传播策略之价值分享策略
- 政府网站建设方案
- 旅游资源单体调查表
- CH07 Compensation System(人力资源管理-南京大学,赵署明)
- 控件命名规则
- 机械《电工电子技术》教学大纲
- 血清白蛋白的分离纯化及鉴定