程式設計法

基於計算機編程風格的編程語言分類

編程範型編程範式程式設計法(英語:Programming paradigm),是指軟件工程中的一類典型的編程風格。常見的程式設計法有:函數式程式設計指令式編程程序式編程物件導向程式設計等等。

程式設計法提供並決定了程式設計師程式執行的看法。例如,在物件導向程式設計中,程式設計師認為程式是一系列相互作用的對象,由於方法論的不同,物件導向程式設計又分為類別為基編程基於原型編程,而在函數式程式設計中一個程式會被看作是一個無狀態的函數計算的序列。

概述

正如軟件工程中不同的群體會提倡不同的「方法學」一樣,不同的程式語言也會提倡不同的「程式設計法」。一些語言是專門為某個特定的範型設計的,如 SmalltalkJava 支援物件導向程式設計,而 HaskellScheme 則支援函數式程式設計,同時還有另一些語言支援多種範型,如 RubyCommon LispPythonRust

很多程式設計法已經被熟知他們禁止使用哪些技術,同時允許使用哪些。例如,純函數式程式設計不允許有副作用[1];大部分高階程式語言都期望用戶進行結構化編程而避免非結構化編程,其中結構化編程不允許使用 goto。可能是因為這個原因,新的範型常常被那些習慣於較早的風格的人認為是教條主義或過分嚴格。然而,這樣避免某些技術反而更加證明了關於程式正確性,或僅僅是理解它的行為的法則,而不用限制程式語言的一般性。

程式設計法和程式語言之間的關係可能十分複雜,由於一個程式語言可以支援多種範型。例如,C++ 設計時,支援程序式編程、物件導向程式設計以及泛型編程。然而,設計師和程式設計師們要考慮如何使用這些範型元素來構建一個程式。一個人可以用 C++ 寫出一個完全程序化的程式,另一個人也可以用 C++ 寫出一個純粹的物件導向程式,甚至還有人可以寫出雜揉了兩種範型的程式。

參考文獻

  1. ^ F# 編程入門 (1)頁面存檔備份,存於互聯網檔案館):在表示式(expression)內不可以造成值的改變。

參見