编程语言介绍
Posted hurst
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程语言介绍相关的知识,希望对你有一定的参考价值。
语言的进化史
机器语言
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。机器语言属于低级语言。
汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。汇编源程序一般比较冗长、复杂、容易出错,但汇编语言的优点是源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
目前硬件厂商的专业人员使用的还是汇编语言。
高级语言
高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,像最简单的编程语言PASCAL语言也属于高级语言。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。不同高级语言之间最本质的区别是:转化成二进制的方式不一致。
按照转化方式,可以将高级语言分为:
编译类
在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。
编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等
跨平台的概念:在两个不同的操作系统上想要实现相同的功能时,调用接口的指令是不同的,
解释类
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此运行效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、php、Ruby等语言。
解释型语言最大的好处就是跨平台(在安装解释器的前提下)。第二个好处就是发现程序的错误后,可以立即修改。提高调试Bug的效率。
虽然解释类语言的执行效率低,但是那是针对计算机而言的。人类的最快反应速度在01s左右,是感知不到解释类和编译类语言的差异的
解释型和编译型语言的优缺点
编译型
1、执行过程
- 把源代码编译成机器语言的可执行程序;
- 执行可执行程序文件;
2、优点 - 程序执行时,不再需要源代码,不依赖语言环境,因为执行的是机器码文件;
- 执行速度快,因为源代码已经编译成计算机可以直接理解的机器语言。
3、缺点 - 每次修改了源代码,需要重新编译,生成机器文件;
跨平台型不好,不同操作系统,调用底层的机器指令不同,因为不同平台生成不同的机器码文件。
解释型
1、执行过程- 用户调用解释器,执行源代码文件;
- 解释器把源代码文件边编译成机器指令,边交给CPU执行。
2、优点 - 天生跨平台,因为解释器已经做好了不同平台的交互处理,用户写的源代码不需要再考虑平台差异性,可谓:一份源代码,所有平台都可直接执行;
- 随时修改,立刻见效,改完源代码,直接运行看效果。
3、缺点 - 运行效率低,所有的代码均需经过解释器边解释边执行,速度比编译型慢很多;
代码是明文。
以上是关于编程语言介绍的主要内容,如果未能解决你的问题,请参考以下文章