什么是编程语言?
本质 上跟人类语言, 目的一样。 沟通
电流+一堆硬件
高电压1 低电压 0
高电压1 低电压 0
高电压1 低电压 0 8 晶体管
0101010101010 play sound
10100000 open file
机器语言 直接跟硬件打交道
汇编语言 开发效率低
0101010101010 <--- play_m
高级语言
对底层硬件的各种指令 做了封装
play_music("忽然.mp3")
人类代码 ——翻译———— 》机器语言
根据翻译方式不同产生了2个流派
编译型语言
人类代码 ————》一次性把代码给 翻译官(编译器)————》汇编--》机器语言
代表 : c,c++,golang
优点:执行速度快
缺点:跨平台可移植性差
硬件 , cpu , 有自己指令规则 0000000001 打印, 1110000 play music
intel ,amd : 复杂指令集 ,高性能高功耗
ARM :精简指令集 手机 平板 , 低功耗
你的基于intel平台编译出来的程序是没有办法在arm平台上运行
软件,你的c程序想在windows,linux,mac同时可以运行,
windows invoke_window
linux,mac call_window
解释型语言
人类代码 ————》边执行边翻译(解释),陪同翻译(解释器/虚拟机) ————》机器语言
代表:python,php,java,ruby,c#
优点:跨平台好
缺点:翻译需要时间,执行速度 慢
机器理解的慢, 1ms, 10ms
大多数情况下, 语言的快慢是我们人类感知不到的。