[转]计算机语言的种类总结

各种不同语言之间的区别,我整理了一篇文章,参考了这两篇:

计算机语言的种类总结

http://www.zxbc.cn/kfyy/0823621.html

动态语言、静态语言 比较

http://hi.baidu.com/kkwtre/blog/item/1402c410dec1cc03203f2e63.html

 

以下内容为前一篇:《计算机语言的种类总结》

计算机语言的种类总结内容导读: 今天来总结一下语言的种类,语言的种类从不同的角度会有不同的划分,比如机器语言、汇编语言、高级语言、低级语言(机器语言及汇编语言)、编译语言、解释型语言、脚本语言、动态语言、静态语言、函数式语言(比如f#及scala)、命令式语言、面向对象语言(比如c++...

今天来总结一下语言的种类,语言的种类从不同的角度会有不同的划分,比如机器语言、汇编语言、高级语言、低级语言(机器语言及汇编语言)、编译语言、解释型语言、脚本语言、动态语言、静态语言、函数式语言(比如f#及scala)、命令式语言、面向对象语言(比如c++及java)、过程式语言、混合型语言(介于编译型语言与解释型语言之间,比如java与c#)等等,语言的种类繁多,五花八门什么都有,真正的全部总结全面不是一件容易的事情,这里我只是起个抛砖引玉的作用,希望对大家有所帮助。

另外关于机器语言、汇编语言及高级语言的资料,我以前写过一篇文章,在这里就不说很详细了。

1.动态语言及静态语言

动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的ecmascript(javascript)便是一个动态语言。除此之外如ruby、python等也都属于动态语言,而c、c++等语言则不属于动态语言。

所谓的动态类型语言,意思就是类型的检查是在运行时做的,比如如下代码是不是合法的要到运行时才判断(注意是运行时的类型判断):

defsum(a,b):

returna+b

via:

可以简单的理解为直接被解释执行的语言称为动态语言。而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言。

当前静态语言有:java、c/c++、c#、delphi、vb等。

动态语言有:asp、php、cgi、lisp、perl、python,smalltalk、ruby等。

via:

2.函数式编程语言

f#是微软.net平台上一门新兴的函数式编程(fp,functionalprogramming)语言,作为微软唯一的fp语言,其位置的特殊性引起了很多人的关注,而微软也致力于将f#打造成为.net平台的顶峰语言,我们也期待着f#能够给函数式编程语言带来一次重大革命。

via:

scala是一种基于java的通用编程语言,旨在推广函数式编程,它编译成java字节码,在java虚拟机(jvm)上运行。虽然scala本质上是一个函数式编程语言,但它也体现了面向对象语言的所有必要元素,这一点使函数式编程特性对编程社区的吸引力更大。

f#是由微软主持开发的一个通用编程语言,它是.net通用运行时(clr)的一部分,它是以另一个正统的函数式编程语言ocaml为基础的,微软在.net平台中引入f#除了人们对函数编程的兴趣不断上升外,另一个重要的原因是函数编程非常适合高性能和并行计算。虽然它的语法清晰,但f#实际上混合了函数式编程语言,命令式语言和面向对象语言的语法特性,它的面向对象和命令式特性大部分都与.net平台兼容,f#的三重性质也很实用,它允许程序员使用任意结合这三个编程语言的特性使用。

via:

pyton及ruby也可以进行函数式编程

python函数式编程到底有什么用呢?我想实际的好处就是可以将更好的描述问题本身,而不是描述解决问题的操作步骤。

via:

3.命令式程序设计语言

命令式程序设计语言是基于动作的语言,以冯诺依曼计算机体系结构为背景。机器语言及汇编语言是最早的命令式语言。在这种语言中,计算机被看做是动作的序列,程序就是用语言提供的操作命令书写的一个操作序列。用命令式程序设计语言编写程序,就是描述解题过程中每一步的过程,程序的运行过程就是问题的求解过程,因此也称为过程式语言。fortran、algol、cobol、c、ada、pascal等都是命令式程序设计语言。

via:

4.面向对象语言

面向对象语言(object-orientedlanguage)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分。

面向对象语言借鉴了20世纪50年代的人工智能语言lisp,引入了动态绑定的概念和交互式开发环境的思想;始于20世纪60年代的离散事件模拟语言simula67,引入了类的要领和继承,成形于20世纪70年代的smalltalk。

面向对象语言的发展有两个方向:一种是纯面向对象语言,如smalltalk、eiffel等;另一种是混合型面向对象语言,即在过程式语言及其它语言中加入类、继承等成分,如c++、objective-c等。

面向对象语言刻画客观系统较为自然,便于软件扩充与复用。有四个主要特点:

⑴识认性,系统中的基本构件可识认为一组可识别的离散对象;

(2)类别性,系统具有相同数据结构与行为的所有对象可组成一类;

(3)多态性,对象具有惟一的静态类型和多个可能的动态类型;

(4)继承性,在基本层次关系的不同类中共享数据和操作。

其中,前三者为基础,继承是特色。四者(有时再加上动态绑定)结合使用,体现出面向对象语言的表达能力。

一般认为,较典型的面向对象语言有:

simula67,支持单继承和一定含义的多态和部分动态绑定;

smalltalk支持单继承、多态和动态绑定;

eiffel,支持多继承、多态和动态绑定;

c++,支持多继承、多态和部分动态绑定。

java,支持单继承、多态和部分动态绑定

五种语言涉及概念的含义虽基本相同,但所用术语有别。

基于类的面向对象语言是面向对象世界里的主流。它包括:

simula,第一个面向对象语言

smalltalk,第一个支持动态类型的语言

c++,它的大部分基于类的特性继承自simula.等等等等。

与基于类的语言相对应的是基于对象的面向对象语言。这里“基于对象”的概念和把visualbasic叫做基于对象的概念是不同的。这里的“基于对象”是指一个只以对象为中心,没有类的概念的语言,类似python之类的语言。

via:

5.过程式语言

过程式语言与面向对象语言,到底有什么区别?可能是初学者常碰到的问题。简单来说,过程式语言整个是构建在动词上的语言。比如,最常见的经典过程式语言-c语言,打印一条语句的语法是printf(),这个方法的名字本身就是一个动词,这个动词强调了一个动作的过程,所谓过程式就是这个意思。

同样的方法在面向对象的java中就是这样写:system.out.println();前面说过面向对象语言就是构建在名词基础上的系统,对象就是一个名词。大家都知道对象封装了操作和属性,所以system是一个对象,后面跟上分类在out目录下的方法println。这就是面向对象的写法。

via:

6.解释型语言

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。

翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。

via:

7.脚本语言

1).脚本语言(javascript,vbscript等)介于html和c,c++,java,c#等编程语言之间。

html通常用于格式化和链结文本。而编程语言通常用于向机器发出一系列复杂的指令。

2).脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些.

