计算机语言的种类总结内容导读: 今天来总结一下语言的种类,语言的种类从不同的角度会有不同的划分,比如机器语言、汇编语言、高级语言、低级语言(机器语言及汇编语言)、编译语言、解释型语言、脚本语言、动态语言、静态语言、函数式语言(比如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呢?

五种常见的计算机高级语言,[转]计算机语言的种类总结相关推荐

  1. 五种常见的加密方式及常用的加解密工具

    如果你是互联网公司的信息安全从业者,那么你可能会经常需要处理撞库事件,撞库是黑客的无聊"恶作剧".黑客收集已经在互联网上泄露的用户和密码信息,生成对应的字典表,并尝试批量登录其他网 ...

  2. IoT五种常见物联网协议:TCP/IP、UDP、HTTP、MQTT、CoAP初探

    对于软件公司来说,IoT模式为其硬件设计以及所提供的服务带来决定性的改变.其中影响最大的一个方面是通信协议. 通信协议可以被认为是一种语言,即两台或两台以上的设备可以相互交流.同时无规矩不成方圆,通信 ...

  3. 常见的计算机病毒种类有,五种常见的计算机病毒种类有哪些

    五种常见的计算机病毒种类有系统病毒.蠕虫病毒.木马病毒.脚本病毒.宏病毒.计算机病毒(Computer Virus)是编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复 ...

  4. 五种常见的PHP设计模式

    2019独角兽企业重金招聘Python工程师标准>>> 五种常见的PHP设计模式 设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm ...

  5. Ajax 和 XML: 五种常见 Ajax 模式

    Asynchronous JavaScript + XML(Ajax)无疑是 2006 年最热门的技术术语,且有望在 2007 得到进一步发展.但是对您的应用程序来说它究竟有什么意义呢?Ajax 应用 ...

  6. 小波基函数构造matlab,五种常见小波基函数及其matlab实现全解.docx

    五种常见小波基函数及其matlab实现全解 与标准的傅里叶变换相比,小波分析中使用到的小波函数具有不唯一性,即小波函数 具有多样性.小波分析在工程应用中,一个十分重要的问题就是最优小波基的选择问题,因 ...

  7. java简述常见的布局极其特点_请简要说明 Android 中五种常见布局的特点。_学小易找答案...

    [简答题]请简要说明有序广播和无序广播的区别 [简答题]请简要说明 Android 程序结构中 AndroidManifest.xml 的功能? [简答题]简述李村站人工办理进路的作业过程. [简答题 ...

  8. [Android Studio]掌握Android Studio的五种常见控件和五种常见布局

    目录 一.View和ViewGroup 二.Android的五种常见控件 2.1 文本控件 2.1.1 TextView 2.1.2 EditText 2.2 按钮控件 2.2.1 Button 2. ...

  9. 成都拓嘉启远:造成拼多多异常订单的五种常见原因

    订单异常对于拼多多商家来说并不是什么好事,尤其是在活动的时候,销量大,本来就已经忙不过来了还遇到多个订单异常,就比较头大了,那么在新手的时候就需要去了解更多的异常订单的原因,避免在以后经营的过程遇到这 ...

最新文章

  1. 关于preg_match() / preg_replace()函数的一点小说明
  2. Keil逻辑分析仪的使用
  3. Kubernetes master节点的高可用配置
  4. windows10 IOT +Azure会议概要总结
  5. c#获取对象的唯一标识_Articy Importer Guide - 01 基本对象处理
  6. 【小白学习PyTorch教程】十九、 基于torch实现UNet 图像分割模型
  7. MS SQL SERVER中备份所有数据库
  8. Linux怎么查看保存的密码,在Linux中查看已保存的WiFi密码
  9. mysql 多值属性_数据库 名词解释:单值属性和多值属性
  10. 一些牛逼的Python程序整理
  11. 使用Java来格式化时间
  12. Linux进程间通信——信号
  13. mysql decimal_MySQL系列之数据类型及约束
  14. 如何在 Pr 2020中使用音轨混合器?
  15. 基于YYLabel的图文混排
  16. unity中实现多人联机局域网-基于pun v2 + photon server v5
  17. #舍得Share#创业你必须知道的事-创业融资实战
  18. 公众号网站——微信登录
  19. java中的hwid验证,JAVA设置HttpOnly Cookies
  20. 微信扫码登录,微信公众号生成二维码,关注登录nodejs+vue

热门文章

  1. [wp7游戏]角色扮演类游戏~~集合贴~~
  2. Kevin Kelly:边缘式创新的颠覆力量
  3. 蓝牙麦克风 android,带蓝牙麦克风的Android语音识别器
  4. Java问题集锦--Missing artifact net.sf.json-lib:json-lib:jar:2.4
  5. Word2Vec笔记
  6. 服务器2012还原系统,Windows Server 2012升级R2过程中意外关闭恢复原系统方法
  7. 【20保研】北京航空航天大学计算机学院2019年全国优秀大学生夏令营活动通知...
  8. 增大计算机字体,怎么调整电脑字体大小?
  9. 函数式编程:一等函数(First-class Function)
  10. 带孩子们做环球旅行的读后感_适合夏天制作的简单小手工,带着孩子们做起来!...