`

编程语言的分类

 
阅读更多

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

 

命令式编程:命令“机器”如何去做事情(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
分享到:
评论

相关推荐

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

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

    编程语言的学习与分类

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

    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多大的资源吧,在此分享,共同学习。

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

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

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

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

    指令字典(编程字典)

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

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

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

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

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

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

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

    编程语言_百度百科1

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

    54种编程语言训练数据集

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

    可编程逻辑器件及硬件描述语言的EDA方法.pdf

    可编程逻辑器件及硬件描述语言的EDA方法,有相关学习的同学可以看看

    阿里云大学编程语言学习内容集锦

    首先祭出一个强大的分类神图,按强弱、动静的语言分类: 点击下方课程链接可直接进入相关课程进行免费学习,加入课程后可随时管理学习进度。 点开PDF可看具体内容

    编程语言-Java语言-关于内部类的分类和认识

    Java语言中的内部类根据定义的位置和访问权限可以分为四类:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类是定义在类的内部且与类的实例相关联的类;局部内部类是定义在方法或作用域内的类;匿名内部...

    编程语言+Java+面向对象+设计模式

    编程语言+Java+面向对象+设计模式**:这是一个关于Java编程语言的面向对象的设计模式的资源,适合有一定Java基础的开发者。它介绍了面向对象的概念、原则和特征,以及常用的设计模式的分类、结构、优缺点和应用场景...

    大数据导论&编程语言.md

    “大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和... 本文对大数据入门的基本概念,以及辅助学习大数据的常用软件作了简单的总结,内容主要分为大数据导论,大数据学习相关软件,计算机组成,编程语言四个部分

    企业电子商务网站编程语言.pptx

    企业电子商务网站编程语言.pptx

    JAVA应用程序设计开发(Java语言是SUN公司开发的一种编程语言。)

    Java语言是SUN公司开发的一种编程语言。 1.1 Java语言产生和发展的背景  Java语言源于Oak语言,这是SUN公司在一项消费性电子产品软件发展方案中采用的语言。Oak的设计目标是用以开发可靠、紧凑、易于移植的分布式...

Global site tag (gtag.js) - Google Analytics