3).与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。

注:脚本语言一般都有相应的脚本引擎来解释执行。他们一般需要解释器才能运行。python、javascript,asp,php,perl,nuva都是脚本语言。c/c++编译、链接后,可形成独立执行的exe文件。

4).脚本语言是一种解释性的语言,例如python、vbscript,javascript,installshieldscript,actionscript等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在.

脚本语言不需要编译,可以直接用,由解释器来负责解释。

5).脚本语言一般都是以文本形式存在,类似于一种命令.

举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件.

你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言.

via:

8.编译型语言

编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

这里提一下编译型语言和解释型语言的区别:解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。

via:

9.以另一个角度将程序语言分为5类

1)、webpagescriptlanguages

就是网页代码,比如html、javascript、css、asp、php、xml都应该属于此类(照蔡的意思,html不应该属于anguages的,可能他觉得太简单了吧,不过我觉得html也应该算的,大家爱听谁的就听谁的好了,这个不重要)

2)、interpretedlanguages(解释型语言)

包括perl、python、rebol、ruby等,也常被称作script语言,通常被用于和底下的操作系统沟通。照蔡的意思,每个人至少应该学会一套这类的语言。这类语言的缺点是效率差、源代码外露——所以不适合用来开发软件产品,一般用于网页服务器。

3)、hybridlaguages(混合型语言)

代表是java和c#。介于解释型和编译型之间。蔡认为c#是.net最重要的语言,值得期待其后续发展;至于java,蔡叫看他的《sleeplessinjava》——我倒!

4)、compilinglanguages(编译型语言)

c/c++,java都是编译型语言。蔡说c++很复杂,要成为高手没三五年是不行的(就凭这句话,我决定向java投降),虽然如此,但真正要成为高手的都应该懂c/c++。

关于delphi,蔡说如果想要跨linux和windows平台的语言,则delphi似乎是最好的选择。

5)、assemblylanguages(汇编语言)

汇编语言是最接近于硬件的语言,不过现在几乎没多少人用了。

程序语言学习顺序建议

如果完全没有程序经验,可照这个顺序:javascript——解释型语言——混合型语言——编译型语言——汇编(如果需要的话)

用业界流行一句话做结尾“真正的程序员用c++,聪明的程序员用delphi”,那么,什么样的程序员用java呢?

转载请注明出处:http://www.cnblogs.com/haochuang/ 8年IT工作经验,5年测试技术与管理,2年产品与项目管理,曾参与过云计算\云存储\车联网产品研发工作; 业余自媒体人,有技术类垂直微信公众号;如有招聘或求职方面需求,请Mail to uetest@qq.com ;或通过 QQ:363573922 微博:@念槐聚 联系;

时间: 2024-08-07 20:09:28

[转]计算机语言的种类总结的相关文章

什么是计算机语言

计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类. 电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的.所以人们要控制计算机一定要通过计算机语言向计算机发出命令. 计算机所能识别的语言只有机器语言,即由0和1构成的代码.但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别. 目前通用的编程语言有两种形式:汇编语言和高级语言. 汇编语言的实质和机器语言是相同的,都是直接

