编译原理课程.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

编译原理

2017.6

第一章引论

一、解释程序

把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身

二.编译过程

1、词法分析

任务:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。

依循的原则:构词规则

描述工具:有限自动机

FOR I :=1TO100DO

保留字标识符等符整常数保留字整常数保留字

2、语法分析

任务:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。

依循的原则:语法规则

描述工具:上下文无关文法

Z:=X+0.618*Y

算术表达式,赋值语句

3、中间代码产生

任务:对各类不同语法范畴按语言的语义进行初步翻译。

依循的原则:语义规则

中间代码:三元式,四元式,树形结构等

Z:=X+0.618*Y翻译成四元式为

(1)*0.618YT1

(2)+XT1T2

(3):=T2_Z

4、优化

任务:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。

依循的原则:程序的等价变换规则

FORK:=1TO100DO

BEGIN

X:=I+1;

M:=I+10*K;

N:=J+10*K;

END

中间代码(一)(400次加法200次乘法)

序号 OPR OPN1 OPN2RESULT注释

(1) := 1 KK:=1

(2) j 100 K (10)if(100K)

goto(10)

(3) + I 1 X X:=I+1

(4) * 10 K T1 T1:=10*K

(5) + I T1 M M:=I+T1

(6) * 10 K T2 T2:=10*K

(7) + J T2 N N:=J+T2

(8) + K 1 KK:=K+1

(9) j (2) goto(2)

(10)

转换后的等价代码(二)(301次加法)

序号 OPR OPN1 OPN2 RESULT 注释

(1) + I 1 X X:=I+1

(2) := I M M:=I

(3) := J N N:=J

(4) := 1 K K:=1

(5) j 100 K (10) if(100K)

goto(10)

(6) + M 10 M M:=M+10

(7) + N 10 N N:=N+10

(8) + K 1 K K:=K+1

(9) j (5) goto(5)

(10)

5、目标代码产生

任务:把中间代码变换成特定机器上的目标代码。

依赖于硬件系统结构和机器指令的含义

目标代码三种形式:

绝对指令代码:可直接运行

可重新定位指令代码:需要连接装配

汇编指令代码:需要进行汇编

三.编译程序结构

1、编译程序总框

(见右图)

2、表格和表格管理

常见的表格:符号名表,常数表,标号表,入口名表,过程引用表。

格式:

姓名

信息

例:PASCAL程序段:

PROCEDUREINCWAP(M,N:INTEGER);

LABELSTART;

VAR

K:INTEGER;

BEGIN

START:

K:=M+1;

M:=N+4;

N:=K;

END.

3.出错处理

出错处理程序:发现源程序中的错误,把有关错误信息报告给用户

语法错误

语义错误

4.遍(pass)

所谓“遍”,就是对源程序或源程序的中间表示从头到尾扫描一次,从外存输入,处理后结果输出到外存。

阶段与遍是不同的概念。一遍可以由若干段组成,一个阶段也可以分若干遍来完成。

5.编译前端与后端

编译前端:与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机

文档评论(0)

论文与课题咨询 + 关注
实名认证
服务提供商

教师资格证、中级网络工程师持证人

专注于计算机技术相关文章撰写,方案设计,方案实现等,方案的个性定制,修改,润色等,本人已有8年相关工作经验,具有扎实的文案功底

领域认证该用户于2023年06月19日上传了教师资格证、中级网络工程师

1亿VIP精品文档

相关文档