이름: C++
설계자: 바야네 스트롭스트룹*
발표일: 1985년
파일 확장자:
.cc, .cpp, .cxx, .C, .c++, .h, .hh, .hpp, .hxx, .h++
1. 정의
C언어 기반으로 1983년 발표하여 발전한 프로그래밍 언어
2. 기능 및 특징
- 객체지향을 염두에 두고 만들어진 언어와는 다르게, 단지 더 좋은 C 언어로서 수속형 언어로 취급되기도 함.
- C++의 변화과정
- 초기의 C++은 C 위에 놓인 트랜스레이터로 구현되었다. 즉, C++ 프로그램을 일단 C 프로그램으로 변환하고 나서 C 컴파일러로 컴파일하는 식이었고 따라서 C 언어에 대해 상위 호환성을 갖는 언어였다.
- 그 후, C 언어의 표준 규격이 바뀔 때 const 수식 등 C++의 기능이 C 언어에 받아들이기도 했다.
- 현재 C 언어와 C++와의 사이에는 엄격한 호환성은 없다.
- 특히 C99의 출현으로 C 언어와의 호환성이 깨짐 => 따라서 C99 이후로 C++은 C의 수퍼셋(superset)이 아니다. 그러나, C++17 표준안에서는 다시 C언어가 C++의 진부분집합이 될 것으로 예상.
- 현재 C와 C++가 명확한 구별 없이 혼재되어 사용되는 컴파일러가 대부분이지만 C99 이후의 문법을 C++ 컴파일러에서 컴파일할 경우 오류가 발생할 수 있다.
- C++의 기능
- 다중 상속
- 템플릿
- 연산자 오버로드
- 예외 처리
- 실행시 형 식별
- 위와 같은 다양한 기능을 가지고 있어 C++ 언어의 표준 규격은 매우 복잡함.
- => C++ 표준의 모든 사항을 완전하게 지원하는 컴파일러는 한정적
3. 역사
- (1979) 덴마크의 컴퓨터 과학자 비야네 스트롭스트룹이 C++의 선구자격 언어인 "C with Classes" 작업에 착수함. 박사 논문을 위해 새로운 언어를 만들려는 이유에서 비롯됨
- 처음에 스트롭스트룹의 "C with Classes"는 C 컴파일러(Cpre)에 클래스, 상속 클래스, 스트롱 타이핑, 인라인 확장, 기본 인수를 포함한 여러 기능들을 추가함
- (1983) "C with Classes"라는 이름은 가상 함수, 함수 이름, 연산자 오버로딩, 참조, 제약조건, type-safe free-store 메모리 할당 (new/delete), 개선된 자료형 검사, BCPL 스타일의 1줄 코멘트(//)를 포함한 새로운 기능들을 추가하면서 "C++"로 변경됨
- (1985) C++ 프로그래밍 언어 제1판이 출시되었으며 당시 공식표준이 없었기 때문에 이 언어의 절대적인 참조 문헌으로 존재함
- (1985.10) 최초의 C++ 상용 구현체 출시
출처
* 덴마크의 컴퓨터 과학자
'IT 관련 지식 > 컴퓨터일반' 카테고리의 다른 글
[UX] 저니맵 (0) | 2023.02.26 |
---|---|
AngularJS | Java | C (0) | 2022.08.14 |
서버 | 스프링 | 부트 (0) | 2022.08.12 |