프로그래밍 공부
작성일
2023. 4. 19. 19:39
작성자
WDmil
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