표준 템플릿 라이브러리 이력

History of the Standard Template Library


STL(Standard Template Library)의 아키텍처는 주로 Alexander Stepanov의 창작입니다.1979년에 그는 범용 프로그래밍에 대한 그의 초기 아이디어를 만들고 소프트웨어 개발에 혁명을 일으킬 수 있는 가능성을 탐구하기 시작했습니다.David Musser는 이미 1971년까지 범용 프로그래밍의 몇 가지 측면을 개발하고 주창했지만, 소프트웨어 개발(컴퓨터 대수학)의 다소 전문화된 분야로 제한되었습니다.

개념

Stephanov는 범용 프로그래밍의 가능성을 충분히 인식하고 General Electric Research and Development(General Electric Research and Development, 주로 David Musser 및 Deepak Kapur 포함)에서 범용 프로그래밍을 소프트웨어 개발의 포괄적인 기반으로 추구해야 한다고 설득했습니다.당시에는 범용 프로그래밍을 위한 프로그래밍 언어가 실제로 지원되지 않았습니다.

이러한 지원을 제공한 최초의 주요 언어는 Ada(ANSI 표준 1983)로, 범용 단위 기능을 갖추고 있다.1985년,[1] 에펠 프로그래밍 언어는 상속이라는 객체 지향 개념과 결합된 일반 클래스에 대한 내적 지원을 포함하는 최초의 객체 지향 언어가 되었습니다.1987년까지 Stephanov와 Musser는 목록 처리를 위한 Ada 라이브러리를 개발 및 출판하여 일반 프로그래밍에 대한 연구의 많은 결과를 구체화하였습니다.그러나, 아다는 방위 산업 이외에서는 그다지 받아들여지지 않았고, C++는 비교적 미숙한 언어이긴 하지만 범용 프로그래밍에 대해 널리 사용되고 좋은 지원을 제공할 가능성이 더 높은 것으로 보인다.Stepanov가 초기에 인식한 C++로 전환한 또 다른 이유는 포인터를 통해 스토리지에 매우 유연하게 액세스할 수 있는 C/C++ 계산 모델입니다. 이는 효율성을 잃지 않고 일반성을 달성하는 데 매우 중요합니다.

발전

개별 구성요소를 개발하는 것뿐만 아니라 일반 프로그래밍을 기반으로 구성요소 라이브러리를 위한 전체 아키텍처를 개발하기 위해 많은 연구와 실험이 필요했습니다.Stephanov는 AT&T Bell Laboraties에서, 그 후 Hewlett-Packard Research Labs(HP)에서, C++에서 많은 아키텍처와 알고리즘의 공식을 실험했습니다.Musser는 이 연구에 협력했고 1992년 Meng Lee는 HP의 Stephanov 프로젝트에 참여하여 주요 공헌자가 되었습니다.

Bell Labs의 Andrew Koenig가 이 작업을 인지하지 못하고 1993년 11월 ANSI/ISO C++ 표준화 위원회 회의에서 주요 아이디어를 발표하도록 Stephanov에게 요청했다면 이 작업은 분명 연구 프로젝트일 뿐이거나 기껏해야 HP 전용 라이브러리로 이어질 수 있었을 것입니다.위원회의 반응은 압도적으로 호의적이었고 1994년 3월 회의에 맞춰 코닉으로부터 정식 제안을 요청하게 되었다.엄청난 시간적 압박에도 불구하고 Alex와 Meng은 그 회의에서 예비 승인을 받은 제안서 초안을 작성할 수 있었습니다.

위원회에는 변경과 연장에 대한 여러 가지 요청이 있었고(그 중 일부는 전공), 소수의 위원들은 세부 사항을 해결하기 위해 스테파노프와 리를 만났다.Stepanov가 Musser에게 위임한 작업인 그것들을 완전히 구현함으로써 가장 중요한 확장(관련 컨테이너)의 요건이 일치함을 보여야 했다.Stephanov와 Lee는 1994년 7월 ANSI/ISO 위원회 회의에서 최종 승인을 받은 제안서를 작성했다(이력에 대한 자세한 내용은 Stevens에서 확인할 수 있다).[2]그 후, 스테파노프 및 Lee 문서 17은 ANSI/ISO C++ 초안 표준(1, 조항 17~27의 일부)에 통합되었다.또한 현악기 설비 등 C++ 표준 라이브러리의 다른 부분에도 영향을 미쳤으며, 이에 따라 이전에 채택된 일부 표준이 개정되었습니다.

STL이 위원회에서 성공을 거뒀음에도 불구하고, STL이 실제 가용성과 사용에 어떻게 도움이 될지에 대한 의문은 남아있었다.STL 요건은 공개 표준 초안의 일부이므로 컴파일러 벤더 및 독립 소프트웨어 라이브러리 벤더는 물론 자체 구현을 개발하여 개별 제품 또는 기타 제품의 판매 포인트로 판매할 수 있습니다.초판 저자 중 한 명인 Atul Saini는 STL이 위원회에서 완전히 승인되기도 전에 상업적 가능성을 가장 먼저 인식하고 그의 회사인 Modena Software Incorporated의 사업 부문으로 그것을 탐색하기 시작했습니다.

STL의 조기 확산 전망은 1994년 8월 Hewlett-Packard의 인터넷 무료 제공 결정으로 상당히 개선되었다.표준화 프로세스 중에 Stepanov, Lee 및 Musser에 의해 개발된 이 구현은 오늘날 컴파일러 및 라이브러리 벤더가 제공하는 많은 구현의 기반이 되었습니다.

레퍼런스

  1. ^ 마이어, 베르트랑ACM Conference on Object-Oriented Programming Languages and Applications(OOPSLA; 객체 지향 프로그래밍 언어 시스템 및 애플리케이션에 관한 회의), 1986년 9월 29일부터 10월 2일까지 391-405페이지.
  2. ^ Al Stevens (March 1995). "Al Stevens Interviews Alex Stepanov". Dr. Dobb's Journal. Retrieved 18 July 2007.