编程语言的发展史
1.机器语言
直接用二进制跟计算机直接沟通交流,直接操作硬件
优点:计算机能够直接读懂,速度快
缺点:开发效率极低
ps:站在奴隶的角度说奴隶能够听懂的话
0000,0000,000000010000 代表 LOAD A, 16
0000,0001,000000000001 代表 LOAD B, 1
0001,0001,000000010000 代表 STORE B, 16
0001,0001,000000000001 代表 STORE B, 1[1]
2.汇编语言
用简单的英文标签来表示二进制数,直接操作硬件
打印一句hello world需要些以下代码
; hello.asm
section .data ; 数据段声明
msg db “Hello, world!”, 0xA ; 要输出的字符串
len equ $ - msg ; 字串长度
section .text ; 代码段声明
global _start ; 指定入口函数
_start: ; 在屏幕上显示一个字符串
mov edx, len ; 参数三:字符串长度
mov ecx, msg ; 参数二:要显示的字符串
mov ebx, 1 ; 参数一:文件描述符(stdout)
mov eax, 4 ; 系统调用号(sys_write)
int 0x80 ; 调用内核功能
; 退出程序
mov ebx, 0 ; 参数一:退出代码
mov eax, 1 ; 系统调用号(sys_exit)
int 0x80 ; 调用内核功能
优点:开发效率高于机器语言
缺点:执行效率较机器语言
高级语言
站在奴隶主的角度,说奴隶主的话
php,c,c++,java,c#,python,go
1.编译型(类似于谷歌翻译) c
一次翻译之后,就可以拿着翻译之后的结果已多次运行
编译的过程需要用到编译器
优点:执行效率高
缺点:开发效率低
2.解释型(类似于同声传译) python
一行一行的翻译(读一行翻译一行)
解释的过程需要用到解释器
优点:开发效率高
缺点:执行效率低
学习难度
机器语言>>>汇编语言>>>高级语言
执行效率
机器语言>>>汇编语言>>>高级语言
开发效率
高级语言>>>汇编语言>>>机器语言
python解释型