
C语言-第一章第一节-各种“程序”的概念

一、程序
什么是程序?人们常说,我们仿佛是上帝创造的 NPC,只会机械的重复着毫无意义的动作, 毫无思想的执行着一条条预设的指令,完成衬托着那些主角的成功。同样的,人们把需要用计算机完成的工作写成一条条指令,并把这些指令存储在预定的内存中,当人们给出执行命令后,计算机就按指令顺序自动进行操作。这些可以连续执行的一条条指令的集合称为“程序”。
二、程序设计语言的发展
2.1 机器语言
一切的开始,都是 0 与 1 的交汇。因为组成电子逻辑的电门仅有通过和不通过两种判断。于是人们将计算机的运算用 01 来编写,自此,将 100110011101 这种专门让机器执行的指令码叫做机器语言。
2.2 汇编语言
在编写程序时,人脑作为仅有 10 bit /s 交换流的低数据流单线程的处理器,当然没办法记下数量庞大的 01 字符串来执行类似于相加相减等操作,别说更复杂的的运算。所以汇编语言便应运而生。用助记符来代表系统指令与计算机硬件直接交互,比如,相加我们用 ADD 来表示相加等等。
2.3 高级语言
高级语言分为两大部分,第一部分时面向对象,第二部分是面向过程。高级语言是比汇编语言更抽象的存在,其在思维逻辑上,与机器语言和汇编语言更符合人类的思维方式。同时它可以将开发者的思维聚焦到具体问题的软件逻辑而非协调底层硬件。高级语言更接近人类语言,通常使用词法和语法结构,使程序更易读、更易写。高级语言通过编译器或解释器转换为机器码,让计算机能够理解并执行这些指令。
2.3.1 面向对象语言
面向对象语言这一块更偏向于让谁来完成工作,类比于团队合作,面向对象语言关注于把一件事情下分给各个部门,然后各个部门协同完成一件工作。其中代表语言如 Python,Java 等。
2.3.2 面向过程语言
面向过程语言更偏向于步骤,像是写教程,第一步要干什么,第二步要干什么,将一份工作拆分为一块一块,分步完成。
2.3.3 两种面向的区别
总而言之,面向过程是 「怎么做」
,面向对象是 「谁来做」
。就像单独旅行 vs 跟团游,一个要自己安排所有步骤,一个把任务分配给导游/司机/酒店各司其职。
2.4 三种语言的区别
其中机器语言和汇编语言更偏向于让机器读,人的理解比较低,而高级语言则更偏向让人理解,机器的部分由编译器等等来执行
三、程序间的转换
我们的高级语言通过编译才能转化为机器语言,而汇编语言需用通过汇编才可以转为机器语言。
通常情况下,我们的源程序,如.c文件,. cpp 文件需要先编译为. obj文件,然后链接各种库,最后封装才能成为一个可执行文件. exe。其中. obj 文件和. exe 文件都是二进制文件。
需要注意的是,.obj和.exe虽然都是二进制文件,但是可以直接运行的仅有.exe,.obj文件是编译后的目标文件,需要通过链接器(linker)与其他目标文件或库文件链接,生成最终的可执行文件(如 .Exe
),才能在操作系统上运行。
然后,在编译过程中,像是注释之类的非执行语句,会被编译器直接跳过,不会被转换为二进制语句,而只有二进制语句才会被转换为二进制的机器指令。
C语言程序有两种执行方式,分别是编译执行和解释执行。这个有关于机器的不过多解释。
本小节总结
一、程序的定义
程序本质
- 由一系列可连续执行的指令组成,存储在内存中,计算机按顺序自动执行这些指令完成特定任务。
二、程序设计语言的发展
2.1 机器语言
- 特点:
- 由二进制代码(0 和 1)直接编写,是计算机唯一能直接执行的指令。
- 示例:
100110011101
。
- 局限性:
- 对人类极不友好,难以记忆和编写复杂逻辑。
2.2 汇编语言
- 特点:
- 用助记符(如
ADD
表示相加)代替机器指令,与硬件直接交互。 - 示例:
MOV AX, BX
。
- 用助记符(如
- 优势:
- 比机器语言更易读,但仍依赖硬件知识。
2.3 高级语言
- 核心特点:
- 抽象层次高,接近人类自然语言,聚焦问题逻辑而非硬件细节。
- 需通过编译器或解释器转换为机器码。
- 分类:
- 面向对象语言(如 Java、Python):
- 关注“谁来做”,将任务分配给不同对象协作完成(类似团队分工)。
- 面向过程语言(如 C):
- 关注“怎么做”,按步骤拆解任务(类似写教程分步操作)。
- 面向对象语言(如 Java、Python):
- 与底层语言的区别:
- 机器/汇编语言:机器易读,人类难理解。
- 高级语言:人类易读写,机器需编译后执行。
三、程序间的转换
编译流程
- 高级语言 → 机器语言:
源文件(如.c
)→ 编译器 → 目标文件(.obj
)→ 链接库文件 → 可执行文件(.exe
)。
文件类型说明
.obj
和.exe
均为二进制文件,机器可直接执行。
四、核心对比总结
语言类型 | 特点 | 示例指令 | 适用场景 |
---|---|---|---|
机器语言 | 二进制代码,机器直接执行 | 10101010 |
底层硬件操作 |
汇编语言 | 助记符替代机器指令 | ADD AX, BX |
硬件驱动、性能优化 |
高级语言 | 人类易读写,需编译后执行 | print("Hello") |
软件开发、复杂逻辑实现 |
- 标题: C语言-第一章第一节-各种“程序”的概念
- 作者: 亓翎_Re-TikaRa
- 创建于 : 2025-04-12 19:51:50
- 更新于 : 2025-04-12 20:35:18
- 链接: https://re-tikara.fun/posts/644f0e81/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。