一、计算机编程语言分类
机器语言(面向机器)——>汇编语言(面向机器)——>高级语言(面向过程——>面向对象)
(1)机器语言属于低级语言。
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令。
全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。
(2)汇编语言
实质和机器语言相同,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
(3)高级语言
高级语言是相对于汇编语言而言,编写的程序不能直接被计算机识别,必须经过转换才能被执行。
越是低级的语言对机器越是友好,越是符合机器的思考方式,因此执行效率高。
越是高级的语言对人类越是友好,越是符合人类的思考方式,因此开发效率高。
1
2
常用编程语言及其用途
C:操作系统、嵌入式、驱动开发
C++:图形图像、科研、通信、桌面软件、游戏、游戏服务器
C#:Windows桌面软件、.NET Web、服务器
Java:
Java SE:跨平台的桌面应用,Android;
Java EE:企业级应用,web开发、服务器后端;
Java ME:手机应用、流行于非智能机时代;
Java Android:用于安卓开发应用
GO:高性能服务器应用,比较年轻
Erlang:高并发服务器应用,多用于游戏
Python:Web、科学计算、运维
Ruby:Web
Perl:运维、文本处理,用的较少
Lisp:科研,一种逻辑语言,用于人工智能
Node:一个JavaScript运行环境(runtime)
Haskell:Haskell是一种标准化的、通用纯函数编程语言,数学逻辑方面
Scala:一种类似Java的编程语言,集成面向对象编程和函数式编程的各种特性
JavaScript:前端,在node中可以做后端
HTML/CSS:标记语言,主要是给前端工程师构建页面使用
二、高级语言分类
(0)命令式语言 & 函数式语言 & 逻辑式语言
命令式语言的语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。其中产生操作的主要途径是依赖语句或命令产生的副作用。现代流行的大多数语言都是这一类型,比如 Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C# 等,各种脚本语言也被看作是此种类型
函数式语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如 Lisp、Haskell、ML、Scheme 、F#等。
逻辑式语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最著名的逻辑式语言是 Prolog 。
(1)编译型语言 & 解释型语言 :两者只是翻译的时间不同
编译型语言:由于程序执行速度快,同等条件下对系统的要求比较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,如 C、C++、Fortran、Pascal、Delphi 、汇编…
在程序执行前,有一个单独的编译过程,将源程序—>机器语言,生成一个可执行程序 .exe,使用的转换工具称编译器。
以后再执行这个程序时,就直接用exe文件,不用再进行翻译了,所以效率较下者高。
1
2
解释型语言:运行速度较前者慢。如Python、JavaScript、VBScript、Tcl、Perl、Ruby、MATLAB …脚本语言!
每次执行程序都要一边转换一边执行,用到哪些源代码就将哪些源代码转换成机器码,用不到的不进行任何处理。
每次执行程序时可能使用不同的功能,这个时候需要转换的源代码也不一样。
不会生成可执行程序,使用的转换工具称解释器。
1
2
3
因为每次执行程序都需要重新转换源代码,所以解释型语言的执行效率天生就低于编译型语言,甚至存在数量级的差距。计算机的一些底层功能,或者关键算法,一般都使用 C/C++ 实现,只有在应用层面(比如网站开发、批处理、小工具等)才会使用解释型语言。
有说JAVA是混合型,也有说是解释型。 和 C# 都属于半编译半解释型的语言,源代码先转换为中间文件(字节码文件)再转换。
(2)强类型语言(静态语言) & 弱类型语言(动态语言)
强类型:如JAVA,C,C++,C#
优点:静态语言由于强制声明数据类型,让开发工具(IDE)对代码有很强的判断能力,在实现复杂的业务逻辑和开发大型商业系统、以及那些声明周期很长的应用中,开发者可以依托强大的IDE来更高效、更安全地开发。
是编译时变量的数据类型就可以确定的语言,大多数静态语言要求在使用变量之前必须生命数据类型。
1
弱类型:如超级脚本语言Python,Ruby…脚本语言JavaScript,VBScript,PHP,ASP,Perl,SQL,Shell…HTML…宏语言…
优点:动态语言思维不受约束,可以任意发挥,把更多的精力放在产品本身上;集中思考业务逻辑实现,思考过程就是实现过程。
是运行时才确定数据类型的语言,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型。
1
(3)面向过程型 & 面向对象型
面向过程:C;Fortran语言主要用于编写与数值计算有关的程序,广泛应用于科学和工程计算领域。
面向对象的发展有两个方向:一种是纯面向对象语言,如Smalltalk、EIFFEL、JAVA、C# 等;另一种是混合型面向对象语言,即在过程式语言及其它语言中加入类、继承等成分,如C++、Python、 Objective-C等。
(4)脚本语言
又称为扩建的语言,是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。
脚本语言(JavaScript,VBScript,Python,PHP,Perl,Ruby等)介于标记语言HTML和编程语言C,C++,Java,C#等之间。
辨别:
脚本语言的特点是语法简单,一般以文本形式保存,并且不需要编译成目标程序,在调用的时候直接解释。这可以当做是脚本语言的判断标准,比如道说JavaScript,你只需要用记事本新建一个Html文件,在里面加上一段脚本就可以了,在浏览器打开Html文件时自然会调版用JS脚本。总之你能用记事本写出程序,不需要编译环境权生成目标程序的基本上就是脚本语言。
(5)标记语言
常见HTML,XML…(一般分三类:标示性的,过程性的,描述性的)
是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。
区别:
1、标记语言不用于向计算机发出指令,常用于格式化和链接。
2、脚本语言介于标记语言和编程语言之间,脚本语言脚本语言不需要编译,可以直接用,由解释器来负责解释。
3、编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。
编程语言脚本语言c++