欢迎来到天天文库
浏览记录
ID:22965475
大小:69.00 KB
页数:13页
时间:2018-11-02
《‘教案’课程教案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、‘教案’课程教案[‘教案’课程教案---第三章-1]教案:课程教案---第三章-1-教案编译原理章节名称第三章高级语言及其语法描述3.1对于词法分析器的要求3.2词法分析器的设计3.3.1正规式与正规集3.3.2确定有限自动机课程类型理论课√讨论课□习题课□实验课□上机课□技能课□其他□授课时间第4周周二3、4节教学进度学生考勤应到:实到:请假:旷课:教学方法多媒体+讲授目的要求:了解词法分析器的功能和输出形式,熟练掌握词法分析器设计的原理和方法,能够以转换图为工具使用某种语言的编写并调试一个扫描器,‘教案’课程教案---第三章-
2、1。重点难点:重点:词法分析器的设计;难点:状态转换图的实现课后作业:作业批改记录:教学后记:教学过程:词法分析的任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号。词法分析器(LexicalAnalyzer)又称扫描器(Scanner):执行词法分析的程序3.1对于词法分析器的要求3.1.1词法分析器的功能和输出形式功能:输入源程序、输出单词符号单词符号的种类或者输出形式:基本字:如begin,repeat,标识符--表示各种名字:如变量名、数组名和过程名常数:各种类型的常数运算符:+,-,*,/,界符:逗号、
3、分号、括号和空白输出的单词符号的表示形式:(单词种别,单词自身的值)单词种别通常用整数编码表示。若一个种别只有一个单词符号,则种别编码就代表该单词符号。假定基本字、运算符和界符都是一符一种。若一个种别有多个单词符号,则对于每个单词符号,给出种别编码和自身的值。标识符单列一种;标识符自身的值表示成按机器字节划分的内部码。常数按类型分种;常数的值则表示成标准的二进制形式。3.1.2词法分析器作为一个独立子程序词法分析是作为一个独立的阶段,是否应当将其处理为一遍呢?作为独立阶段的优点:结构简洁、清晰和条理化,有利于集中考虑词法分析一些枝
4、节问题,教案《‘教案’课程教案---第三章-1》(..)。不作为一遍:将其处理为一个子程序。3.2词法分析器的设计3.2.1输入、预处理输入串放在输入缓冲区中。预处理子程序:剔除无用的空白、跳格、回车和换行等编辑性字符;区分标号区、捻接续行和给出句末符等扫描缓冲区3.2.2单词符号的识别:超前搜索基本字识别:需要超前搜索才能确定哪些是基本字标识符识别:字母开头的字母数字串,后跟界符或算符常数识别:识别出算术常数并将其转变为二进制内码表示。有些也要超前搜索。算符和界符的识别:把多个字符复合而成的算符和界符拼合成一个单词符号。3.2.
5、3状态转换图概念:状态转换图是一张有限方向图。结点代表状态,用圆圈表示;状态之间用箭弧连结,箭弧上的标记(字符)代表射出结状态下可能出现的输入字符或字符类;一张转换图只包含有限个状态,其中有一个为初态,实际上至少要有一个终态。一个状态转换图可用于识别(或接受)一定的字符串。几点重要限制--不必使用超前搜索:所有基本字都是保留字;用户不能用它们作自己的标识符基本字作为特殊的标识符来处理;不用特殊的状态图来识别,只要查保留字表。如果基本字、标识符和常数(或标号)之间没有确定的运算符或界符作间隔,则必须使用一个空白符作间隔。3.2.4状
6、态转换图的实现做法:1)对不含回路的分叉结,可用一个CASE语句或一组IF-THEN-ELSE语句实现2)对含回路的状态结,可对应一段由WHILE结构和IF语句构成的程序.3)终态结表示识别出某种单词符号,因此,对应语句为RETURN(C,VAL)其中,C为单词种别,VAL为单词自身值.3.2词法分析器的设计3.2.1输入、预处理输入串放在输入缓冲区中。预处理子程序:剔除无用的空白、跳格、回车和换行等编辑性字符;区分标号区、捻接续行和给出句末符等扫描缓冲区3.2.2单词符号的识别:超前搜索基本字识别:需要超前搜索才能确定哪些是基本
7、字标识符识别:字母开头的字母数字串,后跟界符或算符常数识别:识别出算术常数并将其转变为二进制内码表示。有些也要超前搜索。算符和界符的识别:把多个字符复合而成的算符和界符拼合成一个单词符号。3.2.3状态转换图概念:状态转换图是一张有限方向图。结点代表状态,用圆圈表示;状态之间用箭弧连结,箭弧上的标记(字符)代表射出结状态下可能出现的输入字符或字符类;一张转换图只包含有限个状态,其中有一个为初态,实际上至少要有一个终态。一个状态转换图可用于识别(或接受)一定的字符串。几点重要限制--不必使用超前搜索:所有基本字都是保留字;用户不能用
8、它们作自己的标识符基本字作为特殊的标识符来处理;不用特殊的状态图来识别,只要查保留字表。如果基本字、标识符和常数(或标号)之间没有确定的运算符或界符作间隔,则必须使用一个空白符作间隔。3.2.4状态转换图的实现做法:1)对不含回路的分叉结,可用一个
此文档下载收益归作者所有