A Tour of C++ 1.1 — C++를 볼 때 무엇부터 잡나
Bjarne Stroustrup의 A Tour of C++ 1.1 Introduction은 “문법을 하나씩 외우기”보다 C++ 프로그램을 어떻게 이해할지의 큰 그림을 잡습니다. 이후 절(프로그램·함수·타입·…)이 쌓이려면, 여기서 보는 축이 먼저 잡혀 있어야 합니다.
한 줄로
C++는 문법 목록이 아니라 표기법 + 타입·메모리·연산 모델 + 프로그램을 만드는 기본 메커니즘을 함께 이해하는 언어입니다.
무엇을 “이해한다”고 말하나
Tour가 1.1에서 짚는 방향은 대략 세 갈래입니다.
- 표기법(notation)
소스에 적힌 기호와 이름이 무엇을 가리키는지. 선언·식·문장이 어떻게 읽히는지. - 모델(model)
값이 메모리에 어떻게 놓이고, 연산이 어떤 계산으로 이어지는지. “실행 결과가 맞다”만으로는 부족할 때가 많습니다. - 메커니즘(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용으로 새로 썼습니다.