符號表中陣列名稱的表示是什麼?


它是一種資料結構,包含每個識別符號的資料,以及識別符號屬性的欄位。這種資料結構使我們能夠快速找到每個識別符號的資料,並快速儲存或檢索該記錄的資訊。

每次在原始碼文字中遇到名稱時,都會搜尋符號表。當找到新的名稱或有關現有名稱的新資料時,符號表的內容會發生修改。因此,符號表應該具有有效的結構,以便建立表中儲存的資料,以及將新條目插入到符號表中。

此表示法用於在符號表中表示陣列名稱及其維度和其他屬性。

陣列名稱可以在符號表中以兩種不同的方式表示。

  • 固定數量的維度
  • 可變數量(無限制)的維度。

固定數量的維度

以 FORTRAN 為例,其中陣列的維度數量限制為 3,圖中顯示了符號表中陣列的表示。

  • 包含 A 的字表示陣列的維度。A 長 2 位。
位 1位 2陣列描述
00不是陣列
01一維
10二維
11三維
  • UL1、UL2、UL3 表示陣列每個維度的上限。陣列的上限可以是形式引數。

對於這種可能性,我們為 B 提供了 3 位來定義三個可能的限制中的任何一個是否是形式引數。

010

這裡第 i 位為 1 表示 ULi 是形式引數。

在上述情況下,第 2 位為 1,因此 UL2 作為形式引數傳遞,並且符號表中的 UL2 現在將包含指向包含 UL2 值的符號表記錄的指標。

示例 1 - 考慮 FORTRAN 中的以下子程式。

SUBROUTINE S (ARRAY, A, B)

INTEGER A, B

REAL ARRAY (5, A, B)

構造此子程式中陣列的符號表記錄。

解決方案

∴ UL1 = 5

UL2 = 指向名稱 A 的記錄的指標。

UL3 = 指向名稱 B 的記錄的指標。

陣列維度無限制的連結陣列表示

  • 符號表將儲存 n 陣列的多個維度。
  • 它包含一個指向陣列的指標,該陣列包含第一維度的上下限,並且此陣列連線到另一個數組,該陣列包含第二維度的上下限,依此類推。

優點

  • 方便隨機訪問符號表。
  • 提高了可訪問性。
  • 易於維護資訊。


缺點

  • 指標間接和懸空引用問題。
  • 每個維度都需要單獨的陣列。


更新時間: 2021 年 11 月 8 日

454 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.