Skip to main content

[C++ Primer Plus] Chapter 1, 2. 시작하기

C++ 기초 플러스 책을 읽고 공부한 노트입니다.




C++ #

  • C++은 다음과 같은 요소를 합쳐서 만든 것이다.

  • (1) C의 절차적 프로그래밍

    • 알고리즘(컴퓨터가 따라가야 할 절차)을 강조함
  • (2) 객체 지향 프로그래밍

    • 데이터를 강조함(문제 특성에 맞는 데이터형을 설계힘: Class)
  • (3) 일반화 프로그래밍

    • 알고리즘을 강조함(데이터형과 무관한 코드를 작성할 수 있게함: Template)

객체 지향 프로그래밍 #

  • 클래스
    • 데이터 형식과 그것이 사용되는 방법을 서술하는 것.
  • 객체
    • 클래스가 실제로 생성된 구체물.

실행 파일 생성 순서 #

실행 파일 생성 순서
Image Source

  • (1) 전처리기가 선행처리문자(#)로 시작하는 선행처리지시문을 처리한다.
  • (2) 컴파일러가 전처리기문이 사라진 소스코드를 어셈블리 코드로 변환한다.
  • (3) 어셈블러가 목적 코드로 만든다.
  • (4) 링커가 모든 오브젝트 파일들을 연결해서 실행 코드를 만든다.

컴파일러 번역 순서 #

컴파일러 번역 순서
Image Source

  • (1) 어휘 분석(Lexical)
    • 정규 문법에 따라 소스 코드를 토큰(token; 한 행에서 더 이상 분리할 수 없는 기본 요소)의 집합으로 변환한다.
  • (2) 구문 분석 (Syntax)
    • 소스 코드의 문법이 올바른지 분석한다.
  • (3) 의미 분석 (Semantic)
    • 정수와 문자열의 덧셈, 값을 0으로 나누는 행동 등과 같이 의미적으로 올바르지 않은 코드의 존재 유무를 검사한다.
  • (4) 중간코드 생성
  • (5) 코드 최적화
    • 코드를 좀 더 효율적으로 만든다.
  • (6) 목적코드 생성

함수 #

  • 함수 원형(prototype)
    • 함수의 인터페이스만 알려주는 것
  • 함수 정의(definition)
    • 실제 코드