A Tour of C++ 1.1 — C++를 볼 때 무엇부터 잡나

Bjarne Stroustrup의 A Tour of C++ 1.1 Introduction은 “문법을 하나씩 외우기”보다 C++ 프로그램을 어떻게 이해할지의 큰 그림을 잡습니다. 이후 절(프로그램·함수·타입·…)이 쌓이려면, 여기서 보는 축이 먼저 잡혀 있어야 합니다.

한 줄로

C++는 문법 목록이 아니라 표기법 + 타입·메모리·연산 모델 + 프로그램을 만드는 기본 메커니즘을 함께 이해하는 언어입니다.

무엇을 “이해한다”고 말하나

Tour가 1.1에서 짚는 방향은 대략 세 갈래입니다.

  1. 표기법(notation)
    소스에 적힌 기호와 이름이 무엇을 가리키는지. 선언·식·문장이 어떻게 읽히는지.
  2. 모델(model)
    값이 메모리에 어떻게 놓이고, 연산이 어떤 계산으로 이어지는지. “실행 결과가 맞다”만으로는 부족할 때가 많습니다.
  3. 메커니즘(mechanisms)
    함수, 객체, 타입, 컴파일·링크처럼 프로그램을 조립하는 기본 장치.

이 축을 나중에 포인터, 클래스, 템플릿이 덮어쓰지 않습니다. 오히려 그 위에 얹힙니다.

왜 임베디드·시스템 쪽에서도 1.1이 쓸모 있나

하드웨어에 가까운 코드일수록 “문법상 맞다”보다 다음이 먼저입니다.

  • 이 값은 몇 바이트인가
  • 어디에 저장되는가 (스택, 정적 저장, 버퍼, 레지스터에 가까운 표현)
  • 이 연산의 결과 타입은 무엇인가

1.1은 그 질문을 나중에 구체적으로 파기 전에, “C++를 그런 식으로 봐야 한다”는 습관을 심습니다.

이 시리즈에서 다음에 볼 것

1.1 다음 Tour 흐름은 보통 프로그램이 어떻게 실행 파일이 되는지(1.2), 함수가 값을 어떻게 받는지(1.3), 타입·변수·산술(1.4)로 이어집니다. Astro 2호점 Tour 시리즈는 1.1부터 한 절씩 KO/EN으로 쌓습니다.

참고

  • Bjarne Stroustrup, A Tour of C++ (3rd ed.), §1.1 Introduction
  • Drive 『A Tour of C++』 공부 폴더에는 현재 1.1 전용 공부노트가 없음(진도 기록상 1.8부터). 이 글은 책 절 흐름에 맞춰 Astro용으로 새로 썼습니다.