标准库
![本页使用了标题或全文手工转换](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..