728x90
심볼 테이블 은 컴파일러가 소스코드를 분석하는 과정에서 생성된다.
이는 변수, 함수 등의 식별자와 해당 식별자가 가리키는 메모리 위치 등의 정보를 저장하는 데이터 구조이다.
다음 코드와 함께 예시를 살펴보자.
위 코드에서 변수 x는 식별자(identifier) 로서 main함수 내부에서 선언되었다.
이때, 컴파일러는 x라는 식별자와 해당 변수가 선언된 메모리 위치 등의 정보를 심볼 테이블에 저장하게 된다.
즉, 심볼 테이블은 소스코드 를 분석하는 과정에서 생성되며, 변수, 함수 등의 식별자와 해당 식별자가 가리키는 메모리 위치 등의 정보를 저장하게 된다.
이 정보를 바탕으로 컴파일러가 실행파일을 생성하게 된다.
만약, 위 코드가 실행되었을 경우 심볼 테이블은 다음과 같이 생성될것이다.
식별자 이름 | 선언 위치 | 참조 위치 | 데이터 타입 |
main | CODE영역 | CODE 영역 | 함수 타입 |
x | 스택 영역 | 스택 영역 | int 타입 |
std::cout | CODE영역 | 스택 영역 | 객체 타입 |
728x90
'컴퓨터 용어 정리' 카테고리의 다른 글
가변인자(variable argument) (0) | 2023.04.20 |
---|---|
스택 프레임(Stack Frame) (0) | 2023.04.20 |
호출 스택 포인터(Call Stack Pointer) (0) | 2023.04.20 |
L-value, R-value (0) | 2023.04.19 |
댕글링 포인터(Dangling Pointer) (0) | 2023.04.19 |