---
title: "计算机编程语言"
description: "计算机发展史、组成原理、网络与编程语言基础知识。"
---

> Documentation Index
> Fetch the complete documentation index at: https://cppguide.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 计算机编程语言

![](https://img.dailyup.xyz/originals/8208462169070-083d9a42-4484-4e0a-b88b-ec07c4590d8b.png)

几乎每个刚刚接触编程的人，写的第一个程序都是在屏幕中显示出 "Hello, World" 这个短语，代表你用计算机能懂的话与计算机进行第一次打招呼。实际上表示你写的代码没有错误，已经能正常运行了。

> Hello, World 的起源要追溯到 1972 年，由贝尔实验室著名研究员 Brian Kernighan 初次使用，后来这样的用法迅速传播，直到今天也依然受欢迎，每门编程语言的入门介绍中，都会有它的出现。

![](https://img.dailyup.xyz/optimized/8208462163132-3a13cb56-02a9-42bd-8466-0443f938e96d.png)

下面是当前最流行的三种编程语言 `Python`、`C++`、`Java` 的 "Hello, World" 写法，可以看到，每种编程语言都有不同的语法和表达方式。

::: code-group

```python
# Python
print("Hello World")
```

```cpp
// C++
#include <iostream>
using namespace std;

int main() {
    cout << "Hello World";
    return 0;
}
```

```java
// Java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
```

:::

### 计算机编程语言分类

**从编程语言发展的历程来看，大致可分为机器语言、汇编语言与高级语言三大类**，下图通过一些典型的代表性语言来描述了这三大类。

![](https://img.dailyup.xyz/optimized/8208462162617-1188adfb-0856-485b-9c26-dc26d16e6899.png)

> 也就是上图中的 Scratch、Python、Java、C++、C 都是属于高级语言。除此之外，我们经常在网络上听到的一些编程语言（如：JavaScript、Go、Rust 等）也都属于高级语言。

越往下的语言与机器更接近，执行效率更高一些，但与人更远，可编写与可读性更差；而越往上的编程语言，对人更友好，编写程序的效率更高，可读性也更好，但执行效率往往更低一些。

**1. 机器语言：**

计算机内部全是用由 0 和 1 组成二进制数来表示的，机器语言就是直接用二进制来编写程序的一种语言。机器语言编写的代码可以被机器直接执行，运行速度快，但无论是可读性还是可编写性都非常差，现在几乎不会涉及到直接编写机器语言的场景了。

**2. 汇编语言：**

由于机器语言使用的是二进制代码，它对人类来说很难阅读和编写。所以，为了让人们更容易理解和编写程序，汇编语言应运而生。

汇编语言就是在机器语言的基础上添加了用英文单词表示的助记符（如 ADD 表示加法、MOV 表示移动）的一种低级语言，相对机器语言来说，编写汇编语言会更轻松一些。

下图是一段汇编语言编写的程序（反正我看不懂~）

```assembly
section .data
	hello:     db 'Hello, World!',10
	helloLen:  equ $-hello

section .text
	global _start

_start:
	mov eax,4
	mov ebx,1
	mov ecx,hello
	mov edx,helloLen 
	                    
	int 80h 
	mov eax,1      
	mov ebx,0 
	int 80h;
```

**3. 高级语言：**

机器语言与汇编语言可统称低级语言，我们现在大部分接触到的编程语言都属于高级语言，高级语言更加接近自然语言，编写更容易，也更易懂，但最终还是要被转换为机器语言去执行，因此程序的执行效率往往更低一些。

像 `Scratch` 这样的语言比较特别，因为是专门针对青少年学习编程开发的，都是一些积木块指令，我们通过拖拽拼搭就可以完成程序的编写，像搭乐高积木一样，学习门槛更低。

![](https://img.dailyup.xyz/optimized/8208462161547-a7ca1d27-88e9-4e91-b95c-704bb4791972.png)

### 编译与解释型语言

对于任何一门高级语言来说，最终还是要转换为二进制代码去运行的，根据不同编程语言的执行方式或解释过程，**高级语言又可以分为编译型和解释型两种类型**。

**1. 编译型语言**

编译型语言是一种**在程序运行之前需要先进行编译**的语言。编译器会将源代码（你写的程序）一次性转换成计算机能够理解的机器语言代码。这个转换的过程叫做编译。一旦编译完成，你就可以直接运行生成的机器语言代码，而不需要再次进行编译。

**编译型语言特点：**

- 执行速度通常较快，因为它们直接在计算机硬件上运行
- 对于开发人员来说，编译型语言调试和修改的成本较高，因开发过程中需要不断的编译和构建
- 可移植性较差，因为编译型语言是直接生成二进制文件，在不同的计算机上可能需要重新编译才能运行

**常见的编译型语言：**

- C 和 C++，是广泛使用的编译型语言，它们提供了高性能和直接访问底层硬件的能力
- Go，一种现代的编译型语言，同样注重高效和简洁的代码编写，适用于网络编程和分布式系统

**2. 解释型语言**
解释型语言是一种在程序运行时逐行解释执行的语言。解释器会逐行读取源代码，并将其转换为计算机能够执行的指令。每执行一行代码，解释器都会即时地将其翻译成机器语言并执行。因此，**解释型语言不需要预先编译，你可以边解释边执行代码**。

**解释型语言特点：**

- 执行速度通常较慢，因为它们需要在运行时逐行解释和执行代码
- 对于开发人员来说，解释型语言通常具有更友好的交互性和动态性
- 可移植性较高，同一份源码，只需要不同平台上安排相应的解释器即可运行

**常见的解释型语言：**

- Python，一种易学易用的解释型语言，它具有简洁的语法和强大的库支持，适用于各种领域，如数据分析、Web开发和人工智能等。
- JavaScript，一种广泛用于前端开发的解释型语言，它可以在网页上直接运行，并为网页提供交互性和动态效果。

> 需要注意的是，并非所有的语言都严格属于编译型或解释型。有些语言是混合型的，结合了编译和解释的特性。例如，Java是一种编译型语言，但它使用了虚拟机（JVM）来解释执行字节码。


## 小结

编程语言本身没有绝对的好坏之分，每种语言都有它当初被发明出来时适用的场景。而且大多编程语言背后的编程逻辑都是相通的，学会一门常见的编程语言后，再学另外的编程语言学习也会简单很多。

Source: https://cppguide.xyz/computer-basics/language/index.mdx
