一、计算机编程语言的分类

1、低级语言 

机器语言二进制代码)、汇编语言面向机器的程序设计语言)和符号语言。汇编语言源程序必须经过汇编,生成目

标文件,然后执行。

机器语言优缺点如下:

缺点:可读性、可移植性差,编程繁杂;
       优点:直接执行,速度快,资源占用少。

汇编语言优缺点如下:

优点:能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源,目标代码简短,占用内存少,执行速度快。

缺点:不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性,难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试,使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。
           
2、高级语言 

BASIC(True basic、Qbasic、Virtual Basic)、C、C++、PASCAL、FORTRAN、智能化语言(LISP、Prolog)、动态  语言(Python、PHP、Ruby、Lua)等等。高级语言源程序可以用解释、编译两种方式执行。通常用后一种。 我们使用的C语言就是使用的后者。

高级语言的优缺点如下:

优点:高级语言接近算法语言,易学、易掌握,级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;高级语言远离机器语言,与具体的计算机硬件关系不大,可移植性好,重用率高;由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。

缺点:运行速度基本上比直接用汇编写的慢,速度和程序大小与编译软件有关。

3、专用语言

CAD系统中的绘图语言和DBMS的数据库查询语言。

4、脚本语言

(Script language,scripting language,scripting programming language)是为了缩短传统的编写-编译-链接-运行(edit-  compile-link-run)过程而创建的计算机编程语言。脚本语言一般都 有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。一个脚本通常是解释运行而非编译。脚本语言通常 都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工 作。

二、高级语言的分类

1、按转换方式可分为三类:① 编译型语言;  ② 解释型语言;③ 混合型语言。

计算机不能直接的理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言的编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。

① 编译型语言

需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。编译和执行是分开的,但是不能跨平台。
       优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
       缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
      代表语言C、C++、Pascal、Object-C、swift等。

② 解释型语言

解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。每一个语句都是执行的时候才能翻译。这样解释性语言每执行一次要翻译一次,效率表较低。
       优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
      缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
      代表语言JavaScript、Python、Erlang、PHP、Perl、Ruby等。

③ 混合型语言

                                            

混合型语言也叫半编译型语言。比如java、C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了  中间语言运行库运行中间码,中间语言运行库类似于Java虚拟机。.net在编译成IL代码后,保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行。
       java解释器采用生成与系统无关的字节代码指令技术。也就是说,在任何不同的操作系统上,只要正确安装了java运行系统,就有了编写调试java程序的平台,在分布式应用中,java的这个特点使同一个java程序能在不同的系统上运行,从而提高了软件生产效率。可移植性是跨平台特性的一个延伸,即具有了跨平台性,就保证了可移植性。java程序、java类库、java编译器、java系统都具有可移植性。
       另外有一个特殊的情况,正常情况下JavaScript属于解释性语言,V8引擎是被设计用来提高网页浏览器内部JavaScript执行的性能,为了提高性能,v8会把js代码转换为高效的机器码,而不在是依赖于解释器去执行。v8引入了JIT在运行 时把js代码进行转换为机器码。这里的主要区别在于V8不生成字节码或任何中间代码。这里的特殊之处在于JIT做代码优化(同时生成编译版本);解释型语言无法做到这些。

2. 按照客观系统的描述可分为两类:① 面向过程语言; ② 面向对象语言。

       ① 面向过程语言

面向过程语言是以过程或函数为基础的,这种语言对底层硬件,内存等操作比较方便,但是写代码和调试维护等会很麻烦。例如:c语言。

       ② 面向对象语言

面向对象语言(Object-Oriented Language)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分。
       面向对象语言的发展有两个方向:一种是纯面向对象语言,如Smalltalk、EIFFEL等;另一种是混合型面向对象语言,即在过程式语言及其它语言中加入类、继承等成分,如C++、Objective-C等。

3. 按照运行时结构是否改变可分为两类:① 动态结构语言;② 静态结构语言。
      主要针对点是:运行是是否能够改变代码结构。动态类型语言和静态类型语言主要针对数据类型检查的时间问题。
       ① 动态结构语言

是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。

主要语言Python、Ruby、Erlang、JavaScript、swift、PHP、SQL、Perl、Object-C、C#

      ② 静态结构语言

与动态语言相对应的,运行时结构不可变的语言就是静态语言。静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。

主要语言C、C++、C#、Java、Object-C

