라이브러리 (컴퓨팅): 두 판 사이의 차이

내용 삭제됨 내용 추가됨
편집 요약 없음
편집 요약 없음
1번째 줄:
[[파일:Ogg vorbis libs and application dia.svg|thumb|277px|right|[[Ogg Vorbis]] 파일을 재생하기 위해 libvorbisfile을 사용하는 응용 프로그램의 개요도.]]
'''라이브러리'''({{llang|en|library}})는 [[소프트웨어]]를 만들 때 쓰이는 [[클래스 (컴퓨터 과학)|클래스]]나 [[함수 (프로그래밍)|서브루틴]]들의 모임을 가리키는 말이다.
 
== 역사 ==
라이브러리와 유사한 최초의 프로그래밍 개념들은 프로그램 [[구현체]]로부터 [[데이터]]를 분리하기 위한 의도였다. [[JOVIAL]]은 1959년 "COMPOOL" (Communication Pool)이라는 개념을 통해 주목을 끌었으나 이는 대형 시스템 [[SAGE]] 소프트웨어로부터 개념을 가져온 것이다. [[관심사 분리]]와 [[정보 감춤]]이라는 컴퓨터 과학 원칙을 따라, Comm Pool의 목적은 중점이 되는 데이터 기술을 제공함으로써 수많은 프로그램들 간에 시스템 데이터 공유를 허가하는 것이었다.<ref name="Wexelblat_1981_369">{{서적 인용 |last=Wexelblat |first=Richard
|title=History of Programming Languages
|publisher=Academic Press (A subsidiary of [[Harcourt Brace]]) |year=1981 |series=ACM Monograph Series |publication-place=New York, NY |isbn=0-12-745040-8 |page=369 |postscript=<!--None--> }}</ref>
 
[[코볼]] 또한 1959년에 라이브러리 시스템을 위한 원시적인 기능을 포함하기도 했으나,<ref name="Wexelblat_1981_274">Wexelblat, ''op. cit.'', p. 274</ref> [[Jean E. Sammet|Jean Sammet]]은 회상을 통해 이를 "적절하지 않은 라이브러리 기능"으로 정의하였다.<ref name="Wexelblat_1981_258">Wexelblat, ''op. cit.'', p. 258</ref>
 
현대의 라이브러리 개념은 주로 [[포트란]]의 [[서브프로그램]] 이노베이션의 형태로 나타났다. 포트란의 서브프로그램들은 서로 개별적으로 컴파일할 수 있지만, 컴파일러에 [[링커 (컴퓨팅)|링커]]가 존재하지 않았다. 그러므로 포트란-90의 모듈 도입 이전까지는 포트란<ref group=NB>It was possible earlier between, e.g., Ada subprograms.</ref> 서브 프로그램들 사이에 [[자료형 체계|자료형 검사]]가 불가능했다.<ref name="Wilson_Clark_1988_126">{{서적 인용 |last1=Wilson |first1=Leslie B. |last2=Clark |first2=Robert G.
|title=Comparative Programming Languages
|publisher=Addison-Wesley |year=1988 |publication-place=Wokingham, England |isbn=0-201-18483-4 |page=126 |postscript=<!--None--> }}</ref>
 
마침내, 이 개념의 사학자들은 영향력 있는 [[시뮬라 67]]을 기억해냈다. 시뮬라는 최초의 [[객체 지향 프로그래밍]] 언어로, 이 언어의 클래스가 [[자바 (프로그래밍 언어)|자바]], [[C++]], [[C 샤프]]에 쓰인 현대의 개념과 매우 근접했다. 시뮬라의 클래스 개념은 또한 [[에이다]]의 패키지, [[모듈라-2]]의 모듈의 조상이기도 했다.<ref name="Wilson_Clark_1988_52">Wilson and Clark, ''op. cit.'', p. 52</ref> Even when developed originally in 1965, Simula classes could be included in library files and added at compile time.<ref name="Wexelblat_1981_716">Wexelblat, ''op. cit.'', p. 716</ref>
 
== 링크 ==
줄 26 ⟶ 39:
* [[C 표준 라이브러리]]
* [[플러그인]]
 
== 각주 ==
{{각주}}
 
== 바깥 고리 ==
줄 31 ⟶ 47:
 
{{Authority control}}
{{토막글|컴퓨터 과학}}
 
[[분류:라이브러리| ]]