语言的分类

  语言的种类从不同的角度会有不同的划分,比如机器语言、汇编语言、高级语言、低级语言(机器语言及汇编语言)、编译语言、解释型语言、脚本语言、动态语言、静态语言、函数式语言(比如F#及Scala)、命令式语言、面向对象语言(比如C++及JAVA)、过程式语言、混合型语言(介于编译型语言与解释型语言之间,比如JAVA与C#)等等,语言的种类繁多,五花八门什么都有,真正的全部总结全面不是一件容易的事情。
    机器语言:机器语言是机器指令的集合,机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,从而进行运算。 每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,以使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。
···比如:在显示器输出“welcome to masm”,机器码如图:
    汇编语言:这种语言相对机器语言的抽象,首先表现在将机器语言的每一条指令符号化:指令码代之以记忆符号,地址码代之以符号地址,使得其含义显现在符号上而不再隐藏在编码中,可让人望"文"生义。其次表现在这种语言摆脱了具体计算机的限制,可在不同指令集的计算机上运行,只要该计算机配上汇编语言的一个汇编程序。
    汇编语言和机器语言是一一对应的关系,所以有什么CPU架构就有什么汇编语言,比如x86架构的就是x86汇编,ARM架构的CPU对应于ARM汇编,MIPS架构的CPU对应于MIPS汇编。
CPU根据总线宽度可以分8位,16位,32位,64位等,所以相应的就有8位汇编,16位汇编,32位汇编等。
    高级语言:面向用户的语言。高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高; 高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高。
  高级语言的翻译有两种方式:编译方式和解释方式。
    解释语言:是电脑使用的机器语言,与机器语言1对1地对应的汇编语言相比,高抽象度,与人类平常使用的自然语言相近的感觉的高级语言。由于电脑无法识别人类所记述的源代码,所以由解释语言(脚本引擎)翻译成机器语言,变换成可执行的程序。
Basic语言就是典型的解释型语言。
    编译语言:这个语言,由于需要先把程序转换成机器语言程序然后再执行,所以在开发的速度与容易度,修正的方便性上都不如汇编语言,但是,由于不需要同时翻译,所以在实效速度上占有很大的优势。还有,解释语言中的执行环境里需要源代码,编译语言里就不需要。比如:Python,JavaScript。
    脚本语言:“特定的描述性语言,依据一定的格式编写的可执行文件,以纯文本的方式保存,又称宏或批处理文件。”简单的说,脚本就是一条条的文字命令,这些文字是可以看到的,在执行时由系统的一个解释器,将其一条条的命令翻译成机器可识别的指令,并按顺序执行,因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。虽然编译程序代码也是可以看到的,但是查看的环境要求就比较高了。
常见的脚本语言有:Scala、JavaScript、ASP、JSP、PHP、Shell、python等。
    动态语言:是指程序在运行时可以改变其结构(新的函数可以被引进,已有的函数可以被删除等在结构上的变化)。比如众所周知的JavaScript便是一个动态语言。所谓的动态类型语言,意思就是类型的检查是在运行时做的,可以简单的理解为直接被解释执行的语言称为动态语言。
动态语言有:ASP、PHP、CGI、lisppython等。
    静态语言:需要编译环境将程序转换为其它的编码再执行的语言称为静态语言。
当前静态语言有:Java、C/C++、C#、VB等。
    函数式语言(比如F#及Scala):函数式语言是一种非冯·诺伊曼式的程序设计语言。函数式语言主要成分是原始函数、定义函数和函数型。这种语言具有较强的组织数据结构的能力,可以把某一数据结构(如数组)作为单一值处理;可以把函数作为参数,其结果也可为函数,这种定义的函数称为高阶函数,程序就是函数,程序作用在结构型数据上,产生结构型结果,从根本上改变了冯·诺伊曼式语言的“逐词”工作方式。(F#是微软.NET平台上一门新兴的函数式编程语言,是微软唯一的FP语言,而微软也致力于将F#打造成为.NET平台的顶峰语言,我们也期待着F#能够给函数式编程语言带来一次重大革命。
Scala是一种基于Java的通用编程语言,旨在推广函数式编程,它编译成Java字节码,在Java虚拟机(JVM)上运行。虽然Scala本质上是一个函数式编程语言,但它也体现了面向对象语言的所有必要元素,这一点使函数式编程特性对编程社区的吸引力更大。)
    命令式程序设计语言:是基于动作的语言,以冯诺依曼计算机体系结构为背景。机器语言及汇编语言是最早的命令式语言。在这种语言中,计算机被看做是动作的序列,程序就是用语言提供的操作命令书写的一个操作序列。用命令式程序设计语言编写程序,就是描述解题过程中每一步的过程,程序的运行过程就是问题的求解过程,因此也称为过程式语言。比如说C语言就是命令式程序设计语言。
    面向对象语言:是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分。
面向对象语言刻画客观系统较为自然,便于软件扩充与复用。有四个主要特点:
⑴识认性,系统中的基本构件可识认为一组可识别的离散对象;
(2)类别性,系统具有相同数据结构与行为的所有对象可组成一类;
(3)多态性,对象具有惟一的静态类型和多个可能的动态类型;
(4)继承性,在基本层次关系的不同类中共享数据和操作。
其中,前三者为基础,继承是特色。四者(有时再加上动态绑定)结合使用,体现出
面向对象语言的表达能力。
一般认为,较典型的面向对象语言有:
  Smalltalk支持单继承、多态和动态绑定;
  EIFFEL,支持多继承、多态和动态绑定;
  C++,支持多继承、多态和部分动态绑定。
  Java,支持单继承、多态和部分动态绑定
基于类的面向对象语言是面向对象世界里的主流。它包括:
  Simula, 第一个面向对象语言;
  Smalltalk, 第一个支持动态类型的语言;
  C++, 它的大部分基于类的特性继承自Simula。
 过程式语言:过程式语言整个是构建在动词上的语言。比如,最常见的经典过程式语言- C语言,打印一条语句的语法是printf(), 这个方法的名字本身就是一个动词,这个动词强调了一个动作的过程,所谓过程式就是这个意思。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值