码迷,mamicode.com
首页 > 其他好文 > 详细

第19课 编译过程简介

时间:2019-12-28 22:36:22      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:def   展开   语义分析   过程   表达式   初识   目标   做了   符号   

初识编译器

编译器做了什么

·预编译

  -处理所有的注释,以空格代替;

  -将所有的#define删除,并展开所有的宏定义;

  -处理条件编译指令#if,#ifdef,#elseif,#else,#endif;

  -处理#include,展开被包含的文件;

  -保留编译器需要使用的#pragma指令。

·编译

  -对预处理文件进行词法分析,语法分析和语义分析

    ·词法分析:分析关键字、标示符、立即数等是否合法;

    ·语法分析:分析表达式是否遵循语法规则;

    ·语义分析:在语法分析的基础上进一步分析表达式是否合法。

  -分析结束后进行代码优化生成相应的汇编代码文件

 

·汇编

  -汇编器将汇编代码转变为机器的可执行指令

  -每条汇编语句几乎都对应一条机器指令

 

·编程实验

  原代码单步编译示例:19-1.c

 

·小结

  编译的过程分为预处理、编译、汇编和链接四个阶段

    -预处理:处理注释、宏以及已经以#开头的符号

    -编译:进行词法分析、语法分析和语义分析

    -汇编:将汇编代码翻译成机器指令的目标文件

第19课 编译过程简介

标签:def   展开   语义分析   过程   表达式   初识   目标   做了   符号   

原文地址:https://www.cnblogs.com/kojull/p/12113297.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!