编程语言分类

Posted xqzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程语言分类相关的知识,希望对你有一定的参考价值。

编程语言分类

低级语言

泛指机器语言和汇编语言

计算机在工作的时候只认识机器语言,即0和1的代码。最初的计算机程序都是用0和1的序列表示的

早期计算机就是指可以执行机器指令,进行运算的机器。在我们常用的PC机中,有一个芯片,就是我们常说的CPU(中央处理单元)可以完成前面所说的计算机的功能,但是每一种这样的微处理器由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言

机器语言是计算机最原始的语言,由0和1的代码构成

早期的程序设计均使用机器语言。程序员们将用0, 1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍,而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。这时候汇编语言便产生了

汇编语言,它用人类容易记忆的语言和符号来表示一组0和1的代码,如AND表示加法助记符。

可能有人会问,我们用汇编语言编写程序,可是计算机只认识机器指令,那该怎么办?这时候就需要一个能将汇编语言转换成机器指令的工具,我们称其为编译器。程序员用汇编语言写出源代码,再用汇编编译器将其编译为机器码,最后由计算机执行

汇编语言指令是机器指令的一种符号表示,而不同类型的CPU 有不同的机器指令系统,也就有不同的汇编语言,所以,汇编语言程序与机器有着密切的关系。所以,除了同系列、不同型号CPU 之间的汇编语言程序有一定程度的可移植性之外,其它不同类型(如:小型机和微机等)CPU 之间的汇编语言程序是无法移植的,也就是说,汇编语言程序的通用性和可移植性要比高级语言程序低

总结起来就是三个特点:机器相关性、高速度和高效率、编写和调试复杂(相对于高级语言)

高级语言

我们现在大多数人使用的语言,如C、C++、Python、Java、js等等,都属于高级语言。相对于低级语言,它更接近于我们平时正常的人思维,其最大的特点是编写容易,代码可读性好。实现同样的功能,使用高级语言耗时更少,程序代码量更短,更容易阅读。其次,高级语言是可移植的,也就是说,仅需稍作修改甚至不用修改,就可将一段代码运行在不同类型的计算机上

其缺点也很明显,使用高级语言编写的程序运行时,需要先将其翻译成低纸语言计算机才能运行它,在翻译过程中可能程会产生一些多余的部分,运行效率低些。另外,对硬件的可控性相对于低级语言弱些,目标代码量较大

编译型语言

高级语言程序想要在计算机上执行,必需先将其翻译成计算机能识别的低级语言才能执行。对于不同的语言编写的代码,可以采用两种不同的翻译方式,一种是编译翻译,一种是解释翻译,分别对应着编译型语言和解释型语言

典型的如C、C++等语言,都属于编译型语言。它是编译的时候直接编译成机器可以执行或调用的程序,如exe等类型。运行时直接运行exe程序就可以了,无需重新编译,所以程序执行效率较高

相对于解释型语言,其优点是运行速度快,代码效率高,编译后程序不可以修改,且看不到源码,保密性较好

缺点是代码需要经过编译方可运行,可移植性差,只能在兼容的操作系统上运行

由于其执行速度较快,同等条件下对系统的要求较低,因此常用于开发操作系统、大型应用程序、图像处理、数据库开发等场合

解释型语言

典型的如Java、Python、js等语言,都属于解释型语言。这类程序不需要编译,运行时使用一个专门的解释器去翻译,每一条语句都是执行的时候才翻译,所以这类程序每执行一次就要翻译一次,运行效率较称低

相对于编译性语言,其优点是可移植性好,只要有解释器环境,程序就可以在不同的操作系统上运行

缺点是代码需要有专门的解释器,在程序运行时,除要给用户程序本身分配内存空间外,解释器也占用系统资源,所以其运行速度较慢。另外,也很难达到像C、C++那样操作系统底层操作的目的

解释型语言常用于,一是对运行速度要求不高(如一些网页脚本、服务器脚本、接口辅助开发等)的场合,二是对跨平台(操作系统的兼容性)有要求的场合

动态语言

是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。

主要动态语言:Object-C、C#、javascriptphp、Python、Erlang。

静态语言

与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。

强类型语言

一旦一个变量被指定了某个数据类型,如果不经过强制类型转换,那么它就永远是这个数据类型。你不能把一个整形变量当成一个字符串来处理
主要语言:Java、C#、Python、Object-C、Ruby

弱类型语言

数据类型可以被忽略,一个变量可以赋不同数据类型的值。一旦给一个整型变量a赋一个字符串值,那么a就变成字符类型。
主要语言:JavaScript、PHP、C
技术图片

以上是关于编程语言分类的主要内容,如果未能解决你的问题,请参考以下文章

编程语言分类

编程语言的分类

编程语言分类

编程语言的分类

编程语言分类

Python之编程基础(编程语言分类)