토큰(Token)은 컴파일러가 의미를 인식할 수 있는 프로그램의 가장 작은 구성 단위를 말합니다. 컴파일러는 소스 코드를 이러한 최소 단위인 토큰들로 분해한 뒤, 각 토큰을 컴파일의 여러 단계(어휘 분석, 구문 분석 등)로 전달하여 처리합니다.
C 언어 토큰의 종류
C 언어에서 토큰은 아래와 같이 여섯 가지 유형으로 분류됩니다.
- 키워드(Keywords) — int, return처럼 C 언어가 미리 정의해 둔 예약어
- 식별자(Identifiers) — 변수명, 함수명 등 사용자가 직접 정의하는 이름
- 상수(Constants) — 값이 변하지 않는 고정된 수치
- 문자열(Strings) — 큰따옴표로 묶인 문자들의 집합
- 특수 기호(Special Symbols) — { }, ( ), # 처럼 특정 용도로 쓰이는 기호
- 연산자(Operators) — +, -, * 처럼 연산을 수행하는 기호
예제 코드
아래는 식별자, 키워드, 변수 등 다양한 토큰이 실제로 사용된 C 프로그램입니다.
#include <stdio.h>
int main(){
int a,b,c;
printf("enter a and b values: \n");
scanf("%d%d",&a,&b);
c=a*b;
printf("value of c=%d",c);
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
enter a and b values:4 5 value of c=20
코드 속 토큰 분석
위 프로그램에서 각 요소가 어떤 토큰에 해당하는지 살펴보면 다음과 같습니다.
- main → 함수 이름으로서의 식별자(identifier)
- int → 자료형을 지정하는 키워드(keyword)
- { } → 코드 블록의 시작과 끝을 나타내는 구분자(delimiter), 즉 특수 기호
- a, b, c → 값을 저장하는 변수(variable)이자 사용자 정의 식별자
이처럼 프로그램을 구성하는 모든 요소들이 개별적인 토큰으로 분리되며, 이 토큰들이 모여 하나의 완전한 C 프로그램이 됩니다.