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

2021-06-27 10:03:02 字數 657 閱讀 9327

8章 符號表管理

重點:符號表的作用

,符號表的組織結構

,符號表與作用域。

難點:符號表的組織結構及其效能評價。

8.1符號表的作用

n符號表是以

名字為關鍵字

來記錄其資訊的資料結構,其上支援的兩個最基本操作應該是

新增表項和

查詢表項,這兩個操作必須是高效的

8.2符號表中存放的資訊

n每乙個符號表表項中需要存放的基本資訊就是符號的名字及其屬性。

名字字段長度固定:空間浪費

名字字段長度可變:

符號表上的操作複雜而低效 n

符號所表達的含義不同,符號表中需要存放的屬性也就不同 n

陣列名字需要存放的屬性資訊應該包括陣列的維數、各維的維長等 n

函式(或過程)

的名字應該存放其引數個數、各引數的型別、返回值的型別等

8.3符號表的組織結構 n

引入雜湊表不僅可以提高

lookup

操作的效率,同時也可以提高

insert

操作的效率,所以在許多實際編譯器的符號表實現中均採用了雜湊技術

8.4符號表與作用域

變數的作用域滿足最近巢狀原則

8.5本章小結

符號表 (編譯原理)

符號表是一種用於語言翻譯器 例如編譯器和直譯器 中的資料結構。在符號表中,程式源 中的每個識別符號都和它的宣告或使用資訊繫結在一起,比如其資料型別 作用域以及記憶體位址。符號表在編譯程式工作的過程中需要不斷收集 記錄和使用源程式中一些語法符號的型別和特徵等相關資訊。這些資訊一般以 形式儲存於系統中。...

編譯原理之符號表

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

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

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