심볼 테이블이란 무엇입니까?
기호 테이블은 정보를 중앙 집중화하고 프로그램 크기를 줄이는 방법으로 컴퓨터 시스템에서 사용됩니다. 이 테이블은 비밀 코드의 열쇠처럼 작동합니다. 기호 또는 문자열은 일반적으로 훨씬 더 큰 다른 정보 옆에 배치됩니다. 프로그램이 기호 테이블과 연관된 기호를 읽을 때 프로그램은 테이블을 참조하고 기호 대신 정보를 가져옵니다. 이를 통해 많은 정보 또는 일반적으로 반복되는 구조가 하나의 항목 만 가질 수 있으므로 프로그램의 전체 크기가 줄어 듭니다.
심볼 테이블의 개념은 매우 간단합니다. 단일 테이블에는 각각 고유 한 항목과 고유 한 관련 기호가있는 프로그램에서 사용하는 광범위한 정보가 포함됩니다. 이 정보는 코드 문자열, 디버깅 정보, 메모리 위치, 문자 그대로 프로그램이 작동하기 위해 사용할 수있는 모든 것이 될 수 있습니다. 코드는 프로그램 내에 해당 정보를 포함시키지 않고 고유 한 기호를 사용하여 테이블을 참조합니다.
코드를 프로그램으로 컴파일하고 여러 프로그램에서 사용하는 라이브러리를 링크 할 때 기호 테이블이 공통되는 두 가지 위치가 있습니다. 프로그램에서 사용될 때 실제 테이블은 일반적으로 프로그램에 흡수되거나 컴파일시에 공유 라이브러리로 만들어집니다. 목록을 변경하면 프로그램에 심각한 결과를 초래할 수 있으므로 목록을 별도로 남겨 두는 것은 일반적이지 않습니다. 이 프로세스에서 테이블을 변환하더라도 여전히 동일한 기본 사항이며 다른 코드와 함께 포함됩니다.
연결 라이브러리에서 심볼 테이블을 사용하는 경우 심볼 테이블이 작동하는 방식이 크게 확장됩니다. 연결 라이브러리는 프로그램에서 언제든지 사용할 수있는 정보 집합입니다. 이러한 라이브러리는 종종 같은 회사에서 만든 운영 체제 또는 관련 프로그램 제품군에서 공유됩니다.
이 라이브러리 각각은 특정 주제에 대한 정보로 채워져 있습니다. 하나의 라이브러리에는 운영 체제 사용자 인터페이스의 창 경계를 그리기위한 광범위한 프로그래밍이 포함될 수 있으며, 다른 라이브러리에는 특정 프로그램 그룹이 메모리에 정보를 저장하는 위치에 대한 정보가 포함될 수 있습니다. 연결 라이브러리에는 이러한 임의의 정보가 포함될 수 있으므로 기호 테이블이 종종 포함됩니다.
심볼 테이블을 링커에 통합하면 프로그램 시리즈에서 심볼을 공유 할 수 있습니다. 이를 통해 여러 프로그램이 언제든지 동일한 데이터에 액세스 할 수 있습니다. 많은 수의 프로그램이 라이브러리의 기호 테이블을 포함하여 동일한 정보를 필요로하는 경우 전체 프로그램 그룹의 크기가 크게 줄어 듭니다.