清华大学:《编译原理》课程教学资源_第四章 文法和语言

第四章文法和语言 为语言的语法描述寻求工具 工具要对程序设计语言给出精确无二义的语法描 述。(严谨、简洁、易读) 形式工具-“形式”是指这样的事实:语言的 所有规则只以什麽符号串能出现的方式来 陈述
1 第四章 文法和语言 为语言的语法描述寻求工具 工具要对程序设计语言给出精确无二义的语法描 述。(严谨、简洁、易读) 形式工具--“形式”是指这样的事实:语言的 所有规则只以什麽符号串能出现的方式来 陈述

本章内容 文法和语言的形式定义 文法的类型 上下文无关文法及其语法树 上下文无关文法的句型分析 有关文法实用中的一些说明
2 本章内容 文法和语言的形式定义 文法的类型 上下文无关文法及其语法树 上下文无关文法的句型分析 有关文法实用中的一些说明

文法和语言的形式定义 如何来描述一种语言? 如果语言是有穷的(只含有有穷多个句子),可以 将句子逐一列出来表示 如果语言是无穷的,找出语言的有穷表示。语言的 有穷表示有两个途经: 生成方式(文法):语言中的每个句子可以用严 格定义的规则来构造。 识别方式(自动机):用一个过程,当输入的一任 意串属于语言时,该过程经有限次计算后就会停止 并回答“是”,若不属于,要么能停止并回答“不 是”,要么永远继续下去
3 文法和语言的形式定义 如何来描述一种语言? 如果语言是有穷的(只含有有穷多个句子),可以 将句子逐一列出来表示 如果语言是无穷的,找出语言的有穷表示。语言的 有穷表示有两个途经: 生成方式 (文法):语言中的每个句子可以用严 格 定义的规则来构造。 识别方式(自动机):用一个过程,当输入的一任 意串属于语言时,该过程经有限次计算后就会停止 并回答“是” ,若不属于,要么能停止并回答“不 是” ,要么永远继续下去

文法即是生成方式描述语言的:语言中的 每个句子可以用严格定义的规则来构造 文法的定义 推导的概念 句型、句子和语言的定义
4 文法即是生成方式描述语言的:语言中的 每个句子可以用严格定义的规则来构造 文法的定义 推导的概念 句型、句子和语言的定义

文法定义 文法G定义为四元组(VN,V,P,S)其中 VR:非终结符号(或语法实体,或变量)集 Vr:终结符号集; P:规则的集合; V,V和P是非空有穷集 s:称作识别符号或开始符号的一个非终结符,它至 少要在一条产生式中作为左部出现。 Vn和V不含公共的元素,即Vn1∩V=中 用V表示VN∪V,称为文法G的字母表或字汇表 规则,也称重写规则、产生式或生成式,是形如 α→B或α:邛β的(α,β)有序对,其中α是字母表V 的正闭包V中的一个符号,β是V*中的一个符号 α称为规则的左部,β称作规则的右部
5 文法定义 文法G定义为四元组(VN,VT,P,S )其中 VN:非终结符号(或语法实体,或变量)集; VT:终结符号集; P: 规则的集合; VN,VT和P是 非空有穷集。 S:称作识别符号或开始符号的一个非终结符,它至 少要在一条产生式中作为左部出现。 VN和VT不含公共的元素,即VN ∩ VT = φ 用V表示VN ∪ VT ,称为文法G的字母表或字汇表 规则,也称重写规则、产生式或生成式,是形如 →或 ∷ =的( ,)有序对,其中是字母表V 的正闭包V+中的一个符号,是V*中的一个符号。 称为规则的左部, 称作规则的右部

