当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《程序设计语言与编译》课程PPT教学课件(高职)第十九讲 代码生成和代码优化

资源类别:文库,文档格式:PPT,文档页数:22,文件大小:111KB,团购合买
在程序中,用户用标识符定义了不少名 字来代表不同的数据对象,编译程序将这 些名字保存在符号表中。符号表除了记 录名字本身而外,还记录了与名字关联的 各种属性信息。
点击下载完整版文档(PPT)

第六章代码生成和代码优化 第o节符号表 在程序中,用户用标识符定义了不少名 字来代表不同的数据对象编译程序将这 些名字保存在符号表中。符号表除了记 录名字本身而外还记录了与名字关联的 各种属性信息

第六章 代码生成和代码优化 第o节 符号表 在程序中,用户用标识符定义了不少名 字来代表不同的数据对象,编译程序将这 些名字保存在符号表中。符号表除了记 录名字本身而外,还记录了与名字关联的 各种属性信息

符号表的一般形式 每个名字对应一个表项一个表项包括名 字域和信息域。 名字 信息

一. 符号表的一般形式 每个名字对应一个表项,一个表项包括名 字域和信息域。 名字 信息

其中,信息域通常设若干子域及标志位,其 内容可以是和名字有关的任何信息 类型种属长度相对地址数组的内情向量, 记录与分量的联系形参标志说明标志赋 值标志等。 因名字的长度、信息域的组成及长度可 能是各不相同的一般采用间接表技术

其中,信息域通常设若干子域及标志位,其 内容可以是和名字有关的任何信息: 类型,种属,长度,相对地址,数组的内情向量, 记录与分量的联系,形参标志,说明标志,赋 值标志等。 因名字的长度、信息域的组成及长度可 能是各不相同的,一般采用间接表技术

二.常用的符号表结构 1线性表用N个数组A,A2A来存 放符号表的N个子域 2HASH表

二. 常用的符号表结构 1. 线性表: 用N个数组A1 ,A2 ,…,AN来存 放符号表的N个子域 2. HASH表

第一节语义分析和中间代码生成 O.概述 1.语义分析的主要工作 (1)语义检查:如类型是否-致数组维 数是否正确。 (2)语义处理:对说明语句,登记信息;对 可执行语句生成中间代码

第一节 语义分析和中间代码生成 O. 概述 1. 语义分析的主要工作 (1)语义检查: 如类型是否一致,数组维 数是否正确。 (2)语义处理: 对说明语句,登记信息;对 可执行语句,生成中间代码

2.语法制导翻译 为每个产生式配上一个语义子程序在语 法分析过程中当用一个产生式进行匹配 或归约时,就调用相应的语义程序 上述语义子程序既可能包含了语义检查, 也可能包含了语义处理,其核心是为了生 成相应的中间代码

2. 语法制导翻译 为每个产生式配上一个语义子程序,在语 法分析过程中,当用一个产生式进行匹配 或归约时,就调用相应的语义程序。 上述语义子程序既可能包含了语义检查, 也可能包含了语义处理,其核心是为了生 成相应的中间代码

例:语法分析采用自底向上的LR分析法 X→>AB B的语义值 Y→CD BA A的语义值 Z→>XY 状态栈 符号栈 语义栈

例:语法分析采用自底向上的LR分析法 X→AB Y→CD Z→XY 状态栈 符号栈 语义栈 B A • • • B的语义值 A的语义值 • • •

Ⅹ的语义值 状态栈 符号栈 语义栈

状态栈 符号栈 语义栈 X • • • X的语义值 • • •

D的语义值 C C的语义值 X的语义值 状态栈 符号栈语义栈

状态栈 符号栈 语义栈 D C X • • • D的语义值 C的语义值 X的语义值 • • •

Y的语义值 X的语义值 状态栈 符号栈语义栈

状态栈 符号栈 语义栈 Y X • • • Y的语义值 X的语义值 • • •

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共22页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有