第2讲西北农林科技大学本科教程主讲教师:赵建邦第二章《词法分析》前三节2
1词法分析器的设计方法2
2一个简单的词法分析器2
3正规表达式与有限自动机简介重点掌握状态转换图的概念正规表达式的概念和运算本讲目标第二章词法分析2
1词法分析器的设计方法2
2一个简单的词法分析器2
3正规表达式与有限自动机简介2
4正规表达式到有限自动机的构造2
5词法分析器的自动生成回顾词法分析器:定位–词法分析是编译的第一个阶段任务–从左至右逐个字符地对源程序进行扫描,产生一个个单词(Token)符号功能–输入源程序,输出单词符号(流)–不断访问、更新符号表2
1词法分析器的设计方法词法分析器的处理结构(2种):第一种:词法分析器和语法分析器完全分开–词法分析器的输出(单词符号流)作为语法分析器的输入将词法分析工作作为独立的一遍来完成,在这个过程中不断查询和完善符号表2
1词法分析器的设计方法图2-1(a)词法分析程序作为主程序词法分析器的处理结构(2种):第二种:词法分析器作为语法分析器调用的子程序–每当语法分析器需要一个单词时便调用词法分析器–词法分析和语法分析交替进行2
1词法分析器的设计方法图2-1(b)词法分析程序作为子程序2
1:单词符号的分类与输出形式–分类:单词符号是程序语言的基本语法单位,具有确定的语法意义
程序语言的单词符号通常可分为下面五种:•保留字:如C语言中的if、else、while和do等–几乎所有的程序语言都禁止用户使用保留字作为标识符•标识符:用户自己定义的常量名、变量名、方法名等•常数:布尔常数(true/false)和其它常数•运算符:“+”、“-”、“*”、“/”、“>”、“1)b=100;如果采用每种单词对应一个整数码,对应的二元式序列
假如五类单词的种别规定如下:保留字if种别:2标识符种别:10常量种别:1