文法的定义 例文法G=(VN,Vr,P,S) vN={S}V={01 P={s→0s1,S→01} s为开始符号
6 文法的定义 例 文法G=(VN,VT,P,S) VN = { S }, VT ={ 0, 1 } P={ S→0S1, S→01 } S为开始符号

例文法G=(VA,Vr,P,S) VN={标识符,字母,数字 v={abcr…xyz,01…9} P={→ →≤标识符> →≤标识符> →a →z →0 →9 S=
例 文法G=(VN,VT,P,S) VN ={标识符,字母,数字} VT ={a,b,c,…x,y,z,0,1,…,9} P={→ → → →a … →z →0 … →9 } S=

文法的写法元符号:→∷=|< 习惯大写字母表示非终结符小写字母表示终结符 (1)G:S→aAb (2)G[S]:A→ab A→ab A→aAb A→aAb A A→ε S→aSb (3)G[S]:A→ab|aAb S→aSb
8 文法的写法 元符号: → ∷= | 习惯 大写字母表示非终结符 小写字母表示终结符 (1) G:S→aAb A→ab A→aAb A→ε (2) G[S]: A→ab A→aAb A→ε S→aSb (3) G[S]:A→ab |aAb |ε S→aSb

推导的定义 直接推导“→” a→β是文法G的产生式,若有v,w满足: v=γa8,w=yβδ,其中γ∈V,δ∈V 则称v直接推导到w,记作ⅴ→W 也称w直接归约到v 例:G:S→0S1,S→01 0s1→00S1l 00s11→000S11l 000S11l→000011ll S→0S1
9 推导的定义 直接推导“” α→β是文法G的产生式,若有v,w满足: v=γαδ,w= γβδ, 其中γ∈V* ,δ∈V* 则称v直接推导到w,记作 v w 也称w直接归约到v 例:G: S→0S1, S→01 0S1 00S11 00S11 000S111 000S111 00001111 S 0S1

推导 → (→) → (→) VAR BEGIN READI()END.→ VARA; BEGIN READ()END (标识符>→A) VARA; BEGIN READ()END VAR A; BEGIN READ(A) END. (→A)
10 推导 . ( . ) . . ( ) VAR;BEGIN READ()END. VAR A;BEGIN READ( ) END. ( A) VAR A;BEGIN READ( ) END. VAR A;BEGIN READ( A) END. ( A)
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《编译原理》课程教学资源_第三章 词法分析及其自动构造.ppt
- 清华大学:《编译原理》课程教学资源_第三章 练习题.doc
- 西安电子科技大学:《新编计算机应用基础》教材电子教案(PPT教学课件)第七章 Internet操作基础.ppt
- 西安电子科技大学:《新编计算机应用基础》教材电子教案(PPT教学课件)第六章 计算机网络基础.ppt
- 西安电子科技大学:《新编计算机应用基础》教材电子教案(PPT教学课件)第五章 PowerPoint 2000的基本操作.ppt
- 西安电子科技大学:《新编计算机应用基础》教材电子教案(PPT教学课件)第四章 中文Excel 2000基本操作.ppt
- 西安电子科技大学:《新编计算机应用基础》教材电子教案(PPT教学课件)第三章 中文字表处理软件.ppt
- 西安电子科技大学:《新编计算机应用基础》教材电子教案(PPT教学课件)第二章 操作系统的功能和使用.ppt
- 西安电子科技大学:《新编计算机应用基础》教材电子教案(PPT教学课件)第一章 计算机基础知识.ppt
- 西安电子科技大学:《新编计算机应用基础》教材电子教案(PPT教学课件)目录.ppt
- 西安电子科技大学:《C语言程序设计实例教程》电子课件(共十三章).ppt
- 《MATLAB教程》教学资源(讲义)第四章 MATLAB的数值计算功能 Numerical computation of MATLAB.doc
- 《MATLAB教程》教学资源(讲义)第六章 图形处理功能 The function of Image processing.doc
- 《MATLAB教程》教学资源(讲义)第八章 MATLAB的GUI程序设计 Design of MATLAB of GUI program.doc
- 《MATLAB教程》教学资源(讲义)第五章 符号数学基础 Foundation of Symbolic Mathematics.doc
- 《MATLAB教程》教学资源(讲义)第三章 MATLAB程序设计基础 Foundation of MATLAB program design.doc
- 《MATLAB教程》教学资源(讲义)第七章 Simulink 基础 Introduction to Simulink.doc
- 《MATLAB教程》教学资源(讲义)第一、二章 MATLAB入门 Introduction to MATLAB.doc
- 《UG NX 基础教程》 第十章 文件管理.ppt
- 《UG NX 基础教程》 第九章 多轴铣削.ppt
- 清华大学:《编译原理》课程教学资源_第七章 语法制导翻译和中间代码生成(7-1)语法制导翻译和中间代码生成.ppt
- 清华大学:《编译原理》课程教学资源_第七章 语法制导翻译和中间代码生成(7-2)理论要点.doc
- 清华大学:《编译原理》课程教学资源_第七章 语法制导翻译和中间代码生成(7-2)续 要点.doc
- 清华大学:《编译原理》课程教学资源_第七章 语法制导翻译和中间代码生成(7-3)中间代码生成.ppt
- 清华大学:《编译原理》课程教学资源_第七章 语法制导翻译和中间代码生成(7-4)符号表.ppt
- 清华大学:《编译原理》课程教学资源_第八章 目标程序运行时的组织.ppt
- 清华大学:《编译原理》课程教学资源_第一章 概述.ppt
- 清华大学:《编译原理》课程教学资源_第十章 代码生成.ppt
- 清华大学:《编译原理》课程教学资源_第二章 PL/0编译程序.ppt
- 清华大学:《编译原理》课程教学资源_第五章 LL(1)文法及其分析程序.ppt
- 清华大学:《编译原理》课程教学资源_第九章 代码优化.ppt
- 清华大学:《编译原理》课程教学资源_第六章 LR分析 6.4 LR(1)和LALR(1)分析规范LR分析.ppt
- 清华大学:《编译原理》课程教学资源_第六章 LR分析 6.1 概述 自下而上的语法分析 LR分析器 6.2 LR(0)分析.ppt
- 清华大学:《编译原理》课程教学资源_第六章 LR分析 6.3 SLR(1)分析技术.ppt
- 清华大学:《编译原理》课程教学资源_第六章 补充算符优先分析.ppt
- 清华大学:《编译原理》课程教学资源_总结.ppt
- 清华大学:《编译原理》课程教学资源_语法分析.ppt
- 《计算机组成原理》课程教学资源:期未复习指导.ppt
- 《计算机组成原理》课程教学资源:直播课堂内容.ppt
- 《计算机组成原理》课程教学资源:控制器教学实验.ppt