一、编程语言的分类
-
机器语言(低级语言)
可以直接和硬件交互,用0和1和计算机沟通
优点:执行效率高(因为可以直接和计算机沟通)
缺点:开发效率低(都是用0和1进行编码)
-
汇编语言
同样可以直接和硬件交互
优点(相较于机器语言):开发效率高(不再是0和1了)
缺点(相较于机器语言):执行效率低(不在是计算机能读懂的0和1了)
-
高级语言
接近于人类的语言。
假如现在有一个外国人要跟你交谈而你又听不懂那么你就可以有两种方式来翻译他说的话,就是解释型和编译型
-
编译型
可以和计算机硬件间接交互
先全部写完再进行编译,编译成另一个文件,在与计算机进行沟通得到结果(就像一个外国人和你交谈而你可以先将他说的话全部都先记下来,再翻译成中文进行沟通)
优点(相较于解释型语言):执行效率高(只需编译一次就能与计算机进行交流)
缺点(相较于解释型语言):开发效率低(需要全部写完才能编译,一旦出错需要全文检查)
如:C;C++;JAVA;GO
C语言hello world:
include<stdio.h> main { printf("hello world! ") }
Java hello world:
public class hello { public static void main(String[]ages) { System.out.println("hello world!") } }
-
解释型
逐行翻译,需要先经过解释器(编译型语言写的)在进行编译,再与计算机进行交流沟通(就像一个外国人与你交谈,然后你找一个翻译官让他为你逐句翻译)
优点(相较于编译型语言):开发效率高(每写一行翻译一行,一旦出错立刻就能知道)
缺点(相较于编译型语言):执行效率低(需要先翻译成解释型语言,在进行编译才能与计算机进行沟通)
如:Python
Python hello world:
print("hello world!")
-
-
网络瓶颈效应
首先应用程序都需要连接网络,而网络都会有延迟这里假设延时10ms,通过编译型高级语言写出来的程序比通过解释型高级语言写出来的程序再快也就快1ms,而这1ms相较于网络延时的10ms可能就无伤大雅
由于我们写的程序要越快越好所以我们应该选择编译型语言,但是又由于网络瓶颈效应所以在开发一些需要快速开发的程序时可以考虑使用解释型语言