第三章 词法分析,第三章 词法分析,编译程序首先是在单词级别上来分析和翻译源程序的。词法分析的任务是:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。因此,词法分析是编译的基础。执行词法分析的程序称为词法分析器。 3。1 对词法分析器的要求3
编译原理重点3Tag内容描述:
1、第三章 词法分析,第三章 词法分析,编译程序首先是在单词级别上来分析和翻译源程序的。词法分析的任务是:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。因此,词法分析是编译的基础。执行词法分析的程序称为词法分析器。 3。1 对词法分析器的要求3.1.1 词法分析器功能和输出形式输入源程序,输出单词符号。程序语言的单词符号一般分为五种:关键字,标识符,常数,运算符,界符,第三章 词法分析,词法分析器输出的单词符号常常表示为二元式:(单词种别,单词符号的属性值。
2、,Chapter3 词法分析,3.1 词法分析器的设计,3.2 正则文法与状态转换图,3.3 正规表达式与有限自动机,3.4 词法分析器的自动生成,词法分析的主要工作: 从源程序的第一个字符开始,从左到右扫描源程序, 一次读一个字符,根据词法规则将有关字符组合成单词, 并识别各类单词,当确定单词类别后,将单词输出。,在词法分析过程中还要完成其它任务,如:,过滤掉源程序中的注释和空白;,记录读入字符的行号,以便发现错误后能报告出错位置;,进行预编译工作(对宏进行展开等工作);,符号表操作。,错误处理等。,词法分析与语法分析的接口方式:,(1)。
3、编 译 原 理,长春理工大学,2019年7月,与课程有关的问题, 时间安排: 讲课:32学时 实验:16学时,参考书 :程序设计语言编译原理,陈火旺等,第三版,国防工业出版社计算机编译原理 ,第二版,张幸儿,科学出版社 编译程序原理与技术,李赣生、王华民,清华大学出版社,作业:视所讲内容布置1-2道习题,成绩 :以考试为主,参考平时成绩(作业、实验等),与课程有关的问题,本课程的性质、目的和任务 :本课程是计算机类专业的专业课,目的是使学生了解并掌握编译程序的基本理论和方法,具有分析和实现编译程序的初步能力。,本课程的基本要求 :。
4、3.5 LR分析器,LR(k):L表示从左至右扫描输入串,R表示构造一个最右推导的逆过程,k指的是在决定语法分析动作时需要向前看的符号个数。 LR分析法的缺点:手工实现工作量大 构造LR分析表的方法 简单LR方法(SLR) 规范的LR方法 向前搜索的LR文法(LALR) 描述能力:规范LRLALRSLR 实现代价:规范LRLALRSLR,3.5.1 LR分析算法,LR分析 程 序,LR分析器模型,栈,语法分析表,分析表构成:动作表(action)和转向表(goto) 注:Si表示状态, ai表示终结符,Ai表示非终结符。,action goto,actions,a规定了状态s面临输入符号a时应该采取什么动作: 移进:。
5、3.2 语言和文法 文法为语言给出了精确的、易于理解的语法说明 对于某些文法类,可以自动产生高效的分析器 如果文法设计得恰当,则它赋予语言的结构对于源程序翻译成正确的目标代码和对于错误诊断都是有用的 语言也是逐步完善的,增加新构造以完成新任务的情况时有发生。如果存在以文法为基础的语言的实现,语言新构造的加入就显得方便 文法能够描述程序设计语言的大部分语法成分,但不能描述程序设计语言的全部语法成分 3.2.1正规式和上下文无关文法的比较 正规表达式所描述的每一种结构都可以用上下文无关文法来描述 例如描述正规表达式 。
6、第3章 词法分析,本章介绍编译第一个阶段词法分析的设计原理和设计方法,要求明确此阶段的任务。 理解通常的单词分类和构词规则。 会使用单词的描述和识别机制。 要求掌握正规文法、状态图、DFA、NFA、正规式和正规集的基本概念和它们之间的关系。 掌握词法分析程序的手工实现方法。,教学目标,3.1 有穷自动机 3.2 正规式正规文法和正规集 3.3 正规文法与有穷自动机 3.4 正规式与DFA 3.5 DFA的化简3.6 3.7 3.8 词法分析器的构造,教学内容,S.P,O.P,(1)分析和识别单词及属性,包括识别语言的关键字、标识符、常数、运算符等; (2)跳过各种。
7、第三章 词法分析,上海电力学院 彭 源,本章学习内容,内容: 掌握:词法分析程序的构造,正规式、正规文法、有限自动机之间的转换,NFA到DFA的转换、DFA的化简理解:正规文法、正规式、DFA的概念、NFA的概念,词法分析程序的设计,词法分析程序,词法分析是编译过程中的第一个阶段,在语法分析前进行 ,也可以和语法分析结合在一起作为一遍。词法分析程序的功能: 读入源程序字符串,识别开具有独立含义的最小语法单位单词,词法分析程序,输出的单词符号通常用二元式表示: (单词种别,单词符号的属性值)单词种别:通常用整数编码。如何分种,。
8、编 译 原 理,第四章 词法分析,4.1 词法分析程序的设计,4.2 单词的描述工具,4.3 有穷自动机,4.4 正规式和有穷自动机的等价性,4.5 正规文法和有穷自动机的等价性,4.6 词法分析程序的自动构造工具,4.7 典型例题及解答,知识结构,词法分析,自动构造工具,正规集,正规式,有穷自动机(NFA DFA),正规文法,知识结构,第四章 词法分析,4.1 词法分析程序的设计,主要任务:读源程序,产生单词符号 其他任务: 滤掉空格,跳过注释、换行符 追踪换行标志,复制出错源程序, 宏展开,,一.词法分析程序与语法分析程序的接口方式,词法分析工作可以是独立的一。
9、编译原理,0,第3章 词法分析,词法分析程序又称扫描器,是编译过程的第一步,是下一步进行语法分析的基础。词法分析的任务:从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位“单词”,并将其转化为内部编码形式。删除无用的空白字符和回车字符以及其他非实质性字符。删除注释。进行词法检查,报告所发现的错误。,编译原理,1,3.1设计扫描器时应考虑的几个问题,3.1.1词法分析阶段的必要性对于一个程序设计语言来说,关键字、 标志符、常数、运算符及分隔符都是单词。它们的单词结构(即词法)也是用相应文法中的若干个产生式来描述。
10、1,第三章 文法和语言,本章目的为语言的语法描述寻求工具 工具要对程序设计语言给出精确无二义的语法描述。(严谨、简洁、易读) 形式工具-形式语言,抽象地定义为一个数学系统,用数学符号和规则来描述语言。(“形式”是指这样的事实:语言的所有规则只以什么符号串能出现的方式来陈述。),2,本章内容,关于语言 符号和符号串 文法和语言的形式定义 文法的类型 上下文无关文法及其语法树 上下文无关文法的句型分析 有关文法实用中的一些说明,3,3.1 关于语言,语言是由句子组成的集合,是由一组符号所构成的集合。 汉语-所有符合汉语语法的。
11、编译原理,0,第3章 词法分析,词法分析程序又称扫描器,是编译过程的第一步,是下一步进行语法分析的基础。词法分析的任务: 从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位“单词”,并将其转化为内部编码形式。 删除无用的空白字符和回车字符以及其他非实质性字符。 删除注释。 进行词法检查,报告所发现的错误。,编译原理,1,3.1设计扫描器时应考虑的几个问题,3.1.1词法分析阶段的必要性 对于一个程序设计语言来说,关键字、 标志符、常数、运算符及分隔符都是单词。它们的单词结构(即词法)也是用相应文法中的若干个产生式。
12、北京交通大学 于双元,1,3.3 有限自动机(FA),3.3.1 确定的有限自动机(DFA),一个DFA有以下五个元素组成:,DFA M=(K,f,S0,Z),其中,K:,状态的集合(有限个状态),:,允许输入的字符的集合,Vt,f:,状态转换函数,,单值函数KK,S0:,初始状态,S0K,Z:,终止状态集,Z K,f(Si,a)=Sj,北京交通大学 于双元,2,讨论:,(1),确定性,f是单值函数,从某一状态读一字符的下一状态唯一确定,有限的,K集合元素个数有限,(2) f 定义的推广,f单值函数KK,K*K,*=+,记为,(S, ),=S,(S,a),=(f(S,a), ),a, *,f(S,a)=Sk,=(Sk, ),=St,St K, :K*K 单值映射,北京交通大。
13、编译原理(第三版) 陈火旺等编著,(2012年9月-12月)主讲:朱世松 计算机学院,2,2019/6/10,3.3.4 正规文法与有限自动机的等价性,对于正规文法G和有限自动机M,如果L(G)L(M),则称G和M是等价的。关于正规文法和有限自动机的等价性,有以下结论:,3,2019/6/10,定理:1.对每一个右线性正规文法G或左线性正规文法G,都存在一个有限自动机(FA) M,使得L(M)L(G)。2.对每一个FA M,都存在一个右线性正规文法GR和左线性正规文法GL,使得L(M)L(GR)L(GL)。,4,2019/6/10,证明: 1. 对每一个右线性正规文法G或左线性正规文法G,都构造一个有限自动机(F。
14、第3章 有穷自动机,编译原理 陈炬桦 isscjhmail,sysu.edu.cn,有穷自动机的形式定义,定义3.1 一个确定型有穷自动机DFA是一个五元组DFA=(Q , , t, q0, F)Q:非空有穷状态集;:有穷输入字母表;t:是一个单值映射 q0:开始状态, q0QF:非空终止状态集,DFA状态转换(左表)图,有穷自动机的扩充的映射,定义 3.2 DFA=(Q , , t, q0, F)扩充的映射t: 定义为 t(q,)=q t(q,a)= t(t(q,a),)定义 3.3 DFA=(Q , , t, q0, F),如果 t(q0,)=qF,称为DFA接收。定义 3.4 两个有穷自动机A1和A2,如果L(A1)=L(A2),则称自动机A1与A2等价。,非确定型有穷。
15、编译原理习题课(3),栾 俊 luanjmail.ustc.edu.cn 6/7/2019,2019/6/7,luanjmail.ustc.edu.cn,2,3.8(a),(a) 消除3.1的左递归 (b) 在(a)的基础上构造LL(1)分析表,2019/6/7,luanjmail.ustc.edu.cn,3,3.8(a) (续),S - (L)|a L - L,S|S 只有直接左递归 S - (L)|a L - SL L- ,SL|,2019/6/7,luanjmail.ustc.edu.cn,4,3.8(b) (续),S - (L)|a L - SL L- ,SL| FIRST(S) = (, a FIRST(L) = FIRST(S) = (, a FIRST(L) = , FOLLOW(S) = (FIRST(L)-) + FOLLOW(L) + FOLLOW(L) + $ = , ), $ FOLLOW(L) = ) FOLLOW(L) = FOLLOW(L) = ),$,2019/6/7,luanj。
16、,第一章 绪 论 第二章 词 法 分 析 第三章 语 法 分 析,第一章 绪 论 1.1 完成下列选择题: (1) 下面叙述中正确的是 。 A编译程序是将高级语言程序翻译成等价的机器语言程序的程序 B机器语言因其使用过于困难,所以现在计算机根本不使用机器语言 C汇编语言是计算机唯一能够直接识别并接受的语言 D高级语言接近人们的自然语言,但其依赖具体机器的特性是无法改变的,(2) 将编译过程分成若干“遍”是为了 。 A提高程序的执行效率 B使程序的结构更加清晰 C利用有限的机器内存并提高机器的执行效率 D利用有限的机器内存但降低了机器的执行效率 。
17、1,第九章 符 号 表,广东工业大学计算机学院,广东工业大学计算机学院,LOGO,2,引言,符号表作为编译系统的重要设施,贯穿于文法分析、检查和语义处理的编译全过程。在编译程序中符号表用来存放源程序中出现的有关名字的属性信息,这些信息集中反映了名字的语义特征属性。符号表总体结构的设计和实现下列因素有关: 源语言的复杂性(包括词法结构、语法结构的复杂性)对于编译系统在时间效率和空间效率方面的要求,广东工业大学计算机学院,LOGO,3,Contents,知识结构,广东工业大学计算机学院,LOGO,4,本课内容,9.1 符号表的作用和地位9.2 符号的。
18、2007年9月 湖北大学数计学院计科系 第3章有穷自动机 自动机是一种能进行运算并能实现自我控制的装置 是描述符号串处理的强有力的工具 本章介绍有关有穷自动机的基本概念和理论以及正规文法 正规表达式和有穷自动机之间的相互关系 Compile。
19、第三章 有穷自动机,要点:1. DFA和NFA的定义2. NFADFA的转换;3. DFA的化简4. 正规文法、正规式、有穷自动机之间的相互转换;,编译原理,有穷自动机,有穷自动机(或有限自动机)作为一种识别工具,它能正确地识别正规集,即识别正规文法所定义的语言和正规式所表示的集合。引入有穷自动机这个理论,正是为词法分析程序的自动构造寻找特殊的方法和工具。 分类:确定的有穷自动机(DFA)不确定的有穷自动机(NFA),3.1 概述 有穷自动机(FA),有穷自动机(FA,Finite Automata)是一种有限离散数字系统的抽象数学模型。这个系统具有有限数目。