编程语言之间的"爱恨情仇"

编程语言的探索之旅

  作为一个电脑小白,一直有一个疑问:为什么我们在电脑上输入一串东西它就给能识别我们输入的是什么内容?有一点电脑基础的童鞋都应该知道,电脑能识别的语言只有0和1,就是0和1的组合才创造出丰富多彩的虚拟世界。作为一个程序员,肯定要会编程。那么什么是编程?为什么要编程?通俗一点来说,编程就是写代码,而写代码为了什么,就是让计算机帮你干活。把一堆代码集合在一起实现某个功能,就是一个应用软件,这些代码就是计算机能理解的语言。

编程语言的进化历程:

机器语言:

由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算的机器语言。
机器语言属于低级语言。
输出的程序全是些0和1的指令代码,直观性差,还容易出错。它存在着多达100000种机器语言的指令,不可能把这些指令全部列出来,所以大多数程序员已经不再去学习机器语言了。
View Code

汇编语言:

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。汇编源程序比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识。
但是汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
View Code

高级语言:

高级语言是大多数编程者的选择,和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,所以使用高级语言编程就不需要有太多的专业知识。
高级语言并不是特指某一种具体的语言,它包括了很多编程语言,如:C\C++,JAVA,PHP,Python等,在开发效率上大大提高。
View Code

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行!

高级语言分类:

编译型:

编译是指在应用源程序执行之前,就将程序源代码"翻译"成目标代码(机器语言),其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,在重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,修改很不方便。
编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差。
总结:
1.把源代码编译成机器语言的可执行程序
2.执行可执行程序文件
View Code
1.程序执行时,不再需要源代码,不依赖语言环境,因为执行的是机器码文件
2.执行速度快,因为你的程序代码已经翻译成了是计算机可以直接理解的机器语言
优点
1.每次修改了源代码,需要重新编译,生成机器码文件
2.跨平台性不好,不同操作系统,调用底层的机器指令不同,需为不同平台生成不同的机器码文件
缺点

解释型:

执行方式类似于我们日常生活中的"同声翻译",应用程序源代码一边由相应语言的解释器"翻译"成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
总结:
1.用户调用解释器,只I型那个源代码文件
2.解释器把源代码文件边解释成机器指令,边交给CPU执行
View Code
1.天生跨平台,因为解释器已经做好了对不同平台的交互处理,用户写的源代码不需再考虑平台差异性,可谓,一份源代码,所有平台都可直接执行
2.随时修改,立刻见效,改完源代码后,直接运行看效果
优点
1.运行效率低,所有的代码均需经过解释器边解释边执行,速度比编译型慢很多
2.代码是明文
缺点

总结:

机器语言:优点是最底层,速度最快;缺点是最复杂,开发效率最低

汇编语言:优点是比较底层,速度最快;缺点是复杂,开发效率最低

高级语言:

  编译型语言执行速度快,不依赖语言环境运行,跨平台差

  解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行

原文地址:https://www.cnblogs.com/ccmldl/p/9516119.html