
第3章 词法分析 G 0 31词法分析程序的设计(理解) 口3.2单词的描述工具(理解) 口33有穷自动机(掌握重点难点) 口3.4正规式和有穷自动机的等价性(掌握重点) 0 35正规文法和有穷自动机的等价性(了解) 口3.6词法分析程序的自动构造工具(了解) 0 本章练习 0 作业 课程目录 25.4.3 ☒21
25.4.3 1 第3章 词法分析 3.1 词法分析程序的设计(理解) 3.2 单词的描述工具(理解) 3.3 有穷自动机(掌握 重点 难点) 3.4 正规式和有穷自动机的等价性(掌握 重点 ) 3.5 正规文法和有穷自动机的等价性(了解) 3.6 词法分析程序的自动构造工具(了解) 本章练习 作业 课程目录

词法分析(Lexical Analysis)p50 口主要功能 口从左至右逐个字符地对源程序进行扫描,产生 一个个的单词符号,把作为字符串的源程序改 造成为单词符号串的中间程序 口或者说:逐个读入源程序字符,并按照词法规 则分割成一系列单词,再转换成单词串,同时 进行词法检查 25.4.3 ☒2
25.4.3 2 词法分析(Lexical Analysis)p50 主要功能 从左至右逐个字符地对源程序进行扫描,产生 一个个的单词符号,把作为字符串的源程序改 造成为单词符号串的中间程序 或者说:逐个读入源程序字符,并按照词法规 则分割成一系列单词,再转换成单词串,同时 进行词法检查

词法分析(Lexical Analysis)p50 0主要任务 口读源程序,产生单词符号。 ▣其他任务 口滤掉空格,跳过注释、换行符; 口宏展开,. 0关键 口找出单词分隔符。 25.4.3 ☒D3
25.4.3 3 词法分析(Lexical Analysis)p50 主要任务 读源程序,产生单词符号。 其他任务 滤掉空格,跳过注释、换行符; 宏展开,. 关键 找出单词分隔符

3.1词法分析器程序的设计p50 口功能:输入源程序,输出单词符号。 口单词符号一般可分为下列五种: 0关键字 C语言main int void 口标识符 变量名数组名函数名 口常数 1003.14159‘a 口运算符 +-米/ 口界符 ,;()/* 25.4.3 ☒4
25.4.3 4 3.1 词法分析器程序的设计 p50 功能:输入源程序,输出单词符号。 单词符号一般可分为下列五种: 关键字 C语言main int void 标识符 变量名 数组名 函数名 常数 100 3.14159 ‘a’ 运算符 + - * / 界符 ,;( ) /* */

单词符号的输出形式p50-51 二元式(单词种别,属性值) 口单词种别单词符号的特性。 口通常用整数编码,怎样分种,怎样编码,主要 取决于处理上的方便。 口例:标识符 -一1 常数 -—2 0 关键字 -3 0 运算符 -4 界符 5 25.4.3 ☒D5
25.4.3 5 单词符号的输出形式 p50-51 二元式(单词种别,属性值) 单词种别 单词符号的特性。 通常用整数编码,怎样分种,怎样编码,主要 取决于处理上的方便。 例:标识符——1 常 数——2 关键字——3 运算符——4 界 符——5

单词符号的输出形式p51 二元式(单词种别,属性值) 口属性值单词符号特性的值。 口一个种别只含一个单词符号,不需属性值。 关键字if (“if”,-) 关键字then(“then”,) 口一个种别含有多个单词符号,为区别各个单词符 号需要属性值。 口表示方法常用常数的值,标识符的名字表示。 变量i(1,指向i的符号表项的指针) 关键字if (3,“f”) 关键字then (3,“then”) 25.4.3 ☒6
25.4.3 6 属性值 单词符号特性的值。 一个种别只含一个单词符号,不需属性值。 关键字 if (“if” ,_ ) 关键字 then (“then” ,_ ) 一个种别含有多个单词符号,为区别各个单词符 号需要属性值。 表示方法 常用常数的值,标识符的名字表示。 变量 i (1,指向i的符号表项的指针) 关键字 if (3,“if”) 关键字 then (3,“then”) 单词符号的输出形式 p51 二元式(单词种别,属性值)

例C++代码段及对应的单词符号序列 whi1e(i>=10)i-; 单词 输出表示 1 while (3,“while”) 2( (5, “(”) 3 i (1, 指向i的符号表项的指针) 4 >= (4,>=) 5 10 (2,“10”) 6 (5,“)”) 7 i (1,指向i的符号表项的指针) 8 (4,-) 9 (5,;) 25.4.3 ☒D7
25.4.3 7 例 C++代码段及对应的单词符号序列 while (i>=10) i-; 单词 输出表示 1 while (3, “while”) 2 ( (5, “(”) 3 i (1,指向i的符号表项的指针) 4 >= (4,>=) 5 10 (2, “10”) 6 ) (5, “)”) 7 i (1,指向i的符号表项的指针) 8 - - (4,- -) 9 ; (5,;)

词法分析器的组织方法p50-51 作为单独的一遍,在语法分析前进行。 与语法分析结合在一起作为一遍。 作为语法分析程序的一个子程序,每次调用识别 一个单词,交给语法分析器使用。 取单词 源程序 语法树 词法分析 送单词 语法分析 表格管理 符号表 常数表 章节目录 25.4.3 ☒28
25.4.3 8 词法分析器的组织方法 p50-51 作为单独的一遍,在语法分析前进行。 与语法分析结合在一起作为一遍。 作为语法分析程序的一个子程序,每次调用识别 一个单词,交给语法分析器使用。 词法分析 表格管理 语法分析 源 程 序 送单词 符号表 常数表 取单词 语法树 章节目录

3.2单词的描述工具p52 口正规集(正规语言) 某字母表上,我们感兴趣的符号串的集合。 正规表达式(regular expression) 是定义正规集(正规语言)的一种表示法。 口正规文法 是对正规语言(正规集)的一种描述工具。 4 25.4.3 ☒9
25.4.3 9 3.2 单词的描述工具 p52 正规集(正规语言) 某字母表上,我们感兴趣的符号串的集合。 正规表达式(regular expression) 是定义正规集(正规语言)的一种表示法。 正规文法 是对正规语言(正规集)的一种描述工具

3.2.1正规文法p52 口程序设计语言中几类单词的规则描述: 0→11→1d1d 口→dd 口→+-*/八=>〈等号>. 0〈等号〉→= 0→,;(). 25.4.3 ☒210
25.4.3 10 3.2.1 正规文法 p52 程序设计语言中几类单词的规则描述: → l|l →l|d|l |d →d|d →+|-|*|/|=||> . →= →,|;|(|)|