计算机语言种类繁多,根据不同用法又有不同的分类,那现在有哪些分类方式方式呢,下面我们来看下。
1. 高级语言和低级语言
低级语言:汇编语言
高级语言:c、c++、java、python、PHP、c#。
这个是很好识别的,低级语言更接近于机器指令,而高级语言更接近于人的一般的思维模式。高级语言大部分不能直接更硬件打交道,这使得程序相对于低级语言运行速度降低,但是高级语言更接近人性化,所以编程效率更高。
2. 动态类型和静态类型
动态类型:python、Ruby、JS
静态类型:c,c++,java
对于静态类型语言,变量类型都是在编译期即确定的,可以进行比较完备的类型检查,避免运行时的类型错误。对于动态类型语言,变量类型是可以动态改变的,无法在编译期确定,因此编译期的类型检查比较弱,这将导致很多类型错误直到运行期才能发现。动态类型语言特点是灵活,缺点是牺牲了部分性能。
3. 强类型和弱类型
强类型:c#
弱类型:vbs,python
弱类型的语言是没有明显的类型,他能随着环境的不同,自动变换类型,而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也有一定的默认转换,当绝没有弱类型那么随便。和动态、静态的特点一样,优缺点是灵活和性能之间的抉择。
4. 编译型,解释型
编译型:c,c++
解释型:python,JavaScript,Perl,shell
编译型是运行前先由编译器将高级语言代码编译为对应机器的cpu汇编指令集,再由汇编器汇编为目标机器码,生成可执行文件,然最后运行生成的可执行文件,一般生成的可执行文件及.exe文件。 解释型是在运行时由翻译器将高级语言代码翻译成易于执行的中间代码,并由解释器逐一将该中间代码解释成机器码并执行。对于源程序,编译型语言在执行程序中会将源文件一次性的转化为机器码,而解释型语言是边编译边解释。编译型语言是离不开解释程序的,这也导致了解释性语言对于运行时候的速度比价慢,解释型语言只要有解释器,移植起来比较方便,而编译型语言则要对于不同的系统进行编译,是的工作繁琐,且在调试程序的时候比较慢。
5. 面向对象型和面向过程型
面向对象:c#,java
面向过程:c
面向过程是决定该怎么铺成一条路到达终点,而面向对象是要用那些具有特定功能的像来做,两者是不同的思想。面向过程的优点是性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,但像单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。缺点是没有面向对象易维护、易复用、易扩展。而面向对象的优点是易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护,缺点是性能比面向过程低。
所以在选择的过程中都是两面性,编写时候的灵活以及不严谨就为后面的调试带来麻烦。但是有时候我们真的不知道以后会为这个变量赋什么类型的值的时候,又怀恋前期不需要定义变量类型的痛快。说到底适合自己的才是最合适的。