打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
编译程序基本原理的知识笔记

编译程序的作用是把某高级语言书写的源程序翻译成与之等价的目标程序。

       

       

1、编译过程

1.1 词法分析

编译过程的第一阶段主要任务是对源程序从前往后(从左往右)逐个字符扫描,从中识别出一个个单词符号。“单词”是程序设计语言的基本语法单位,如关键字、标识符等。

1.2 语法分析

语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,比如表达式、语句。

语法规则是各类语法单位的构成规则。

词法分析和语法分析的本质都是对源程序的结构进行分析。

1.3 语义分析

语义分析阶段分析各语法的含义,检查源程序是否包含静态语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能正确翻译成目标程序。

语义分析的主要工作进行类型分析和检查。

1.4 中间代码生成

中间代码生成阶段的主要任务是工作是根据语义分析的输出生成中间代码。最常用的中间代码是与汇编语法的指令非常相似的三地址码,常采用四元式。

格式为:(运算符,运算对象1,运算对象2,运算结果)

语义分析和中间代码的依据是语言的语义规则。

1.5 代码优化

由于编译器翻译中间代码的过程是机械式的、固定模式进行的,因此生成的中间代码往往在时间上、空间方面效率较差。如果需要生成高效率的目标代码,就必须进行优化。

1.6 目标代码生成

主要任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码。

1.7 符号表管理

符号表的作用是记录源程序中各符号的必要信息,用来辅助语义的正确检查和代码生成。

1.8 出错处理

源程序不可避免会出现一些错误。分为两类:静态错误和动态错误。

静态错误:编译阶段发现的错误。比如:单词拼写错误、标点符号错误。

动态错误:在程序运行时发生的错误。比如 零做除数等。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
高级语言程序的两种处理方式——编译和解释
编译原理一:想初步了解编译原理?看这篇文章就够了
编译原理练习题库
计算机是怎如何执行我们发给它的指令的呢?看完此篇你就了解了
《编译原理简明教程》PPT 第12章
编译原理学习导论 [和讯博客]
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服