ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

编译过程划分

2020-03-08 20:04:18  阅读:216  来源: 互联网

标签:代码生成 语法分析 错误 语义 编译 划分 阶段 过程 源程序


- 1.词法分析

  • 对构成源程序的字符串进行扫描和分解,识别出一个个的单词,如基本字(begin、end、if、for、while),标识符、常数、运算符和界符(标点符号、左右括号)

- 2.语法分析

  • 在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位,如“短语”、“句子”、“程序段”和“程序”等。
  • 自顶向下的语法分析包含 递归下降分析法 和 预测分析法

- 3.语义分析

  • 检查源程序上有没有语义错误,在代码生成阶段收集类型信息

- 4.中间代码生成阶段

  • 在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,并分配寄存器。

    • 优点:有利于编译程序的可移植性
    • 常用的中间代码有:后缀式、三元式、四元式和树

- 5.代码优化

  • 对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间

- 6.目标代码生成

  • 这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码,它和具体的机器相关

- 出错处理

  • 动态语义错误

    • 逻辑错误不会在编译阶段发现
  • 静态语义错误

    • 指在编译阶段发现的错误

标签:代码生成,语法分析,错误,语义,编译,划分,阶段,过程,源程序
来源: https://www.cnblogs.com/south-wood/p/12444501.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有