注意:

通常情况下解释型语言是动态类型语言,编译型语言是静态类型语言。但也不全是,swift是编译型语言但是它也是动态类型语言。C#和Java是解释型语言也是静态类型语言。

4. 按照变量是否需要制定类型可分为:① 强类型语言; ② 弱类型语言。

     ① 强类型语言

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

     主要语言:Java、C#、Python、Object-C、Ruby等。

     ② 弱类型语言

数据类型可被忽略,一个变量可以赋不同数据类型的值。一旦给一个整型变量a赋一个字符串值,那么a就成字符类型。

      主要语言:JavaScript、PHP、C、C++(C和C++有争议,但是确实可以给一个字符变量赋整形值,可能初衷是强类型,形态上接近弱类型)等。

三、脚本语言

动态程序一般有两种实现方式,一是二进制方式,一是脚本方式。 二进制方式是先将我们编写的程序进行编译,变成机器可识别的指令代码(如.exe文件),然后再执行。这种编译好的程序我们只能执行、使用,却看不到他的程序内容。 
       脚本程序相对一般程序开发来说比较接近自然语言,可以不经编译而是解释执行,利于快速开发或一些轻量的控制。一般的脚本语言的执行只同具体的解释执行器有关,所以只要系统上有相应语言的解释程序就可以做到跨平台。 脚本script是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。 
       脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。 我们上面提到的各种动态语言,如ASP、PHP、CGI、JSP等,都是脚本语言。 按目前的服务规则,虚拟主机网站只能采用脚本语言来实现 脚本英文为Script。实际上脚本就是程序,一般都是有应用程序提供的编程语言。应用程序包括浏览器(javascript、VBScript)、多媒体创作工具,应用程序的宏和创作系统的批处理语言也可以归入脚本之类。脚本同我们平时使用的VB、C语言等的区别主要是: 
     1、脚本语法比较简单,比较容易掌握; 
     2、脚本与应用程序密切相关,所以包括相对应用程序自身的功能; 
     3、脚本一般不具备通用性,所能处理的问题范围有限。 
     4、脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。 HTML通常用于格式化和链结文本。而编  程语言通常用于向机器发出一系列复杂的指令。 
     5、脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些. 
    6、与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。 注:脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需解释器才能运行。JAVASCRIPT,ASP,PHP,PERL,Nuva都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。 
    7、脚本语言是一种解释性的语言,例如vbscript,javascript,installshield script等等,它不象c/c++等可以编译成二进制代码,以可执行文件的形式存在. 脚本语言不需要编译,可以直接用,由解释器来负责解释。 
   8、脚本语言一般都是以文本形式存在,类似于一种命令. 举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的  文件. 你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言. 脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。

四、新兴编程语言

perl擅长文字处理,python擅长数值处理 Perl 设计之初就是为了方便编写复杂高效的系统脚本,它也是应该最为广泛的脚本  编程语言。它在编程方面相当于瑞士军刀,对字符、文本文件处理能力很强,以前要求 shell+sed+awk+C才能完成的任务,只需perl脚本就可以完成了。而且应用领域一直在拓宽,支持面向对象程序设计。Python 面向对象的动态公共语言,适于脚本编程和快速开发,它最显著的特点是作为编译语言(如C)和脚本语言(如perl)之间的桥接语言,它具有的强大功能,可扩充性及面向对象的特征使其成为大规模应用程序开发工具。

参考文章:【感谢一下作者的分享】

[1] 编程语言的分类与关系

[2] 计算机编程语言的分类

[3] 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的关系

[4] 弱类型、强类型、动态类型、静态类型语言的区别是什么?编程语言类型划分

