中国高校课件下载中心 》 教学资源 》 大学文库

南京大学:《编译原理》课程教学资源(PPT课件讲稿)第三章 词法分析

文档信息
资源类别:文库
文档格式:PPT
文档页数:73
文件大小:186KB
团购合买:点击进入团购
内容简介
一、词法分析与词法分析程序 1.词法分析的任务是识别源程序中具有独立含义的最小语法单位-符号或单词,如 标识符,无正负号常数与界限符等。并把源程序转换为等价的内部表示形式 2.功能: 读入源程序字符串;识别单词(符号); 转换成属性字; 一些其他的简单工作:删除注解,预加工处理
刷新页面文档预览

编译原理讲义 (第三章:词法分析) 南京大学计算机系 赵建华

编译原理讲义 (第三章:词法分析) 南京大学计算机系 赵建华

词法分析与词法分析程序 ·词法分析的任务是识别源程序中具有独 立含义的最小语法单位-号或单词,如 标识符,无正负号常数与界限符等。并 把源程序转换为等价的内部表示形式 功能: 读入源程序字符串;识别单词(符号); 转换成属性字; 些其他的简单工作:删除注解,预加工处 理

词法分析与词法分析程序 • 词法分析的任务是识别源程序中具有独 立含义的最小语法单位----符号或单词,如 标识符,无正负号常数与界限符等。并 把源程序转换为等价的内部表示形式。 • 功能: – 读入源程序字符串;识别单词(符号); – 转换成属性字; – 一些其他的简单工作:删除注解,预加工处 理

符号识别和重写规则 规则例子: :=字母|字母 在上面的例子中,实际可以展开为∷ a b c d 如果我们规定终结符号的集合为字符,那 么我们会发现上面的规则都满足正则文法 的规则限制:U:=T|UT。因此,我们可以 使用有限自动机来辅助完成词法分析

符号识别和重写规则 • 规则例子: – ::= 字母 | 字母 | … – 在上面的例子中,实际可以展开为 ::= a | b | c | d |… • 如果我们规定终结符号的集合为字符,那 么我们会发现上面的规则都满足正则文法 的规则限制: U::=T | UT。因此,我们可以 使用有限自动机来辅助完成词法分析

实现方式 完全融合:由于正则文法是CFG的一种 特例。所以,可以把词法规则和语法规 则统一处理, 相对独立:词法分析作为子程序。当语 法分析程序需要读下一个符号的时候, 调用这个子程序 完仝独立:词法分析程序作为单独的 趟来实现

实现方式 • 完全融合:由于正则文法是CFG的一种 特例。所以,可以把词法规则和语法规 则统一处理。 • 相对独立:词法分析作为子程序。当语 法分析程序需要读下一个符号的时候, 调用这个子程序。 • 完全独立:词法分析程序作为单独的一 趟来实现

状态转换图与转换系统 别标志符程序的程序的流程图见图3-1; 在流程图中的每个边上的操作一般都是 判断输入符号是否满足等于某些值。如 果不等于,那么识别失败。 实际上,这样的流程图是一种模式 我们可以把流程图简化为一个状态转换 图。状态转换图的运行由输入驱动。状 态转换图包括状态,联接状态的边。有 些状态是接收状态,每条边都标记了 个符号

状态转换图与转换系统 • 识别标志符程序的程序的流程图见图3-1; 在流程图中的每个边上的操作一般都是 判断输入符号是否满足等于某些值。如 果不等于,那么识别失败。 • 实际上,这样的流程图是一种模式。 • 我们可以把流程图简化为一个状态转换 图。状态转换图的运行由输入驱动。状 态转换图包括状态,联接状态的边。有 些状态是接收状态,每条边都标记了一 个符号

转换图的运行和接受 转换图在运行的时候,由一个当前的状 态。每次输入一个符号的时候,转换图 的状态改变如下:沿着从当前状态离开 的,并且用输入符号标记的边,到达这 个边的目标状态 一个符号串被状态转换图接受当且仅当 从初始状态出发,逐次输入符号串中的 所有符号的时候,最终的状态是接受状

转换图的运行和接受 • 转换图在运行的时候,由一个当前的状 态。每次输入一个符号的时候,转换图 的状态改变如下:沿着从当前状态离开 的,并且用输入符号标记的边,到达这 个边的目标状态。 • 一个符号串被状态转换图接受当且仅当 从初始状态出发,逐次输入符号串中的 所有符号的时候,最终的状态是接受状 态

从文法构造状态转换图 我们可以给每个正则文法构造一个状态 转换图。 其基本思想如下: 当我们使用自底向上的方式规约一个正则文 法的句子的时候,得到的句型都是形如 Utx(tx为终结符号串)。而下次规约的规则总 是满足V∴=Ut。如果我们把非终结符号作为 状态,而把饮看作尚未读入的部分时,就得 到一个状态转换图。P61图3-4

从文法构造状态转换图 • 我们可以给每个正则文法构造一个状态 转换图。 • 其基本思想如下: – 当我们使用自底向上的方式规约一个正则文 法的句子的时候,得到的句型都是形如 Utx(tx为终结符号串)。而下次规约的规则总 是满足V::=Ut。如果我们把非终结符号作为 状态,而把tx看作尚未读入的部分时,就得 到一个状态转换图。P61图3-4

从文法构造状态转换图(算法) 步骤一:引入一个开支状态S(假定S不 是非终结符号 步骤二:每个非终结符号作为一个结点。 步骤三 Q:=T:从S到Q有一条标记为T的弧 Q:=RT:从R到Q有一条标记为T的弧。 识别符号为接受状态

从文法构造状态转换图(算法) • 步骤一:引入一个开支状态S(假定S不 是非终结符号。 • 步骤二:每个非终结符号作为一个结点。 • 步骤三: – Q::=T:从S到Q有一条标记为T的弧。 – Q::=RT:从R到Q有一条标记为T的弧。 • 识别符号为接受状态

从文法构造状态转换图(例子) A Z: :Za Aa Bb A: : a S z B: =Ab b

从文法构造状态转换图(例子) S A B Z Z ::= Za | Aa | Bb A::= Ba | a B ::= Ab | b

使用状态转换图构造正则文法 从构造步骤来看,正则文法和状态转换 图之间具有一种对应关系 状态转换图具有直观的特点,所以给定 个正则语言,构造状态转化图比较方 便

使用状态转换图构造正则文法 • 从构造步骤来看,正则文法和状态转换 图之间具有一种对应关系。 • 状态转换图具有直观的特点,所以给定 一个正则语言,构造状态转化图比较方 便

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档