教案-编译原理详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:《编译原理》
课程性质:专业课(必修)
学时:48(理论教学)
教材:(1)编译原理.李劲华等编,复旦大学出版社,2007年
(2)编译原理(第2版)电子工业出版社,胡伦骏,骆婷编,2007年
1.课程班级:软件工程11级1班,2班,3班
教室:西教1—305
授课时间:1-12周,星期二 8,9节、星期四 1,2节
2.课程班级:计算机科学与技术11级1班,2班,3班,4班
教室:西教1—304
授课时间:1-12周,星期二3,4节、星期五 3,4节
授课教师:张永
考核方式:闭卷
总评成绩=平时成绩(20%) + 期末考试成绩(80%)
参考书
1. Compilers: Principles, Techniques and Tools (2nd Edition). Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Addison Wesley; 2006
2. 程序设计语言编译原理(第三版),陈火旺、刘春林等,2000年,国防工业出版社,2002年获国家级高等学校优秀教材一等奖。是国家“九五”重点建设教材。
3. 编译原理与技术,李文生,清华大学出版社,2008.7
3 程序语言的语法描述
几个概念:
考虑一个有穷字母表∑字符集
其中每一个元素称为一个字符
∑上的字(也叫字符串) 是指由∑中的字符所构成的一个有穷序列
不包含任何字符的序列称为空字,记为ε
用∑*表示∑上的所有字的全体,包含空字ε
3.1 上下文无关文法
文法:描述语言的语法结构的形式规则
He gave me a book.
<句子> <主语><谓语><间接宾语><直接宾语>
<主语> <代词>
<谓语> <动词>
<间接宾语> <代词>
<直接宾语> <冠词> <名词>
<代词> He
<代词> me
<名词> book
<冠词> a
<动词> gave
上下文无关文法的定义:
一个上下文无关文法G是一个四元式
G=(VT,VN,S,P),其中
VT:终结符集合(非空)
VN:非终结符集合(非空),且VT VN=
S:文法的开始符号,S VN
P:产生式集合(有限),每个产生式形式为
P , P VN, (VT VN)*
开始符S至少必须在某个产生式的左部出现一次。
最左推导:任何一步都是对中的最左非终结符进行替换。
最右推导:任何一步都是对中的最右非终结符进行替换。
3.2 语法树与二义性
用一张图表示一个句型的推导,称为语法树。
定义:如果一个文法存在某个句子对应两颗不同的语法树,则说这个文法是二义的
3.3 形式语言
Chomsky于1956年建立形式语言体系,他把文法分成四种类型:0,1,2,3型。
与上下文无关文法一样,它们都由四部分组成,但对产生式的限制有所不同。
作业:P30 8,9,10,11,12
算符优先文法及优先表构造
一个文法,如果它的任一产生式的右部都不含两个相继(并列)的非终结符,即不含如下形式的产生式右部:
…QR…
则我们称该文法为算符文法。
算符优先分析算法
可归约串,句型,短语,直接短语,句柄,规范归约。
一个文法G的句型的素短语是指这样一个短语,它至少含有一个终结符,并且,除它自身之外不再含任何更小的素短语。
最左素短语是指处于句型最左边的那个素短语。
优先函数
把每个终结符θ与两个自然数f(θ)与g(θ)相对应,使得
若θ1 θ2,则f(θ1) < g(θ2)
若θ1 θ2,则f(θ1) = g(θ2)
若θ1 θ2,则f(θ1) > g(θ2)
f称为入栈优先函数,g称为比较优先函数。
优点:便于比较,节省空间;
缺点:原来不存在优先关系的两个终结符,由于自然数相对应,变成可以比较的。要进行一些特殊的判断。
定义:假定α是文法G的一个句子,我们称序列
αn,αn-1,⋯,α0
是的一个规范归约,如果此序列满足:
1 αn= α
2 α0为文法的开始符号,即α0=S
3 对任何i,0 ≤ i ≤ n,αi-1是从αi经把句柄替换成为相应产生式左部符号而得到的。
P100 11,12