C의 프로그래밍 철학
하양식(Top-down) 설계는 구조적 프로그래밍이 고수하는 또 하나의 철학이다.
C언어에서, 이 아이디어는 규모가 큰 프로그램을 작고 다루기 쉬운 단위 작업들로 쪼개는 것이다.
C언어에서는 개별적인 작업을 수항해는 함수(function) 단위로 프로그램을 개발한다.
C++의 등장: 객체 지향 프로그래밍
절차적 프로그래밍은 알고리즘을 강조 하지만 객체 지향 프로그램은 데이터를 강조한다.
저수준의 클래스(프로그램이 다루어야 하는 개체)를 먼저 설계한 후에 고수준 프로그램 설계로 진행하는 것을 상향식(bottom-up) 프로그래밍이라 한다.
C++와 일반화 프로그래밍
일반화 프로그래밍은 C++이 내걸고 있는 또하나의 프로그래밍 철학이다.
OOP는 데이터 측면을 강조하는 반면에, 일반화 프로그래밍은 알고리즘 측면을 강조한다.
데이터를 소팅하거나 리스트를 병합하는 등의 일반적인 작업을 할 때에는 일반화 프로그래밍이 편리하다.
여기서 일반화(generic)라는 말은 데이터형과 무관한 코드를 작성한다는 것을 의미한다.
일반형을 위한 함수를 하나 만들고 그 함수를 여러 유형의 데이터형에 두루 사용할 수 있다. 이것을 가능하게 하는 것이 C++ 템플릿이다.
이식성과 표준
프로그램 소스코드를 수정하지 않고 재 컴파일만으로 제대로 실행이 된다면, 이 경우 프로그램이 이식성(Portable)이 있다고 말할 수 있다.
프로그램이 이식성을 갖기 위해서는 두가지 장애 요인이 있다.
첫 번째 장애 요인은 하드웨어로, 특정 하드웨어 종속적인 프로그램은 이식성을 갖지 못한다.
두 번째 장애 요인은 프로그래밍 언어 간의 상이성이다. 이는 같은 프로그래밍 언어에도 사투리가 있을 수 있다는 말이다.
명확하게 정해진 표준을 위해 미국 국립 표준 협회는 국제 표준을 만들었고 이를 C++98이라 부른다.
C++98은 C++가 기존에 가지고 있던 특성을 수정했으며 예외 처리, RTTI(runtime type identification), 템플릿, STL(Standard Template Library) 등의 새로운 특성을 추가하여 C++ 언어 자체를 확장시켰다.
Unix에서 컴파일과 링크
spiffy.c라는 c++ 소스코드 파일을 컴파일 하면 컴파일러는 목적코드(object code)라는 의미를 가진 o 확장자를 가진 목적 코드 파일을 생성한다. 이경우 컴파일러가 spiffy.p라는 이름의 파일을 생성한다. 이 목적 코드를 링커 프로그램으로 넘긴다. 링커는 이 목적 코드와 라이브러리 코드를 결합하여 실행 파일을 생성한다. 이 경우에는 a.out이 생성될 것이다. 컴파일 하고 있는 소스코드 파일이 하나밖에 없을 경우에는 링커는 더이상 쓸모가 없는 spiffy.o파일을 삭제한다.
'C++ > C++ 기초 플러스 6판(Book)' 카테고리의 다른 글
[C++] 분기 구문과 논리 연산자 (0) | 2025.03.04 |
---|---|
[C++] 루프와 관계 표현식 (0) | 2025.03.03 |
[C++] 복합 데이터형 (0) | 2025.03.02 |
[C++] 데이터 처리 (0) | 2025.03.01 |
[C++] C++ 시작하기 (0) | 2025.03.01 |