For faster navigation, this Iframe is preloading the Wikiwand page for 编程范型.

编程范型

维基百科,自由的百科全书

此条目需要补充更多来源。 (2017年12月31日)请协助补充多方面可靠来源改善这篇条目无法查证的内容可能会因为异议提出而移除。致用户:请搜索一下条目的标题(来源搜索:"编程范型"网页新闻书籍学术图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。

编程范型编程范式程序设计法(英语:Programming paradigm),是指软件工程中的一类典型的编程风格。常见的编程范型有:函数式编程指令式编程过程式编程面向对象编程等等。

编程范型提供并决定了程序员程序执行的看法。例如,在面向对象编程中,程序员认为程序是一系列相互作用的对象,由于方法论的不同,面向对象编程范型又分为基于类编程基于原型编程,而在函数式编程中一个程序会被看作是一个无状态的函数计算的序列。

概述

正如软件工程中不同的群体会提倡不同的“方法学”一样,不同的编程语言也会提倡不同的“编程范型”。一些语言是专门为某个特定的范型设计的,如SmalltalkJava支持面向对象编程,而HaskellScheme则支持函数式编程,同时还有另一些语言支持多种范型,如RubyCommon LispPythonRust

很多编程范型已经被熟知他们禁止使用哪些技术,同时允许使用哪些。例如,纯函数式编程不允许有副作用[1];大部分高端程序语言都期望用户进行结构化编程避免非结构化编程结构化编程不允许使用goto。可能是因为这个原因,新的范型常常被那些习惯于较早的风格的人认为是教条主义或过分严格。然而,这样避免某些技术反而更加证明了关于程序正确性,或仅仅是理解它的行为的法则,而不用限制程序语言的一般性。

编程范型和编程语言之间的关系可能十分复杂,由于一个编程语言可以支持多种范型。例如,C++设计时,支持过程式编程面向对象编程以及泛型编程。然而,设计师和程序员们要考虑如何使用这些范型元素来构建一个程序。一个人可以用C++写出一个完全过程化的程序,另一个人也可以用C++写出一个纯粹的面向对象程序,甚至还有人可以写出杂揉了两种范型的程序。

参考文献

  1. ^ F# 编程入门 (1)页面存档备份,存于互联网档案馆):在表示式(expression)内不可以造成值的改变。

参见

{{bottomLinkPreText}} {{bottomLinkText}}
编程范型
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.