1.什么是编程语言?
人与计算机之间沟通交流的媒介
编程语言俗称“计算机语言”,种类非常的多,总的来说可以分成机器语言、汇编语言、高级语言三大类。
2.什么是编程:
编程就是将人的思维逻辑通过计算机能够读懂的方式写下来,然后借助于计算机来达到某一目的或解决某个问题
3.为什么要编程?
解放人力,让计算机能够按照人的思维逻辑去帮你做事
编程语言的发展史
1.机器语言(b,w)(直接用二进制跟计算机直接沟通交流,直接操作硬件)
优点:计算机能够直接读懂,速度快
缺点:开发效率极低
ps:站在计算机的角度说计算机能够听懂的话,
不同型号的CPU都有各自的机器语言,即指令系统。
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.汇编语言(b,w)(用简单的英文标签来表示二进制数,直接操作硬件)
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
例如:打印一句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 ; 调用内核功能
优点:开发效率高于机器语言
高级语言(High-level programming language)对于机器语言来说,他就是一种指令机的体系。在这种语言下,语法和结构更接近于人们用的语言,而且比较远离对硬件的直接操作,让一般人经过学习后就可以去编程。
简单来说,高级语言分为编译型语言和解释型语言
1.编译型(b,w)(类似于谷歌翻译,): 例如:**C
一般而言,用编译语言写成的程式,在执行期的执行速度,通常比用直译语言写的程式快。因为程式在编译期,已经被预先编译成机器码,可以直接执行,不用像直译语言一样,还要多一道直译程序。
但是要先编译,之后才能执行,这也造成了编译语言的缺点。一般而言,编译语言的程式开发速度,以及除错时间,都是比较长的。因为它不像解释型语言可以写完一行,或一小段程式之后,马上执行,马上除错。解释型语言通常让程式开发的整体时间变少,在开发过程中,解释型语言也可以更弹性、快速的测试自己的想法。
优点:执行效率高
缺点:开发效率低
2.解释型((b,w)专业翻译人员,说一句翻译一句)**: 例如:**python,Ruby
它是和编译型语言相反的,这种类型的语言,会将代码一句一句直接执行,不需要像编译语言(Compiled language)一样,经过编译器先行编译为机器码,之后再执行。
这种程式语言需要利用直译器,在执行期,动态将程式码逐句直译(interpret)为机器码,或是已经预先编译为机器码的的子程式,之后再执行。
(就算有小BUG,但如果用不到,就不会报错)
特点:依赖解释器,跨平台性好.
优点:开发效率高
缺点:执行效率低
编译型与解释型,两者各有利弊
前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如JavaScript、VBScript、Perl、Python、Ruby、 等等。
但随着硬件的升级和设计思想的变革,编译型和解释型语言越来越笼统,主要体现在一些新兴的高级语言上,而解释型语言的自身特点也使得编译器厂商愿意花费更多成本来优化解释器,解释型语言性能超过编译型语言也是必然的。
个人感觉:其实各种语言相差的执行效率也就那样,
主要还是看开发的效率,就像火了一个游戏,其他游戏就会争相模仿,开发快的几天就弄出来了,开发慢的,一个多月,一个多月过后,游戏还火吗?抢的就是时间,抢的就是用户,抢的就是市场。
低级语言和编绘语言,是站在计算机的角度,说计算机的语言
学习难度:
机器语言->汇编语言->高级语言
执行效率:
机器语言->汇编语言->高级语言
开发效率: