shader mad是汇编指令吗_你真的懂"Hello world"吗?从编译器到OS内核系列:编译器基本概念...

本文介绍了编译器的基本概念,C语言程序的构建过程,包括预编译、编译、汇编和链接四个阶段。通过"Hello World"例子,阐述了每个阶段的作用,例如预编译处理宏定义和头文件,编译生成汇编代码,汇编转为目标文件,最后链接形成可执行文件。
摘要由CSDN通过智能技术生成

本文是《你真的理解"Hello world"吗?从编译链接到OS内核系列专题》的第一章的第一小节,主要介绍编译器的基本概念以及C语言程序的构建过程。全系列大纲如下:

前言

第1章 编译器的工作原理

1.1 编译器的基本概念及C语言程序的构建过程(本篇)

第2章 链接器的工作原理

第3章 深入分析ELF文件格式

第4章 动态链接库与静态链接库

第5章 程序的数据存储

第6章 函数参数、返回值的传递过程

第7章 虚拟内存

第8章 程序的加载和重定位

第9章 程序在内存中的布局

第10章 带你重新认识main()函数

第11章 从应用程序到系统调用

第12章 程序的退出和资源回收


本系列专题将带你了解"Hello World"背后隐藏的那些极为重要却又鲜为人知的底层技术,让你对计算机系统的基本原理有一个全面深刻的理解。

有兴趣的童鞋,不妨关注一下吧!

注:本篇的重点是介绍基本概念,让童鞋们对C语言程序构建过程有一个整体的了解,后续会有专门的章节详细介绍编译、链接的实现原理等技术细节,敬请期待!

引子

人与人之间可以通过文字语言或者肢体语言进行交流,海豚之间通过发出不同频率的“脉冲声”进行交流,计算机之间则通过由0和1组成的电信号进行交流。

那么,人与计算机之间如何进行交流呢?这就不得不用到编译器了。

d69dd010ae638e974a4b816a92f872af.png

编译器是什么

简单来讲,编译器就是把一种语言(通常是某种高度抽象的高级语言)转化为另一种语言(通常是某种低级语言)的计算机程序。

编译器要解决的根本问题

人类无法直观地理解电信号所携带的信息,同样,计算机也无法理解人类使用的自然语言所表达的含义。

因此,要想让计算机能够“听懂”人话,帮人办事儿,就必须要能够把人类的语言,翻译成计算机能够识别的二进制机器指令。而这,就是编译器所要解决的最根本的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值