約束編程

約束編程(Constraint programming)是一種編程典範,在這種編程範式中,變數之間的‘關係’是以約束的形式陳述(組織)的。

基本介紹

  • 中文名:約束編程
  • 外文名:Constraint programming
簡介,編程范型,例子,

簡介

約束編程(Constraint programming)是一種編程典範,在這種編程範式中,變數之間的‘關係’是以約束的形式陳述(組織)的。這些‘關係(約束)’和命令式程式語言元素不同的是:它們並非明確說明了要去執行的步驟中的某一步,而是規範其解的一些屬性。這樣看來,約束編程是一種聲明式的編程範式。

編程范型

編程范型編程範式程式設計法(英語:Programming paradigm),(即模範、典範之意,範式即模式、方法),是一類典型的編程風格,是指從事軟體工程的一類典型的風格(可以對照方法學)。如:函式式編程程式編程面向對象編程指令式編程等等為不同的編程范型。
編程范型提供了(同時決定了)程式設計師程式執行的看法。例如,在面向對象編程中,程式設計師認為程式是一系列相互作用的對象,而在函式式編程中一個程式會被看作是一個無狀態的函式計算的序列。
正如軟體工程中不同的群體會提倡不同的“方法學”一樣,不同的程式語言也會提倡不同的“編程范型”。一些語言是專門為某個特定的范型設計的(如SmalltalkJava支持面向對象編程,而HaskellScheme則支持函式式編程),同時還有另一些語言支持多種范型(如RubyCommon LispPythonOz)。
很多編程范型已經被熟知他們禁止使用哪些技術,同時允許使用哪些。例如,純粹的函式式編程不允許有副作用;結構化編程不允許使用goto。可能是因為這個原因,新的范型常常被那些習慣於較早的風格的人認為是教條主義或過分嚴格。然而,這樣避免某些技術反而更加證明了關於程式正確性——或僅僅是理解它的行為——的法則,而不用限制程式語言的一般性。
編程范型和程式語言之間的關係可能十分複雜,由於一個程式語言可以支持多種范型。例如,C++設計時,支持過程化編程、面向對象編程以及泛型編程。然而,設計師和程式設計師們要考慮如何使用這些范型元素來構建一個程式。一個人可以用C++寫出一個完全過程化的程式,另一個人也可以用C++寫出一個純粹的面向對象程式,甚至還有人可以寫出雜揉了兩種范型的程式。

例子

相關詞條

熱門詞條

聯絡我們