大咖助阵|海纳:C 语言是如何编译执行的?(一)
海纳
该思维导图由 AI 生成,仅供参考
你好,我是于航。这一讲是一期大咖加餐,我们邀请到了海纳老师,来跟你聊聊与 C 程序编译相关的内容。C 语言是一门语法简单,且被广泛使用的编程语言,通过观察其代码的编译流程,你能够清楚地了解一个传统编译器的基本运作原理。海纳老师会用三到四讲的篇幅,来帮助你深刻理解 C 程序的编译全过程,这也是对我们专栏内容的很好补充。感谢海纳老师,也希望你能够有所收获,对 C 语言了解得更加透彻。
作为一名编译器开发工程师,在这里我想和你聊一下 C 语言的编译过程。对于 C 语言的开发者来说,深刻理解编译的过程是十分必要的。由于 C 语言非常接近底层,所以它是一门用于构建基础设施的语言。很多时候,C 语言的开发者要理解每一行代码在 CPU 上是如何执行的。所以,有经验的开发者在看到 C 的代码时,基本都能够判断它对应的汇编语句是什么。
在接下来的几篇加餐里,我会通过一个简单的例子,来说明一个 C 编译器有哪些基本步骤。在这个过程中,你也可以进一步通过操作 gcc 的相关工具,来掌握如何查看 C 编译过程的每一步的中间结果。
接下来,我们就先从对 C 编译器基本步骤的整体了解开始吧。
编译的基本步骤
一个 C 语言的源代码文件,一般要经过编译和链接两个大的步骤才能变成可执行程序。其中,编译的过程是将单个 C 源码文件翻译成中间文件。而链接器主要用于符号解析,它负责将中间文件中的符号进行跨文件解析,进而把中间文件组成一个二进制文件。关于链接的知识,于航老师已经在这个专栏的第 27~28 讲中深入地介绍过了,所以在这里我就不赘述了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了C语言的编译过程,包括预处理、词法分析、文法分析等基本步骤。通过与专栏作者海纳老师的访谈,文章介绍了词法分析的作用和手段,包括正则表达式和有限状态自动机。作者通过代码实现了一个自动机,展示了如何使用自动机进行词法分析,包括识别变量名、数字、赋值操作符等。文章深入浅出,为读者提供了深入了解C语言编译过程的基础。文章内容涵盖了C语言编译的基本步骤和预处理的工作原理,适合初学者了解C语言编译过程。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入 C 语言和程序运行原理》,新⼈⾸单¥59
《深入 C 语言和程序运行原理》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 李慧文居然在这里见到了海纳老师,凡代码存在处,皆可学“海”课~太棒了~2022-03-143
收起评论