编程语言和它各种申必的分类
编程语言和它各种申必的分类
/编辑 Coinred001
0、编程语言是啥?可以用来交流吗?
编程语言(Programming Language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
人要指挥计算机完成各种作业,需要发出计算机能够接受和理解的指令,因此需要事先编好一系列指令的组合输入计算机(也称程序设计),编写计算机程序的数字、字符和语法规划,由这些字符和语法规则即组成计算机各种指令(或各种语句),形成计算机语言。
因此编程语言是人单方面告诉计算机你应该做什么怎么做,是人与计算机的交流,人与人交流用编程语言大概是听不懂的(过年哪个亲戚让你讲几句python语言的话就可以打死了)。
1、编程语言的初步分类——按发展过程分:
A、机器语言:机器能直接识别的程序语言或指令代码叫做机器语言。计算机能够快速看懂机器语言,因为它是由二进制代码写成的,计算机能够快速知道每一段对应着什么操作。而不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。
B、汇编语言:早期程序员觉得机器语言可读性太差,于是用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址,再通过汇编过程转换成机器指令。这便是汇编语言。在不同的设备中,汇编语言对应着不同的机器语言指令集,因此它同样不可移植。目前在底层硬件操作、驱动程序、嵌入式操作系统等领域仍需要汇编语言。
C、高级语言:高级语言是一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。相对于汇编语言而言,它较接近于自然语言和数学公式,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。而且高级语言具有可移植性,即在不同平台的计算机上都可以运行代码。目前绝大多数用于程序设计的语言都属于高级语言。
2、不同标准下,高级语言的进一步划分:
(1)、按运行方式分:
对人类友好的高级语言只有经过处理才能被操作系统识别并加载到计算机硬件上最终执行,而这个过程有两种处理方式:
A、编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。
特点:程序执行效率高,对系统要求较低,依赖编译器,跨平台性相对解释型语言较差(换个系统运行要重新编译)。
应用:开发操作系统、大型应用程序、数据库系统等。
例子:如C/C++、Pascal/Delphi等。
B、解释型语言:解释性语言在运行程序的时候才翻译,同时程序中的每个语句都是执行的时候才翻译,先翻译成中间代码,再由解释器对中间代码进行解释运行。Java的Java虚拟机就是一种解释器。
特点:效率比较低,依赖解释器,跨平台性好。
应用:网页脚本、服务器脚本、辅助开发接口以及对不同系统平台间的兼容性有一定要求的程序等。
例子:如Java、JavaScript、VBScript、Perl、Python等。
C、混合型语言:
将程序编译为中间码,再通过中间语言运行库运行中间码,如C#。
(2)、按主要编程范型分类
编程范型,代表着某一类典型的编程风格,提供了(同时决定了)程序员对程序执行的看法。你可以理解为编程时的指导思想。
A、命令式语言(面向过程语言):把一个任务分成若干个步骤/模块,先执行哪一步,然后执行哪一步,最后执行哪一步。其主要观点是采用自顶向下、逐步求精的程序设计方法,使用顺序、选择、循环三种基本控制结构构造程序。而解决问题的焦点集中于函数。
如C、Pascal、Fortran等。
B、面向对象语言:以对象作为基本程序结构单位,即用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。
如C++、C#、Java、Smalltalk等
C、函数式语言:是一种非冯·诺伊曼式(即不是发一个指令做一个操作)的程序设计语言。函数式语言主要成分是原始函数、定义函数和函数型。具有没有变量和函数副作用(函数内部操作可能干扰外部)的特点。
如:Haskell、Lisp等。
D、逻辑式语言:面向演绎推理的逻辑型程序设计语言,程序运行顺序完全按照数理逻辑推导的方式进行。
如:Prolog等
E、编程范型还有许多,而上面的分法细究起来还不够严谨,大家有兴趣的可以自己找相关文章了解。
(3)、动态语言和静态语言
按照在运行时代码能否可以根据某些条件改变自身结构来区分。
A、动态语言:Python、JavaScript、PHP、C#等。
B、静态语言:Java、C、C++等。
(4)、按照类型的使用方式区分
按照数据类型是否必须是在编译运行之前确定的,分为静态类型语言和动态类型语言。
如:C/C++——静态类型;Python、Javascript、PHP——动态类型。
而按照变量能否被在不强制转换的情况下赋予不同的数据类型,分为弱类型语言和强类型语言。
如:Java、Python——强类型;Javascript、PHP——弱类型。
(台州中学图灵信息社推送供稿)

浙公网安备 33010602011771号