- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理重点PPT第部分概述()%
编 译 原 理;;与课程有关的问题;课程内容;本节内容简介;1.1翻译程序与编译程序; · 所谓翻译程序是指这样一种程序,它能将用甲语言(源语言)编写的程序翻译成与之等价的用乙语言(目标语言)书写的程序。; 编译方式是一种分阶段进行的翻译方式。;;⑴在编译方式下,源程序的执行需要分阶段。 ;关于编译程序的几点说明;关于编译程序的几点说明; 完成解释工作的解释程序将按源程序中语句的动态顺序,逐句地进行分析解释,并立即予以执行。 ;1.编辑器
2.预处理器
3.编译器
4.连接程序
5.装入程序
6.调试程序;源程序解释执行的历程 ; 所谓编译过程是指将高级语言程序翻译为等价的目标程序的过程。;翻译和编译工作的比较;;例: 一个简要的C 程序
Main()
/* used for illustrating compiling process */
{ Int a,b,c,x;
……
a=a+b*c+b*c;
x=a*3-b*c;
b=a+)b*(x- ;
……
}; 依据语言词法规则,分析由字符组成的源程序,把它识别为一个一个具有独立意义的最小语法单位,即“单词”,并识别出与其相关的属性(如是标识符,是界限符,还是数,等等),再转换成长度上统一的标准形式(这种统一的标准形式既刻画了单词本身,又刻画了它所具有的属性,称为属性字),以供其它部分使用。 ;上述源程序通过词法分析识别出如下单词符号:
基本字:main, int
标识符:a,b,c,x
常数: 3
运算符:+,*,-
界符: ( , ) , ; , { , } , /* , */, =
长度上统一的标准形式——TOKEN串
TOKEN串是一个二元组:(单词类别,单词的值)
其中:“单词的类别”用既已存在的一组整数值(称为单词的种别
码)表示。用以区分不同种类的单词。
“单词的值”是单词的机内表示形式。一般是ASCII码。 ; 依据语法规则,逐一分析词法分析时得到的单词,把单词串分解成各类语法单位,即确定它们是怎样组成说明和语句,以及说明和语句又是怎样组成程序的。分析时如发现有不合语法规则的地方,便将出错的位置及出错性质打印报告给程序员;如无语法错误,则用另一种中间形式给出正确的语法结构,供下一阶段分析使用。 ;通过语法分析,识别出:
a,b,x 是变量这个语法单位;
a+b*c+b*c组合成表达式这样的语法单位;
识别出说明语句,赋值语句这样的语法单位,并检查正确性。例如, 赋值语句由 变量=表达式构成;
这里发??赋值语句b=a+)b*(x-的语法错误。
原因是表达式 a+)b*(x-错误; 依据语言的语义规则对语法分析得到的语法结构进行静态语义检查(确定类型、类型和运算合法性检查、识别含义与相应的语义处理及其它一些静态语义检查),并用另一种内部形式(如中间代码)表示出来,或者直接用目标语言表示出来。
凡在编译时可以确定的内容称为“静态”的;凡必须推迟到程序运行时才能确定的内容称为“动态”的。 ;具体说来语义分析包括两方面:
(1)静态语义检查。要检查标识符是否被定义,前后的数据类型是否一致。如上述源程序中x=a*3-b*c,要查看赋值号左右的变量和表达式的类型是否一致。
(2)进行语义处理。针对不同类型的语句语义处理的方式不同。对说明语句,要将说明性语句中所定义的变量名字及其有关信息送进符号表,并为之分配存储单元;对可执行语句(如赋值语句、条件语句、循环语句等),就要生成可表达语义的中间代码。;分析到说明语句int a,b,c,x;后,应把变量a,b,c的类型int填入符号表中,分析到 } 后,将产生以下四元式序列:
运算符 左运算对象 右运算对象 工作单元 注释
(1) * b c T1 b*c?T1
(2) + a T1 T2 a+T1?T2
(3) * b c T3 b*c?T3
(4) + T2 T3 T4 a+b*c+b*c?T4
(5) = T4 _ a T4?a
(6) * a 3 T5 a*3?T5
(7) * b c T6
您可能关注的文档
- 经典实用有价值的企业管理培训教案:破解企业可持续发展的密码.ppt
- 经典实用有价值的企业管理培训教案:营销的真正成功在于对市场的战略性思考(方法比知识重要).ppt
- 经典实用有价值的企业管理培训教案:管理会计应用与发展的典型案例研究.ppt
- 经典实用有价值的企业管理培训教案:调动员工工作激情的若干办法与举措.ppt
- 经典实用有价值的企业管理培训教案:赢利模式(李践).ppt
- 经典实用有价值的企业管理培训教案:三星电子员工素质提升训练完整讲义.ppt
- 经济博弈论第二部分完全信息静态博弈.ppt
- 经济应用数学基础微积分第九章教案.ppt
- 经典实用有价值的企业管理培训教案:一种真正使企业利润倍增的本土化管理模式(上).ppt
- 经济数学复习第三部分导数的应用.ppt
文档评论(0)