Nó phụ thuộc vào việc thực hiện.
Ví dụ, trình biên dịch C có thể duy trì bảng ký hiệu trong quá trình biên dịch. Đây là một cấu trúc dữ liệu phong phú cho phép đẩy và xuất hiện các phạm vi, vì mỗi dấu ngoặc mở câu lệnh ghép có {
khả năng giới thiệu một phạm vi mới cho các biến cục bộ mới. Ngoài việc xử lý phạm vi đến và đi, nó còn ghi lại các biến được khai báo và cho mỗi biến bao gồm tên và loại của chúng.
Cấu trúc dữ liệu của bảng ký hiệu này cũng hỗ trợ tìm kiếm thông tin của một biến theo tên, ví dụ như bằng mã định danh của nó và trình biên dịch thực hiện điều này khi liên kết thông tin biến đã khai báo với mã định danh thô mà nó nhìn thấy trong phân tích, vì vậy điều này khá sớm trong quá trình biên dịch.
Tại một số điểm, trình biên dịch gán vị trí cho các biến. Có lẽ các bài tập vị trí được ghi lại trong cùng một cấu trúc dữ liệu bảng biểu tượng. Trình biên dịch có thể thực hiện gán vị trí trực tiếp trong quá trình phân tích cú pháp, nhưng có khả năng có thể thực hiện công việc tốt hơn nếu nó chờ đợi không chỉ sau khi phân tích cú pháp, mà sau khi tối ưu hóa chung.
Tại một số điểm, đối với các biến cục bộ, trình biên dịch gán vị trí ngăn xếp hoặc thanh ghi CPU (có thể phức tạp hơn ở chỗ biến đó thực sự có thể có nhiều vị trí, chẳng hạn như vị trí ngăn xếp cho một số phần của mã được tạo và CPU đăng ký cho các phần khác).
Cuối cùng, trình biên dịch tạo mã thực tế: hướng dẫn máy tham chiếu trực tiếp các giá trị của biến bằng các thanh ghi CPU hoặc vị trí ngăn xếp được chỉ định, khi cần để thực thi mã được biên dịch. Mỗi dòng mã nguồn biên dịch thành một chuỗi các hướng dẫn mã máy riêng, do đó, các hướng dẫn được tạo sẽ mã hóa không chỉ các hoạt động (thêm, trừ) mà còn cả các vị trí của các biến được tham chiếu.
Mã đối tượng cuối cùng đi ra khỏi trình biên dịch không còn có tên và kiểu biến; chỉ có vị trí, vị trí ngăn xếp hoặc thanh ghi CPU. Hơn nữa, không có bảng vị trí, mà thay vào đó, các vị trí này được sử dụng bởi mỗi lệnh máy biết vị trí lưu trữ giá trị của biến. Không tìm kiếm các mã định danh trong mã thời gian chạy, mỗi bit mã được tạo chỉ đơn giản là biết thao tác để thực hiện và (các) vị trí sẽ sử dụng.
Khi gỡ lỗi được kích hoạt trong quá trình biên dịch, trình biên dịch sẽ xuất ra một dạng của bảng ký hiệu để, ví dụ, trình gỡ lỗi sẽ biết tên của các biến tại các vị trí ngăn xếp khác nhau.
Một số ngôn ngữ khác có nhu cầu tra cứu định danh động trong thời gian chạy, do đó cũng có thể cung cấp một số dạng bảng biểu tượng để hỗ trợ các nhu cầu đó.
Thông dịch viên có một loạt các tùy chọn. Họ có thể duy trì cấu trúc dữ liệu giống như bảng biểu tượng để sử dụng trong quá trình thực thi (ngoài việc sử dụng trong quá trình phân tích cú pháp), thay vì chỉ định / theo dõi vị trí ngăn xếp, chỉ cần lưu trữ giá trị cho biến, được liên kết với mục nhập của biến trong bảng ký hiệu cấu trúc dữ liệu.
Một bảng biểu tượng có thể được lưu trữ trong heap chứ không phải trên stack (mặc dù sử dụng stack cho phạm vi và biến là điều chắc chắn, và hơn nữa nó có thể bắt chước một stack trong heap để có được lợi thế thân thiện với bộ đệm của việc đóng gói các giá trị của biến gần nhau khác), do đó, một trình thông dịch có thể đang sử dụng bộ nhớ heap để lưu trữ các giá trị của biến trong khi trình biên dịch sử dụng các vị trí ngăn xếp. Nói chung, trình thông dịch cũng không có quyền tự do sử dụng các thanh ghi CPU làm bộ lưu trữ cho các giá trị của biến vì các thanh ghi CPU đang bận chạy các dòng mã của chính trình thông dịch ...