📚C와 C++

C++는 AT&T 벨 연구소의 비야네 스트롭스트룹이 C 언어를 확장하여 만든 객체지향 프로그래밍 언어이다. C++은 C가 가지고 있는 모든 기능을 포함하고 있으며 몇 가지 새로운 기능이 추가되었다. C는 절차적 프로그래밍 언어지만, C++는 객체지향 프로그래밍을 위한 부분이 포함된 것이다.

절차적 프로그래밍은 적절한 단위로 정의된 처리 절차를 함수로 표현하고 이 함수들이 적절한 순서로 실행되도록 작성된다. C는 절차적 프로그래밍에 필요한 고급 프로그래밍 언어의 구문을 갖추고 있으며 컴퓨터 하드웨어와 밀접한 관계가 있는 프로그램을 어셈블리어를 사용하지 않고도 작성할 수 있도록 설계되었다.

C++는 C를 기반으로 개발된 언어이기 때문에 몇 가지 예외를 제외하고 C의 문법을 그대로 따른다. 하지만 C++는 C에서 지원하지 않는 프로그래밍 패러다임을 지원할 수 있도록 확장되었다. C++는 클래스, 클래스의 계층구조를 활용한 객체지향 프로그래밍을 할 수 있고, 템플릿을 이용한 일반화 프로그래밍을 지원할 수 있다.




📚C++ 표준

국제표준화 기구(ISO)는 1989년부터 C++의 표준화 작업에 착수하였다.

  • C++98: 1998년에 승인된 첫 번째 표준은 ISO/IEC 14882:1998이고 공식 명칭은 “Information Technology-Programming Languages-C++”로 C++98이라는 명칭으로 부르기도 했다.

  • C++03: 2003년에 C++98의 오류를 바로잡아 C++03을 발표했고 C++98과 C++03을 함께 첫 번째 C++ 표준이라고 부른다.

  • C++TR1: 2007년에 C++03 표준의 C++ 표준 라이브러리를 확장한 ISO/IEC TR19768:2007을 제안하였다.

  • C++11: 2011년에 두 번째 C++ 표준인 ISO/IEC 14882:2011이 승인되었다. TR1에서 제안된 내용 모두 std 명칭공간으로 모두 옮겨놓았고, 언어와 라이브러리 모두 상당한 개선이 이루어졌다.

  • C++14: 2014년 8월에 ISO/IEC 14882:2014라는 정식 명칭으로 C++14이 제정되었다. C++11에 추가된 요소들을 다듬고 확장하는데 치중한 마이너 표준안이다.

  • C++17: 2017년 12월에 C++17 표준이 ISO/IEC 14882:2017이라는 정식 명칭으로 승인되었다. C++17은 표준 라이브러리의 새로운 기능에 주력했던 표준안이다.

  • C++20: 2020년 9월에 ISO/IEC 14882:2020이라는 정식 명칭으로 승인되었다. 비동기 프로그래밍을 지원하기 위한 코루틴, 컴파일 속도 향상을 위한 소스 파일 모듈화, 템플릿에 제약 조건을 추가하기 위한 컨셉트 등이 추가되었다.

  • C++23: 2023년 말에 배포 예정인 최신 표준안이다. 코로나19로 전 세계가 봉쇄된 기간에 개발이 진행되어서 C++23의 코드명은 팬데믹 에디션이라고 한다. C++23은 컴파일 속도를 높이는 표준 라이브러리 모듈을 지원한다고 한다. 대대적인 변경보다는 C++20의 단점을 보완해 완성도를 높이는 것에 집중한 표준이라고 한다.



Leave a comment