編程範型 、編程範式 或程式設計法 (英語:Programming paradigm ),是指軟體工程 中的一類典型的程式設計風格。常見的程式設計法有:函數式程式設計 、指令式程式設計 、程序式程式設計 、物件導向程式設計 等等。
程式設計法提供並決定了程式設計師 對程式 執行的看法。例如,在物件導向程式設計中,程式設計師認為程式是一系列相互作用的對象,由於方法論的不同,物件導向程式設計又分為類別為基程式設計 和基於原型程式設計 ,而在函數式程式設計中一個程式會被看作是一個無狀態的函式計算的序列。
概述
正如軟體工程中不同的群體會提倡不同的「方法學」一樣,不同的程式語言 也會提倡不同的「程式設計法」。一些語言是專門為某個特定的範型設計的,如 Smalltalk 和 Java 支援物件導向程式設計,而 Haskell 和 Scheme 則支援函數式程式設計,同時還有另一些語言支援多種範型,如 Ruby 、Common Lisp 、Python 、Rust 。
很多程式設計法已經被熟知他們禁止使用哪些技術,同時允許使用哪些。例如,純函數式程式設計 不允許有副作用[ 1] ;大部分高階程式語言都期望使用者進行結構化程式設計 而避免非結構化程式設計 ,其中結構化程式設計不允許使用 goto 。可能是因為這個原因,新的範型常常被那些習慣於較早的風格的人認為是教條主義或過分嚴格。然而,這樣避免某些技術反而更加證明了關於程式正確性,或僅僅是理解它的行為的法則,而不用限制程式語言的一般性。
程式設計法和程式語言之間的關係可能十分複雜,由於一個程式語言可以支援多種範型 。例如,C++ 設計時,支援程序式程式設計、物件導向程式設計以及泛型程式設計 。然而,設計師和程式設計師們要考慮如何使用這些範型元素來構建一個程式。一個人可以用 C++ 寫出一個完全程序化的程式,另一個人也可以用 C++ 寫出一個純粹的物件導向程式,甚至還有人可以寫出雜揉了兩種範型的程式。
參考文獻
參見