程式語言標準函式庫是該語言的每種實現中都按例提供的函式庫。在某些情況下,程式語言規格說明中會直接提及該函式庫;另一些情況下,標準函式庫的內容由編程社群中的非正式慣例決定。

根據宿主語言構成要素的不同,標準函式庫可包含如下要素:

大多數標準函式庫都至少含有如下常用組件的定義:

哲學

標準函式庫設計的哲學多種多樣。比如,C++的設計者 Bjarne Stroustrup 寫道:

C++標準函式庫應該是什麼?程式設計師的一個理想是在庫中找到所有有趣、重要、適度通用的類、函式、模板等等。然而,這裡我們問的不是「某個庫里應該有什麼?」而是「標準庫里應該有什麼」回答「所有!」對前者來說是一個合理的答案,而對後者不然。標準函式庫是每一個實現者都必須提供的東西,以便讓每一個程式設計師能夠依賴於它。[1]

這就是相對較小的標準函式庫,只包含「每一個程式設計師」在構建多種軟體時都實際可能需要的要素。這就是 CC++標準函式庫中的哲學。

相對的,Python 的設計者 Guido van Rossum 對標準函式庫的看法要更傾向於包容,他在 Python 教程中寫道:

Python 有「已含電池」的哲學,這從它的龐大軟體套件複雜而又可靠的能力中就可以看出端倪。[2]

Van Rossum 於是列舉了處理 XMLXML-RPC、電子郵件資訊、和在地化的庫,這些都是被 C++ 標準函式庫所忽略的。這種哲學經常可以在手稿語言(如 PythonRuby)和使用虛擬機器的語言(如 Java.NET框架 語言)中找到。

標準函式庫舉例

參考

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.