標準函式庫
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
程式語言的標準函式庫是該語言的每種實現中都按例提供的函式庫。在某些情況下,程式語言規格說明中會直接提及該函式庫;另一些情況下,標準函式庫的內容由編程社區中的非正式慣例決定。
根據宿主語言構成要素的不同,標準函式庫可包含如下要素:
大多數標準函式庫都至少含有如下常用組件的定義:
哲學
標準函式庫設計的哲學多種多樣。比如,C++的設計者 Bjarne Stroustrup 寫道:
C++標準函式庫應該是什麼?程式設計師的一個理想是在庫中找到所有有趣、重要、適度通用的類、函數、模板等等。然而,這裏我們問的不是「某個庫里應該有什麼?」而是「標準庫里應該有什麼」回答「所有!」對前者來說是一個合理的答案,而對後者不然。標準函式庫是每一個實現者都必須提供的東西,以便讓每一個程式設計師能夠依賴於它。[1]
這就是相對較小的標準函式庫,只包含「每一個程式設計師」在構建多種軟件時都實際可能需要的要素。這就是 C和C++標準函式庫中的哲學。
相對的,Python 的設計者 Guido van Rossum 對標準函式庫的看法要更傾向於包容,他在 Python 教程中寫道:
Python 有「已含電池」的哲學,這從它的龐大軟件套件複雜而又可靠的能力中就可以看出端倪。[2]
Van Rossum 於是列舉了處理 XML、XML-RPC、電子郵件資訊、和本地化的庫,這些都是被 C++ 標準函式庫所忽略的。這種哲學經常可以在手稿語言(如 Python 和 Ruby)和使用虛擬機器的語言(如 Java 和 .NET框架 語言)中找到。
標準函式庫舉例
- C標準函式庫,C語言用
- C++標準函式庫, C++語言用
- 標準模板庫(STL),C++標準函式庫的一部分
- Java類別庫(JCL), Java語言 和 Java平台 用
- 基礎類別館(BCL),for the .NET框架
- Factor標準函式庫 (頁面存檔備份,存於互聯網檔案館), for the Factor語言
參考
- ^ Bjarne Stroustrup. The C++ Programming Language. 3rd Ed. Addison-Wesley, 1997
- ^ Guido van Rossum. Python Tutorial 互聯網檔案館的存檔,存檔日期2008-09-28..