-
인터프리터...33일지 2021. 1. 20. 10:47
심볼 테이블 작성
변수명이나 함수명을 관리하는 테이블을 심볼 테이블이라고 한다. 데이터 처리 시 심볼테이블을 참고해 값을 처리하게 된다.
var dt 심볼 테이블에 변수명, 할당 주소 등을 등록
dt = 10 심볼 테이블을 참조해 dt의 주소를 알아내 그곳에 10을 넣는다
※ 변수의 이름이 중복되거나 선언되지 않은 변수를 사용하는 오류 검출에도 심볼 테이블이 사용된다.
심볼 테이블에 저장할 값은 언어 사양이나 프로그램 구현 방식에 따라 달라지면 일반적으로 다음과 같은 정보를 저장한다.
- 변수 이름, 종류, 변수의 형, 배열의 차원수와 배열 길이, 기억 장소 정보, 메모리 배치 주소
- 함수 이름, 종류, 함수 반환 값의 형, 인수의 수, 함수 코드 시작 주소
또한, 이러한 정보는 구현하는 것이 인터프리터인지 컴파일러인지에 따라 다를 수 있다. 가령 컴파일러는 내부 코드로 변환할 수 있기에 심볼 테이블에 데이터를 넣지 않을 수도 있으며 인터프리터의 경우 눈에 보이는 영역의 크기를 심볼 테이블에 저장할 필요가 있을 수 있다.
참고문헌참고문헌