c程序设计语言最新版?_你知道有哪些常见的程序设计范式吗?

从哲学和科学的角度来看,范式是指应用于某个领域的一 套明确的概念或思维模式,包括理论、研究方法、假设和标准。程序设计范式,就是进行程序设计时的思维模式,每种程序设计范式都有其自身的基本风格或典范模式。

0645f274ffd7191a053f4358b64ec519.png

对一个问题进行分解,划分为各个子模块,对问题进行简化以便更容易地解决问题,这是人们普通采用的解决复杂问题的思路。如何分解问题,从哪里着手分解,是程序设计范式首先要思考的问题。

我们知道,过程范式解决问题的着眼点是动词,使用面向对象范式的程序员则是从名词入手来思考问题。动词代表的是功能,是要去做的事情,强调怎么做(how);名词代表的是对象,是做事情的主体或客体,强调谁做(who)。通常来说,对象的粒度比功能更大。对象不仅可以具有功能,还可以包含自身的属性。例如,某人具有不仅可以读书、写字、作画,还有自己的身高、长相、体重等。所以,一般来说, 用面向对象范式解决问题,设计效率比过程式更高。通俗地理解,如果想吃饭,可以自己到食堂去打饭(你重点关注的该是如何去食堂、怎么排队购买饭菜等),也可以请某位同学帮你带份饭菜回来(你重点关注的是请谁去、带什么饭菜)。前者就可以理解为过程范式,后者体现的就是面向对象范式思想。

掌握了程序设计范式,就掌握了程序设计方法学。当前较为常见的程序设计范式有:

(1)命令式(imperative): 使用语句来改变程序的状态。 与自然语言中的命令语气表示命令的方式一样,命令式程序由计算机执行的命令组成。命令式程序设计侧重于描述程序如何操作。它侧重于程序应该完成什么,而不指定程序应该如何实现结果。许多命令式程序设计语言(如FORTRAN、BASIC、 C等)都是汇编命令的抽象。

(2)函数式(functional):一种构建计算机程序结构和构件的样式。它将计算处理为对数学函数的赋值,避免改变状态。函数式程序设计主要在学术界使用,但CommonLisp. Scheme、Clojure、 Wolfram (也称为Mathematica )、Racket、Erlang、Ocaml、Haskell、F#等也在被产业界的一些组织使用。一些特定领域的程序设计语言,如R (statistics)、J、K、Q、XQuery/XSLT(XML)、Opal、SQL、Lex/Yacc等也支持函数式程序设计范式。

(3)声明式(declarative): 一种构建计算机程序结构和构件的样式。它表达的是不描述控制流的计算逻辑,侧重于程序达成什么结果,不指定该结果如何实现。当前常见的声明式程序设计语言包括数据库查询语言(如SQL、Xquery 等)、正则表达式、逻辑式程序设计、函数式程序设计,以及配置管理系统等。

(4)面向对象式(object-oriented): 基于“对象”这个概念,把状态和修改状态的代码组织在一起。 许多使用最广泛的程序设计语言,如C、Object Pascal、Java、 Python等,都是多范式的程序设计语言。它们在一定程度上支持面向对象式、命令式、过程式等程序设计。当前的主流面向对象的语言包括Java、C++、 C#、Python、PHP、 Ruby、Perl、Object Pascal、Objective-C、Dart、Swift、Scala、Common Lisp 和 Smalltalk 等。

(5)过程式(procedural): 源于结构化程序设计,基于过程调用的概念,把代码组织成功能模块(functions)。 过程,也称为例程(routine)、 子例程(subroutine) 或函数(function,不要与数学中的函数混淆,但类似于函数式程序设计中使用的函数),只是包含一系列要执行的计算步骤。 首批主要的过程式程序设计语言大约于1960出现,包括FORTRAN、Algol、COBOL 和 BASIC。Pascal 和 C发布于1970年左右, Ada 发布于1980年。Go发布于2009年,是一个更为现代化的过程式语言。

(6)逻辑式(logic), 这是一种主要基于形式逻辑的程序设计范式,有特定语法风格的执行模型。任何用逻辑式程序设计语言编写的程序都是一组表达关于某个问题域的事实和规则的逻辑形式句子。逻辑式程序设计语言主要包括Prolog、 ASP (Answer Set Programming)、Datalog 等。

(7)符号式(symbolic):在这种程序设计范式中,程序可以把自己的公式和程序组件当作普通数据一样进行操作。 把较小的逻辑单元或功能模块组合起来可以构建更为复杂的过程。这样的程序可以有效地修改自己,表现出一定的“学习”能力。因此,这种范式适合开发人工智能、专家系统、自然语言处理和计算机游戏这样的应用程序。支持符号式程序设计的语言有Wolfram、LISP、Prolog等。

577f619eb5dfb0d7a5d57b0a8f89f20d.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值