什么是符号表中的数组名称表示?
它是一种数据结构,包括每个标识符的数据、标识符属性的字段。数据结构使我们能够快速找到每个标识符的数据,并快速保存或检索该记录的信息。
每次在源文本中遇到名称时都会搜索符号表。当找到新名称或关于现有名称的新数据时,符号表的内容会修改。因此,符号表应该有一个有效的结构来创建表中保存的数据,也可以将新条目插入到符号表中。
此表示用于表示符号表中的数组名称及其维度和其他属性。
数组名称可以用两种不同的方式在符号表中表示。
固定维数
可变数量(无限制)的尺寸。
固定维数
考虑一个 FORTRAN 的示例,其中数组的维数限制为 3,以在符号表中显示数组表示。
包含 A 的单词代表数组的维度。A 是 2 位长。
位 1 | 位 2 | 数组的描述 |
---|---|---|
0 | 0 | Not an Array |
0 | 1 | 1 Dimensional |
1 | 0 | 2 Dimensional |
1 | 1 | 3 Dimensional |
UL1、UL2、UL3 表示 Array 的每个维度的上限。数组的上限可以是形式参数。
对于这种可能性,我们为 B 提供了 3 位来定义三个可能的限制中的任何一个是否是形式参数。
0 | 1 | 0 |
这里第 i 位为 1,表示 ULi 是形式参数。
在上述情况下,第 2位为 1,因此UL2作为形式参数传递,符号表中的 UL2 现在将包含指向符号表 Record 的指针,其中包含 UL2 的值。
示例 1 - 考虑 FORTRAN 中的以下子例程。
子程序 S(阵列、A、B)
整数 A, B
实数阵列 (5, A, B)
在这个子程序中为数组构造符号表记录。
解决方案
∴ UL1 = 5
UL2 = 指向名称 A 的记录的指针。
UL3 = 指向名称 B 的记录的指针。
无维数限制的数组的链接数组表示
符号表将存储 n 个数组的多个维度。
它包含一个指向数组的指针,该数组包含第一维的下限和上限,并且该数组连接到另一个数组,该数组包含第二维的下限和上限,依此类推。
好处
便于随机访问符号表。
可访问性增加了。
易于维护信息。
坏处
指针间接和悬空引用的问题。
每个维度的单独数组的附加要求
以上是 什么是符号表中的数组名称表示? 的全部内容, 来源链接: utcz.com/z/363454.html