计算机编程语言
几乎每个刚刚接触编程的人,写的第一个程序都是在屏幕中显示出 “Hello, World” 这个短语,代表你用计算机能懂的话与计算机进行第一次打招呼。实际上表示你写的代码没有错误,已经能正常运行了。
Hello, World 的起源要追溯到 1972 年,由贝尔实验室著名研究员 Brian Kernighan 初次使用,后来这样的用法迅速传播,直到今天也依然受欢迎,每门编程语言的入门介绍中,都会有它的出现。
下面是当前最流行的三种编程语言 Python
、C++
、Java
的 “Hello, World” 写法,可以看到,每种编程语言都有不同的语法和表达方式。
::: code-group
# Pythonprint("Hello World")
// C++#include <iostream>using namespace std;
int main() { cout << "Hello World"; return 0;}
// Javapublic class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); }}
:::
计算机编程语言分类
从编程语言发展的历程来看,大致可分为机器语言、汇编语言与高级语言三大类,下图通过一些典型的代表性语言来描述了这三大类。
也就是上图中的 Scratch、Python、Java、C++、C 都是属于高级语言。除此之外,我们经常在网络上听到的一些编程语言(如:JavaScript、Go、Rust 等)也都属于高级语言。
越往下的语言与机器更接近,执行效率更高一些,但与人更远,可编写与可读性更差;而越往上的编程语言,对人更友好,编写程序的效率更高,可读性也更好,但执行效率往往更低一些。
1. 机器语言:
计算机内部全是用由 0 和 1 组成二进制数来表示的,机器语言就是直接用二进制来编写程序的一种语言。机器语言编写的代码可以被机器直接执行,运行速度快,但无论是可读性还是可编写性都非常差,现在几乎不会涉及到直接编写机器语言的场景了。
2. 汇编语言:
由于机器语言使用的是二进制代码,它对人类来说很难阅读和编写。所以,为了让人们更容易理解和编写程序,汇编语言应运而生。
汇编语言就是在机器语言的基础上添加了用英文单词表示的助记符(如 ADD 表示加法、MOV 表示移动)的一种低级语言,相对机器语言来说,编写汇编语言会更轻松一些。
下图是一段汇编语言编写的程序(反正我看不懂~)
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
这样的语言比较特别,因为是专门针对青少年学习编程开发的,都是一些积木块指令,我们通过拖拽拼搭就可以完成程序的编写,像搭乐高积木一样,学习门槛更低。
编译与解释型语言
对于任何一门高级语言来说,最终还是要转换为二进制代码去运行的,根据不同编程语言的执行方式或解释过程,高级语言又可以分为编译型和解释型两种类型。
1. 编译型语言
编译型语言是一种在程序运行之前需要先进行编译的语言。编译器会将源代码(你写的程序)一次性转换成计算机能够理解的机器语言代码。这个转换的过程叫做编译。一旦编译完成,你就可以直接运行生成的机器语言代码,而不需要再次进行编译。
编译型语言特点:
- 执行速度通常较快,因为它们直接在计算机硬件上运行
- 对于开发人员来说,编译型语言调试和修改的成本较高,因开发过程中需要不断的编译和构建
- 可移植性较差,因为编译型语言是直接生成二进制文件,在不同的计算机上可能需要重新编译才能运行
常见的编译型语言:
- C 和 C++,是广泛使用的编译型语言,它们提供了高性能和直接访问底层硬件的能力
- Go,一种现代的编译型语言,同样注重高效和简洁的代码编写,适用于网络编程和分布式系统
2. 解释型语言 解释型语言是一种在程序运行时逐行解释执行的语言。解释器会逐行读取源代码,并将其转换为计算机能够执行的指令。每执行一行代码,解释器都会即时地将其翻译成机器语言并执行。因此,解释型语言不需要预先编译,你可以边解释边执行代码。
解释型语言特点:
- 执行速度通常较慢,因为它们需要在运行时逐行解释和执行代码
- 对于开发人员来说,解释型语言通常具有更友好的交互性和动态性
- 可移植性较高,同一份源码,只需要不同平台上安排相应的解释器即可运行
常见的解释型语言:
- Python,一种易学易用的解释型语言,它具有简洁的语法和强大的库支持,适用于各种领域,如数据分析、Web开发和人工智能等。
- JavaScript,一种广泛用于前端开发的解释型语言,它可以在网页上直接运行,并为网页提供交互性和动态效果。
需要注意的是,并非所有的语言都严格属于编译型或解释型。有些语言是混合型的,结合了编译和解释的特性。例如,Java是一种编译型语言,但它使用了虚拟机(JVM)来解释执行字节码。
小结
编程语言本身没有绝对的好坏之分,每种语言都有它当初被发明出来时适用的场景。而且大多编程语言背后的编程逻辑都是相通的,学会一门常见的编程语言后,再学另外的编程语言学习也会简单很多。