学习J2ME可以从事的工作种类

学习J2ME可以从事的工作种类 作者:陈跃峰 出自:http://blog.csdn.net/mailbomb          现在J2ME技术可以说相当的火暴,这里介绍一些学好了J2ME之后可以从事的工作的种类: 1.  J2ME游戏开发人员 根据游戏策划或者文档要求,在某种特定的机型(以Nokia S40或S60居多)开发游戏程序. 这是现在大部分J2ME程序员从事的工作. 需要熟练掌握:高级用户界面.低级用户界面.线程,如果是网络游戏,还需要熟练网络编程. 2.  J2ME应用开发人员

介绍了Oracle数据库锁的种类及研究

本文通过对Oracle数据库锁机制的研究,首先介绍了Oracle数据库锁的种类,并描述了实际应用中遇到的与锁相关的异常情况,特别对经常遇到的由于等待锁而使事务被挂起的问题进行了定位及解决,并对死锁这一比较严重的现象,提出了相应的解决方法和具体的分析过程. 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性. 加锁是实现数据库并发控制的一个非常重要的技术.当事务在对某

B2C电商网站几种关联销售的种类

文章描述:电商体验之关联销售. 从最广义的角度来讲,关联销售就是让用户购买与他正在查看的产品相关的其他产品. 通过查看各大电商网站,我总结了以下几种关联销售的种类.(有些名称类似的被归为一类) 一.浏览相关 1.最近浏览过的产品 代表网站:京东商城.易迅网.凡客诚品.走秀网 2.浏览本商品的顾客还看过 代表网站:当当网.1号店.乐淘网.麦包包.凡客诚品.红孩子 二.配套相关 1.人气组合.推荐配件 代表网站:京东商城 2.优惠套餐推荐 代表网站:新蛋网 3.随心配 代表网站:易迅网 三.热销相关

游标、游标的优点和种类

    本章前半部分提供了在MS SQL SERVER 中应用游标所应具有的有关游标的必要知识和各种语法.从中读者可以了解游标的优点.种类.作用.学会如何定义.打开.存取.关闭.释放游标以及游标的应用.除此之外,在本章的后半部分我们介绍了视图和用户自定义函数,使读者了解视图的众多优点,比如简化操作.提高数据安全性:了解如何创建.管理视图和用户自定义函数:了解如何在存储过程和批处理中调用用户自定义函数等诸多问题.     在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往

ADO+ 引导数据种类的演变(转自 ms 一)

ADO+ 引导数据种类的演变 Dino Esposito 2000年9月 摘要: 本文讨论了 ADO 的最新版本 ADO+ 所提供的增强的互操作性和可伸缩性. 目录 简介 一种公用数据操纵语言 数据种类 ADO+ 增加了哪些内容 ADO+ 的构成要素 ADO+ 命令 强类型编程 摘要 -------------------------------------------------------------------------------- 简介 从一开始,开发软件应用程序就是为了访问某种数据

ADO+ 引导数据种类的演变(转自 ms 二)

ADO+ 增加了哪些内容? 用最抽象的话来说,ADO+ 是具有更大的可伸缩性和互操作性的 ADO.就对象模型及编程问题而言,ADO 与 ADO+ 是完全不同的两个实体.尽管这样,ADO+ 源自 ADO 并保留了它的鼓舞人心的原则. 以更多互操作性和可伸缩性充实 ADO 的关键在于断开这个概念.在允许客户机端的脚本代码实现诸如排序.过滤和文档/视图模型之类的有趣和交互式功能的同时,断开的记录集作为一种保留系统资源的方式被引入到 ADO 2.0 中.ADO+ 与 ADO 相比具有三个主要优点:互操作

视觉设计:关于像素艺术的种类和形式

大家是否还记得1983年任天堂的著名游戏<超级玛丽>里那个留着胡子的意大利水管工人,还有日本konami公司1987年发行的射击游戏<魂斗罗>里两个壮硕无比的上等兵比尔·雷泽和兰斯·比恩.相信这两个像素卡通形象在当年给人们留下了深刻的印象,也让我初识了像素图. 超级玛丽形象 微软的操作系统,在windowXP以前,都是采用经典的像素图标,一方面也是当时计算机的性能所致.随着硬件性能的提升,矢量图标越来越广泛的被应用到操作系统中.较之以前像素图形无法随意放大缩小,矢量图形不管在质感表

错误的种类

错误     前面已经介绍了使用ASP所需要的基本技能,本章要讨论的另外一个问题是当ASP出现错误时怎么办,ASP出错时是什么情况.当精心编排的ASP页面出现问题停止了执行时,用户一般得到的仅是一些用处不大的建议,诸如:点击"刷新"按钮,或者"与站点的Web管理员联系,告诉他们你的页面不能正常工作了"等等.本章除了提供有用的信息外,还想提供一个帮助区域.我们将详细介绍在脚本和页面中错误如何出现,可能产生的错误类型,以及什么造成了这些错误.更重要的是,要讨论如何尽可能