IT 관련 지식/컴퓨터일반

C++

제티맛초코 2022. 8. 17. 02:15

 

이름: 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