Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 토큰(Token) vs 식별자(Identifier) vs 키워드(Keyword) 완벽 정리

C++에서 토큰, 식별자, 키워드란 무엇인가?

토큰(Token)은 C++ 프로그램을 구성하는 가장 작은 단위로, 컴파일러가 의미를 인식할 수 있는 최소 요소를 말합니다. C++ 파서(parser)는 다음과 같은 종류의 토큰들을 인식합니다.

  • 식별자(Identifier)
  • 키워드(Keyword)
  • 리터럴(Literal)
  • 연산자(Operator)
  • 구두점 및 구분 기호(Punctuator & Separator)

이러한 토큰들이 모여 하나의 스트림(stream)을 이루고, 이 스트림이 바로 번역 단위(Translation Unit)를 구성하게 됩니다. 일반적으로 토큰과 토큰 사이는 공백(white space)으로 구분됩니다.

전처리 토큰(Preprocessing Token)

컴파일러가 코드를 처리하기 전에 수행되는 전처리 단계(preprocessing phase)에서는 별도의 전처리 토큰이 사용됩니다. 대표적인 예로 #include, #define, #ifdef 같은 전처리 지시문이 있으며, 이 단계에서 생성된 토큰 스트림이 컴파일러로 전달됩니다.

전처리 토큰의 주요 범주는 다음과 같습니다.

  • 헤더 이름(Header Name)
  • 식별자(Identifier)
  • 전처리 숫자(Preprocessing Number)
  • 문자 리터럴(Character Literal)
  • 문자열 리터럴(String Literal)
  • 위 범주에 속하지 않는 기타 문자들

특히 문자 리터럴과 문자열 리터럴은 사용자 정의 리터럴(user-defined literal) 형태로 확장될 수 있습니다. 또한 전처리 토큰 사이는 공백뿐만 아니라 주석(comment)으로도 구분할 수 있다는 점이 일반 토큰과 다릅니다.

식별자(Identifier)

식별자는 사용자가 프로그램 내에서 직접 이름을 붙인 모든 것을 의미합니다. 예를 들어 다음과 같은 요소들이 모두 식별자에 해당합니다.

  • 함수(메서드) 이름
  • 변수 이름
  • 구조체(struct) 이름
  • 클래스(class) 이름

즉, 개발자가 코드 안에서 새롭게 정의하고 참조하기 위해 만든 모든 이름이 식별자라고 할 수 있습니다.

키워드(Keyword)

키워드는 C++ 언어 자체가 미리 예약해 놓은 특수한 식별자입니다. int, class, return, if, while 등이 대표적이며, 이들은 언어 문법상 특정 기능을 수행하도록 지정되어 있기 때문에 프로그램에서 변수나 함수의 이름으로 사용할 수 없습니다.

핵심 정리

구분설명
토큰(Token)컴파일러가 인식하는 프로그램의 가장 작은 의미 단위
식별자(Identifier)사용자가 변수, 함수, 클래스 등에 직접 붙인 이름
키워드(Keyword)언어가 예약한 식별자로, 변수명 등으로 사용 불가

정리하면, 토큰은 C++ 코드의 가장 작은 구성 요소이며, 그중에서 사용자가 직접 명명한 것이 식별자이고, 언어 차원에서 예약되어 임의로 사용할 수 없는 식별자가 바로 키워드입니다. 이 세 가지 개념의 관계를 정확히 이해하면 C++의 컴파일 과정과 문법 구조를 더 깊이 있게 파악할 수 있습니다.