【总结】编程语言的分类相关推荐

  1. 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的区别

    原文传送门:http://blog.csdn.net/liuchuo/article/details/52014764 计算机编程语言的分类: 机器语言(二进制代码) 汇编语言(面向机器的程序设计语言 ...

  2. python3解释器执行not 1 and 1_编程语言的分类,python解释器多版本共存.执行python的两种方式,变量,用户与程序交互...

    一.编程语言的分类? 机器语言:直接使用二进制指令编程,直接操作硬件,必须考虑硬件细节. 汇编语言:用简写的英文标识符取代二进制去编写程序,直接操作硬件,必须考虑硬件细节. 高级语言:通过人类能够理解 ...

  3. 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的关系

    计算机编程语言的分类: 机器语言(二进制代码) 汇编语言(面向机器的程序设计语言) 高级语言(按转换方式可分为两类:1.编译型语言;  2.解释型语言   ||  按照客观系统的描述可分为两类:1.面 ...

  4. 编程语言的分类及初识大蟒蛇

    一 编程语言的分类 从第一台计算机诞生开始,人们为了使用计算机硬件就产生了编程语言.从最初的机器语言,到汇编语言再到现在应用广泛的高级语言.目前世界上的编程语言已经多达600种. 机器语言:直接使用二 ...

  5. 计算机编程语言python-PYTHON之计算机语言基础知识 —— 编程语言的分类

    一.计算机语言分类 低级语言.高级语言.专用语言.脚本语言 1.低级语言:机器语言.汇编语言和符号语言.机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令(机器码)的合集,他是计算机的设 ...

  6. 编程语言的分类及其优缺点,Python标准输入与输出

    一. 编程语言分类 1.机器语言 以0,1的组合作为指令集,用二进制指令来编写程序: 优点:执行效率高 缺点:开发效率低 2.汇编语言 用英文标签代替二进制指令集来编写程序,比机器语言稍微高级,但本质 ...

  7. 计算机编程语言的分类与python语言快速度认识

    本节目标: 明确本课程的性质 聊一聊语言 语言的功能 语言是工具,目标是沟通交流,实现目标 语言的分类 人类语言 汉语,英语,日语,等等 ?思考,如何才能够学好语言,如何才可以学好英文 !答案: 动物 ...

  8. python计算机语言基础_PYTHON之计算机语言基础知识 —— 编程语言的分类

    一.计算机语言分类 低级语言.高级语言.专用语言.脚本语言 1.低级语言:机器语言.汇编语言和符号语言.机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令(机器码)的合集,他是计算机的设 ...

  9. 编程语言的历史介绍以及高级编程语言的分类

    一.编程语言介绍 1.Pytho. Python的创始人吉多 范罗苏姆(Guido van Rossum) 1989年的圣诞节期间,Guido开始写python语言的编译器.Python这个名字,来自 ...

  10. 【通用知识 一】编程语言的分类及各种语言的差异

    相信大家开发过程中会用到很多语言,比如 java.html.css.markdown.shell,那么你知道这些语言在计算机中处于什么样的位置吗?有哪些可以替代的语言吗?不同语言之间的差异是什么?其实 ...

最新文章

  1. 赠票 | 第三届语言与智能高峰论坛
  2. dotnet core高吞吐Http api服务组件FastHttpApi
  3. App3种开发方式的优劣分析:原生、混合和H5
  4. 4g通信模块怎么连接sim卡_你好eSIM,再见SIM卡
  5. python华为面试题10个人数3获取下标
  6. 王佩丰 Excel 24节课 学习笔记
  7. 外交部称扣押日本公司船舶只是一起个案
  8. Low rank 论文
  9. 高维空间中点到超平面的距离
  10. 蓝天白云青山绿水还有清风吹斜阳......
  11. 基于安卓的共享单车设计与实现
  12. 计算机上安装了更新ie版本,电脑XP系统安装不了ie提示“安装了更新的Internet Explorer版本”的解决方法...
  13. k-d tree入门
  14. 自媒体内容泛滥,同质化严重!用户已审美疲劳
  15. 地鼠宝宝的轶事奇闻之并发初探
  16. C语言贪吃蛇游戏代码,贪吃蛇C语言代码实现大全
  17. 国外it的一些学习网站
  18. JS逆向入门学习之回收商网,手机号码简易加密解析
  19. mysql查看用户密码
  20. 使用Excel批量添加数据

热门文章

  1. win10家庭版开启远程桌面(带rdpwrap.ini)
  2. mysql实现axure协同工作_Axure8利用Axure Share创建团队项目,进行多人协作开发
  3. wifi连接过程抓包
  4. 腾讯地图获取经纬度 Java计算距离工具类
  5. 什么职业的人适合考PMP?(含PMP资料)
  6. 金融数据挖掘与分析(三)-案例实战(1)
  7. QGIS安装与使用教程
  8. ANSYS网格划分---单元类型选择及步骤
  9. 酒店计算机管理系统维护合同,酒店计算机管理系统维护合同协议书范本.pdf
  10. 3个重点,20个函数分析,浅析FFmpeg转码过程