程序设计语言是用于编写计算机程序的形式化语言,通过特定语法和语义规则,让开发者能够描述计算机需要执行的操作和逻辑。它是人与计算机沟通的桥梁,可分为以下几类:
(1)低级语言
机器语言:由二进制指令(0 和 1)组成,直接被计算机硬件识别,执行效率最高,但可读性极差(如10110000表示加载数据)。
汇编语言:使用助记符(如MOV、ADD)替代二进制指令,需通过汇编器转换为机器语言,仍与硬件紧密相关(例:MOV AX, 100表示将数值 100 存入寄存器 AX)。
(2)高级语言
接近人类自然语言和数学表达式,需通过编译或解释转换为机器语言,可读性强,跨平台性好。常见类型包括:
编译型语言:如 C、C++、Go,需通过编译器一次性转换为目标机器码,执行效率高。
解释型语言:如 Python、JavaScript,通过解释器逐行翻译并执行,灵活性高但效率较低。
混合型语言:如 Java、C#,先编译为中间字节码,再通过虚拟机解释执行,兼具跨平台性和效率。
编译的定义:编译是将高级语言源代码转换为计算机可执行的机器语言程序的过程,由编译器(Compiler)完成,主要针对编译型语言。
编译的核心阶段(以 C 语言为例):
预处理(Preprocessing)
处理#include、#define等预处理指令,展开头文件和宏定义(例:#define PI 3.14会被直接替换为数值)。
编译(Compilation)
将预处理后的代码转换为汇编语言(如int a = 5 + 3;转为汇编指令)。
汇编(Assembly)
汇编器将汇编语言转换为目标机器码(二进制文件,.obj 或.o 格式)。
链接(Linking)
链接器将目标文件与依赖的库文件(如标准库、第三方库)合并,生成可执行文件(.exe 或二进制文件)。
程序运行的基本概念
- 运行的定义
程序运行是指计算机执行可执行文件或解释器处理代码的过程,涉及内存分配、指令执行、资源管理等步骤。 - 程序运行的基本流程
加载阶段:操作系统将可执行文件或代码加载到内存,分配内存空间。
初始化阶段:初始化变量、调用构造函数(如 C++ 的main函数前的准备工作)。
执行阶段:CPU 按指令顺序执行操作,处理输入输出(如printf(“Hello”)输出字符串)。
终止阶段:释放资源(如关闭文件、释放内存),程序结束。