编译和链接

gcc hello.c

真实过程:

预处理(Prepressing)、编译(Complilation)、汇编(Assembly)、链接(Linking)

hello.c -> hello.i -> hello.s -> a.out

编译过程:

扫描、语法分析、语义分析、源代码优化、代码生成、目标代码优化

Source code   --scanner-->  Tokens 

--parse--> Syntax Tree 

--Semantic Analyzer-->Commented Syntax Tree

--Source Code Optimizer--> Intermediate Representation 

--Code Generation--> Target Code 

--Code Optimizer--> Final Target Code

词法分析

源代码程序被输入到扫描器(Scanner),运用一种类似有限状态机(Finity State Machine)的算法将源代码字符序列分隔为一系列的记号(Token)

语法分析

语法分析器(Grammer  Parser)将对由扫描器产生的记号进行语法分析,从而生成语法树(Syntax Tree)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 所有这一张中的示例代码,以 Hello World 和 hello.c 为基准2.1 被隐藏了的过程GCC 编译过...
    RX78178阅读 494评论 0 0
  • 摘自《程序员自我修养》 对于平时的应用程序开发,我们很少关注编译和连接过程,因为通常的开发环境都是流行的集成开发环...
    浪淘沙008阅读 214评论 0 0
  • (摘自《程序员的自我修养》) 1. 被隐藏了的过程   当我们使用gcc来编译一个程序时,例如   运行结束后会生...
    北凉丶悲凉阅读 311评论 0 0
  • 对于平常的应用程序开发,我们很少需要关注编译和链接过程,因为通常的开发环境都是流行的集成开发环境(IDE),这样的...
    fou7阅读 1,248评论 0 1
  • 2.1 被隐藏了的过程 ide一般将编译和链接的过程一步完成,通常将这种编译和链接合并到一起的过程叫构建 从代码变...
    敲一手烂代码阅读 292评论 0 1