표준 라이브러리

Standard library

컴퓨터 프로그래밍에서 표준 라이브러리는 프로그래밍 언어의 구현 에 사용할 수 있는 라이브러리입니다.이러한 라이브러리는 일반적으로 프로그래밍 언어 사양으로 기술되지만, 언어의 관련 라이브러리의 내용은 언어 커뮤니티의 비공식적인 관행에 의해 결정될 수도 있습니다(부분 또는 전체).

개요

언어의 표준 라이브러리는 사용자가 언어의 일부로 취급하는 경우가 많지만 설계자는 이를 별개의 실체로 취급할 수도 있다.많은 언어 사양은 옵션으로 구현될 수 있는 다른 부분과 더불어 모든 구현에서 사용할 수 있어야 하는 핵심 세트를 정의합니다.그러므로 언어와 라이브러리 사이의 경계는 언어마다 다르다.실제로, 일부 언어는 핵심 라이브러리를 참조하지 않고는 특정 구문 구조의 의미를 설명할 수 없도록 설계되어 있습니다.예를 들어 Java에서 문자열 리터럴은 java.lang의 인스턴스로 정의됩니다.문자열 클래스. 마찬가지로 Smalltalk에서 익명 함수 표현식("블록")은 라이브러리의 BlockContext 클래스의 인스턴스를 구성합니다.반대로 스킴은 언어의 나머지 부분을 라이브러리 매크로로 구성하기에 충분한 여러 개의 일관성 있는 하위 집합을 포함하므로 언어 설계자는 언어의 어떤 부분이 언어 구성체로 구현되어야 하는지, 그리고 어떤 부분이 라이브러리의 일부로 구현되어야 하는지조차 말하지 않습니다.

내용물

표준 라이브러리에는 일반적으로 사용되는 알고리즘, 데이터 구조 및 입력 및 출력 메커니즘에 대한 정의가 포함됩니다.호스트 언어에 의해 제공되는 구조에 따라 표준 라이브러리는 다음을 포함할 수 있습니다.

대부분의 표준 라이브러리에는 적어도 일반적으로 사용되는 다음과 같은 설비에 대한 정의가 포함되어 있습니다.

철학

표준 도서관 설계의 철학은 매우 다양하다.예를 들어, C++의 설계자인 Bjarne Strustrup은 다음과 같이 쓰고 있습니다.

표준 C++ 라이브러리에는 무엇이 있어야 합니까?한 가지 이상은 프로그래머가 라이브러리에서 흥미롭고 중요하며 합리적으로 일반적인 모든 클래스, 함수, 템플릿 등을 찾을 수 있는 것입니다.그러나 여기서의 질문은 "어떤 도서관에 무엇이 있어야 하는가?"가 아니라 "표준 도서관에 무엇이 있어야 하는가?"이다."Everything!"이라는 답변은 전자의 질문에 대한 답변에 대한 합리적인 첫 번째 근사치이지만 후자는 아니다.표준 라이브러리는 모든 프로그래머가 [1]신뢰할 수 있도록 구현자가 제공해야 하는 것입니다.

이는 "모든 프로그래머"가 대규모 소프트웨어 컬렉션을 구축할 때 합리적으로 필요한 구성 요소만 포함하는 비교적 작은 표준 라이브러리를 제안합니다.이것은 C 및 C++ 표준 라이브러리에서 사용되는 원리입니다.

반면 Python의 설계자Guido van Rossum은 Python이 코드화하기 쉽고 객체 지향적이며 고급 언어 수단을 제공하는 표준 라이브러리의 훨씬 포괄적인 비전을 채택했습니다.Python 튜토리얼에서 그는 다음과 같이 쓰고 있다.

Python은 "배터리 포함" 철학을 가지고 있다.이는 보다 큰 [2]패키지의 정교하고 견고한 기능을 통해 가장 잘 드러납니다.

Van Rossum은 XML, XML-RPC, 이메일 메시지 C++ 표준 라이브러리에서 누락되는 기능인 현지화를 위한 라이브러리를 나열합니다.이 기타 철학은 스크립트 언어(Python 또는 Ruby) 또는 Java 또는 같은 가상 머신을 사용하는 언어에서 자주 볼 수 있습니다.NET Framework 언어C++에서는 이러한 설비는 표준 라이브러리의 일부가 아니라 Boost와 같은 다른 라이브러리의 일부입니다.

표준 라이브러리의 예

레퍼런스

  1. ^ 비야른 스트루스트럽.C++ 프로그래밍 언어.제3판애디슨-웨슬리, 1997년
  2. ^ 귀도 반 로섬.[1]