符號表 (編譯原理)

2021-09-12 11:24:29 字數 545 閱讀 2478

符號表是一種用於語言翻譯器(例如編譯器和直譯器)中的資料結構。在符號表中,程式源**中的每個識別符號都和它的宣告或使用資訊繫結在一起,比如其資料型別、作用域以及記憶體位址。

符號表在編譯程式工作的過程中需要不斷收集、記錄和使用源程式中一些語法符號的型別和特徵等相關資訊。這些資訊一般以**形式儲存於系統中。如常數表、變數名錶、陣列名表、過程名錶、標號表等等,統稱為符號表。對於符號表組織、構造和管理方法的好壞會直接影響編譯系統的執行效率。

符號表的屬性:1.符號名 2.符號的型別 3.符號的儲存類別  4.符號的作用域及可視性 5.符號變數的儲存分配資訊 

6.符號的其它屬性 (1)陣列內情向量 (2)記錄結構型的成員資訊(3) 函式及過程的形參 

編譯程式按名字的不同種屬分別使用許多符號表,如常熟表。變數名錶 過程名錶 函式入口名錶

符號表的關鍵字域(段)就是符號名稱等長關鍵字域(段)符號表

不等長關鍵字段符號表---採用關鍵字詞的索引結構。

關鍵字在符號表的查詢中相當重要 hash函式構造方法就是以取關鍵字的值不同區分

如 直接定址伐 數字分析法 摺疊法

編譯原理之符號表

二 符號表的組織方式 三 符號表的整理 查詢 四 名字的作用範圍 五 符號表的內容 int a float b 5 則在符號表中收集到關於符號a的屬性是乙個整型變數,關於符號b的屬性是具有5個浮點型元素的一維陣列。同乙個識別符號可能在程式的不同地方出現,而有關該符號的屬性是在這些不同情況下收集的。特...

編譯原理語義分析 編譯原理 語義分析和符號表

本文使用 zhihu on vscode 創作並發布經過詞法分析 語法分析之後,源程式形式上和結構上的正確性基本得到了保證。然而,僅有形式上的正確性,並不能保證源程式就是完全正確的,還要檢查源程式的含義是否正確。諸如符號的使用是否得當,表示式的型別是否相容等,完成這些功能的編譯階段稱為語義分析。語義...

編譯原理結構框架8符號表管理

第 8章 符號表管理 重點 符號表的作用 符號表的組織結構 符號表與作用域。難點 符號表的組織結構及其效能評價。8.1符號表的作用 n符號表是以 名字為關鍵字 來記錄其資訊的資料結構,其上支援的兩個最基本操作應該是 新增表項和 查詢表項,這兩個操作必須是高效的 8.2符號表中存放的資訊 n每乙個符號...