본문 바로가기
개발

[기술의역사] C++ (C 플러스 플러스)

by 마스터누누 2017. 4. 18.
728x90
반응형

C++ (C 플러스 플러스)




C++ 개발자 비야네 스트롭스트룹(Bjarne Stroustrup)



1983년 AT&T 벨 연구소의 비야네 스트롭스트룹이 C언어를 기반으로 객체지향프로그래밍(Object Oriented Programming)과 STL(Standard Templete Library)를 추가하여 만들어진 언어이다. 


C언어를 기반으로 했기때문에 C++ 컴파일러에 C언어를 컴파일 할수있다. 초기에는 C 언어에 객체지향을 위한 기능을 추가한 언어라고 취급 되었다. 


예로, 초기에 C++를 컴파일 하기 위해서는 작성된 C++에서 C로, C에서 기계여로 번역되는 순서를 보였다. 


그러나 표준 규격이 바뀜에 따라 C언어와의 호환성은 깨지게 되었고, 현재는 완전히 별개의 언어로 보는것이 맞다고 본다. 보통 국내에서는 씨플플이라고 발음한다.




비야네 저서, The C++ Programming Language


C와의 비슷한 구조 덕분에 C를 선행하고 C++를 배우는 학생들은 객체 지향의 특수성을 제대로 살리지 못하고 절차적인 특성으로 코드를 짜기도 한다. 반대의 커리큘럼으로 배운 학생도 마찬가지이다. C++에서 쉽게 제공되는 기능들이 C로 넘어갈 경우 직접 작성해야 하거나 복잡한 절차들을 거쳐야한다.


주요 특징은 다음과 같다.


- 다중상속

- 템플릿

- 연산자 오버로드

- 예외처리

- 실행시 형 식별


초기 모델은 1979년 객체지향 언어인 simula를 C에 접목 시키는 것으로, 처음에는 C with classes였으나 개발을 거듭하며 C++으로 이름이 바뀌게 된다. 이 후 C++가 안정적으로 정착함에 따라 표준화에 대한 요구가 이어졌다. 


그렇게 최초로 표준안으로 채택된것이 1998년 C++98이다. 이후 C++03, C++11을 거쳐 현재 C++14까지 표준안이 변경되었다. 이렇게 표준안이 변경될때마다 내부의 크고 작은 기능들이 함께 변경된다. 


backjoon 알고리즘 사이트에 표시된 C++11등이 이러한 표준안에 따른 언어를 표현한다고 볼수 있다. 이후 C++17, C++20이 채택될 예정이다.




알렉산더 스테파노프(Alexander Stepanov)



STL은 C++에 포함된 표준 라이브러리 중에 하나이다. 그러나 가끔 STL자체를 C++에 대한 전체 표준라이브러리로 칭하는 경우가있다. 


알렉산더 스테파노프라는 프로그래머가 만든 라이브러리가 시초이다. 개발 년도는 1979년인데, 년도에서 알수있는 것처럼 특정언어를 타겟으로 한게 아니라 독립적으로 제작 되었다가 이후 C++으로 흡수 되었다. 


STL은 크게 컨테이너, 반복자, 알고리즘의 3가지로 나뉜다.


 컨테이너

반복자 

알고리즘 

 vector/deque

 forward_iterator

 for_each

 list/forward_list

 reverse_iterator

 transform

 set/multiset

 insert_iterator

gnerate 

 map/multimap

 input_iterator_tag

 find

 stack/queue

 output_iterator_tag

 sort

 ... ... ...


반응형

'개발' 카테고리의 다른 글

[네트워크] HTTP의 기초 - 2  (0) 2017.04.18
[네트워크] HTTP의 기초 - 1  (0) 2017.04.18
[기술의역사] C언어  (0) 2017.04.18
[기술의역사] 리눅스 Linux  (0) 2017.04.18
[기술의역사] 유닉스 UNIX  (0) 2017.04.18

댓글