`

编程语言的分类

 
阅读更多

我们可以像下面这样定义它们之间的不同:

 

命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。

声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。

 大多数程序员考虑编程时,他们都要设想用于编写应用程序的 命令式样式和技术。最受欢迎的通用编程语言(包括 Python 和其它面向对象的语言)在样式上绝大多数都是命令式的。另一方面,也有许多编程语言是 声明性样式,包括函数语言和逻辑语言,还包括通用语言和专用语言。 
 
让我们列出几个属于各个种类的语言。许多读者已经使用过这些工具中的许多工具,但不见得考虑过它们之间的种类差别。Python、C、C++、Java、Perl、Ruby、Smalltalk、Fortran、Basic 和 xBase 都是简单的命令式编程语言。其中,一些是面向对象的,但那只是组织代码和数据的问题,而非基本编程样式的问题。使用这些语言,您命令程序执行指令序列:把某些数据 放入(put)变量中;从变量中 获取(fetch)数据; 循环(loop)一个指令块 直到(until)满足了某些条件; 如果(if)某个命题为 true,那么就进行某些操作。所有这些语言的一个妙处在于:便于用日常生活中熟悉的比喻来考虑它们。日常生活都是由做事、选择、再做另一件事所组成的,期间或许会使用一些工具。可以简单地将运行程序的计算机想象成厨师、瓦匠或汽车司机。 
诸如 Prolog、Mercury、SQL、XSLT 这样的语言、EBNF 语法和各种格式的真正配置文件,都 声明某事是这种情况,或者应用了某些约束。函数语言(比如 Haskell、ML、Dylan、Ocaml 和 Scheme)与此相似,但是它们更加强调陈述编程对象(递归、列表,等等)之间的内部(函数)关系。我们的日常生活(至少在叙事质量方面)没有提供对这些语言的编程构造的直接模拟。然而,对于那些可以用这些语言进行描述的问题来说,声明性描述 远远比命令式解决方案来得简明且不易出错。例如,请研究下面这个线性方程组: 
 
清单 1. 线性方程式系统样本
10x + 5y - 7z + 1 = 0
17x + 5y - 10z + 3 = 0
5x - 4y + 3z - 6 = 0
这是个相当漂亮的说明对象(x、y 和 z)之间几个关系的简单表达式。在现实生活中您可能会用不同的方式求出这些答案,但是实际上用笔和纸“求解 x”很烦,而且容易出错。从调试角度来讲,用 Python 编写求解步骤或许会更糟糕。
Prolog 是与逻辑或数学关系密切的语言。使用这种语言,您只要编写您知道是正确的语句,然后让应用程序为您得出结果。语句不是按照特定的顺序构成的(和线性方程式一样,没有顺序),而且程序员或用户并不知道得出的结果都采用了哪些步骤。
 
几种典型的函数式语言
◆Erlang:这是一种以A.K Erlang的名字命名的通用并行编程语言。它有函数式语言的元素,以及一个Actor 并发模型,从而简化并行开发工作。编辑推荐对Erlang感兴趣的读者阅读一下51CTO以前的一次访谈:因并发而生 因云计算而热:Erlang专家访谈实录。
◆Haskell:这是一门已经有超过20年历史的开源编程语言,它的设计宗旨就是成为一门纯粹的函数式语言。
◆OCaml:面向对象的Caml(Objective Caml)是Caml语言的一个开源版本,Caml语言可以算是ML语言的一个方言版了,ML语言1970年就已经开发出来了,也是作为一种通用函数式语言存在的。它被认为是后来出现的F#等多种函数式语言的基础。
◆Lisp:表处理语言(List Processing Language)是一种函数式语言,最初是于1958年拟定的。由它派生出了许多分支。
◆Scala:Scala 语言的设计目标是在Java虚拟机上实现函数式和面向对象这两类编程语言的集成。它是一种强类型的编程语言。Scala编程语言近年来的流行度在不断提升,编辑推荐读者参阅51CTO的Scala编程语言专题。
◆Clojure:Clojure是Lisp语言的一个现代分支,它运行在Java虚拟机上,是为并发程序开发设计的。它是一种动态类型编程语言。
◆F#:这是一种运行在.Net CLR平台上的新语言。它是OCaml的一个分支,它兼具了函数式和命令式面向对象语言的特点。同时它也是一种强类型的编程语言。F#在未来的.NET平台上有重要的作用,将在Visual Studio 2010中被正式包含。
 
  • 大小: 61.9 KB
分享到:
评论

相关推荐

    计算机编程语言的分类.pdf

    了解不同的编程语言分类是非常有必要的,可以帮助我们更好地理解和选择合适的编程语言。 机器语言是计算机编程语言的最低级形式,它是直接在硬件中解释的语言。机器语言由一些非常低级的机器指令组成,例如add、sub...

    工业机器人操作与编程-机器人的编程语言.pptx

    编程语言分类 4.编程语言的发展 5.编程语言的现状 6.编程语言——RAPID 1/14 工业机器人操作与编程-机器人的编程语言全文共15页,当前为第2页。 主要内容 了解机器人编程的三个层次内容,掌握示教编程语言的含义 ...

    编程语言的学习与分类

    编程语言概述 “我该学习什么语言?” 进来看看便知道了。

    编程语言发展史:新兴编程语言的趋势和发展

    新兴编程语言的出现不仅丰富了编程语言的种类,也为编程带来了更多的可能性和选择。 新兴编程语言的特点包括多样性、简单易学、面向对象、并发性和模块化等。这些特点使得新兴编程语言能够更好地支持高性能计算和...

    工业机器人技术基础机器人编程语言概述课件.pptx

    本资源摘要信息主要讲解了工业机器人技术基础机器人编程语言的概述,涵盖了机器人编程的三个层次、机器人编程语言的基本要求、分类和特点、机器人编程语言的发展和现状等内容。 机器人编程的三个层次: 机器人编程...

    2、编程语言与Python介绍.pdf

    - 二 编程语言分类 - - 2.1 机器语言 - 2.2 汇编语言 - 2.3 高级语言 - - 2.3.1 编译型 (如C语言) - 2.3.2 解释型 (如Python) - 2.4 总结 - 三 python介绍 - - 3.1 Python解释器的发展史 - 3.2 Python...

    tolmach:node.js的代码的编程语言分类器

    基于模块的编程语言器。 安装 $ npm install tolmach 例子 var tolmach = require ( 'tolmach' ) ; tolmach . detect ( 'for item in items:' ) ; // => "python" tolmach . detect ( '#include <stdio>' ) ; // =>...

    编程语言_电子书.zip

    上传的压缩文件里,只包含了部分书籍的pdf文件,更多...各文档名就不列了,均以分类,涉及到的编程有 C#、C、C++、java、python等,还有关游戏开发和图像处理的,等等,总共有5.5G多大的资源吧,在此分享,共同学习。

    (完整word)编程语言未来的发展趋势-最终版.doc

    本文主要探讨了编程语言未来的发展趋势,从计算机语言的发展史、计算机语言的分类、编程语言未来的发展方向预测等多方面进行了分析和预测。 首先,本文对计算机语言的发展史进行了回顾,从机器语言到高级语言的发展...

    Logtalk逻辑编程语言V3.03.0官方安装版

    Logtal逻辑编程语言是一个面向对象的逻辑编程语言,可以使用最多的Prolog implementations作为后端编译器。作为一个多模式语言,它支持原型和classes,协议(接口),通过基于分类组成的基于组件的编程,事件驱动...

    指令字典(编程字典)

    本软件的主要特点: 1、编程语言种类全。包含了目前较为流行的多种语言,如Turboc、VC++6.0、VFP6.0、VB6.0、DELPHI、JAVA、80X86汇编和WIN32汇编。 2、具用中文查询功能。用户可根据自己需要输入所需...

    基于Python的混合语言编程及其实现研究.docx

    Python编程语言的设计风格一般比较清晰统一,这使得Python编程语言能够简单易懂,维护起来也十分便利,所以被很多大众所接受和喜欢,应用推广速度比较快。Python是目前一种常用的脚本语言,在混合语言编程的软件开发中...

    世界上第一门编程语言究竟是谁?.doc

    6. 编程语言的定义和分类 7. 电子学与计算机科学的结合 8. 计算机的边界和限制 本文讲述了计算机和编程语言的起源和发展,探索了世界上第一门编程语言究竟是谁?讨论了图灵机、打孔卡片、机器代码和汇编语言等概念...

    PLC的编程语言.pdf

    PLC编程语言的种类有很多,如梯形图语言、布尔助记符语言、功能表图语言、功能模块图语言及结构化语句描述语言等。梯形图语言和布尔助记符语言是基本程序设计语言,它通常由一系列指令组成,用这些指令可以完成...

    常用嵌入式高级编程语言比较

    嵌入式系统开发过程中使用的语言种类很多, 但仅有少数几种语言得到了比较广泛的应用。 论文选择了Java、Ada、C/ C+ + 、Modula- 2 作为讨论对象, 对它们的发展过程、趋势和技术性能特点进行了比 较。嵌入式系统开发...

    编程语言的分类与选择学习课程.pptx

    编程语言的分类与选择学习课程.pptx

    Java编程语言基础.docx

    Java 编程语言基础 Java 编程语言基础是 Java 语言的基础知识,涵盖标识符、字面值、变量、数据类型等概念。下面是详细的知识点总结: 一、标识符 标识符是 Java 源程序中由程序员自己命名的单词,包括类名、方法...

    编程语言_百度百科1

    介绍优点缺点优点缺点综述优点缺点综述目录概论语言种类常见语言编程语言原本是被设计成专门使用在计算机上的,但它们也可以用来定义算法或者数据结构。正是因为如此,程序

    54种编程语言训练数据集

    54种编程语言训练数据集,包括训练集、验证集与测试集。全部200万以上文件,各语言数量平衡。

    编程猫竞赛测试题模拟测试题附答案

    答案是锐角,这个问题考查了学生对scratch编程语言的理解。 知识点:scratch编程语言、变量、角度概念 4. 欢迎来到小猫的变装走秀表演 这个问题考查了学生对编程猫游戏元素的理解和理解能力。答案是1467,这个...

Global site tag (gtag.js) - Google Analytics