符号表

✍ dations ◷ 2025-11-03 19:00:18 #编译器软件,数据结构

在计算机科学中,符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。

散列表是用来实现符号表的一种常用技术。编译器可能会使用一个很大的符号表来包含所有的符号,或是针对不同的作用域使用层次结构的多个独立的符号表。

目标文件中通常会有一个包含了所有外部可见标识符的符号表。在链接不同的目标文件时,链接器会使用这些文件中的符号表来解析所有未解析的符号引用。

符号表可能只存在于翻译阶段,也可能被嵌入到该阶段的输出文件中,以供后续阶段使用。比如,它可用于交互式的调试器中,也可以在程序执行过程中或结束后提供格式化的诊断报告。

在逆向工程中,许多任务具会通过符号表来检查全局变量和已知函数的地址。如果可执行文件的符号表被strip这样的工具去除掉了,则逆向工程会更加困难。

在进行动态内存分配和变量访问时,编译器需要完成许多任务作,其中扩展的栈模型就需要用到符号表。

下图是一个小程序的符号表。该表是用GNU Binutils中的nm工具生成的。其中有一个数据类型符号(由类型 "D" 表明)和许多函数(自己定义的以及标准库中的)。第一列是每个符号在内存中的位置,第二列是"符号类型",而第三列则是符号名称。通过传递适当的参数,可以按照地址顺序生成该符号表。

相关

  • 科学期刊科学期刊(scientific journal)是一种发表经过同行评审的科学研究相关论文的周期性刊物。科学期刊是科学研究者获取了解同行工作的重要渠道。著名的科学期刊往往具有重要的影响
  • ACys1G96, 1R4C, 1TIJ, 3GAX, 3NX0, 3PS8, 3QRD, 3S67, 3SVA· protease binding · endopeptidase inhibitor activity · cysteine-type endopeptidase inhibitor activity
  • 沸石沸石是一种含有水架状结构的铝硅酸盐矿物,最早发现于1756年。瑞典的矿物学家克朗斯提(Cronstedt)发现有一类天然铝硅酸盐矿石在灼烧时会产生沸腾现象,因此命名为沸石(瑞典文:zeoli
  • 威廉·贝特森威廉·贝特森(英语:William Bateson, 1861年8月8日-1926年2月8日),英国遗传学家,剑桥大学圣约翰学院研究人员。他是第一个使用遗传学一词来描述遗传和变异规律的人,并在1900年雨果
  • MICMic或MIC可以指:
  • 古新世-始新世极热事件古新世-始新世极热事件(英语:Paleocene–Eocene Thermal Maximum;简称:PETM),或称为“第一次始新世极热事件”(英语:Eocene Thermal Maximum 1;简称:ETM1),过去也被称为“早始新世极热事
  • 衣服滑落衣服滑落,俗称“露点”,是一个界限比较模糊的委婉语,泛指人体的隐私部位(通常为乳头或下体)因衣服脱落而意外的走光。衣服滑落通常是在本人不知情的情况下,但也有少数是故意为之以
  • 三氯化钌三氯化钌,分子式为RuCl3。一般所指的“三氯化钌”多指三氯化钌的水合物RuCl3·H2O。无水三氯化钌和它的水合物均为棕黑色固体。三氯化钌的水合物通常是三水合物。这是一种钌
  • 张晶张晶(1973年10月18日-),中国前短道速滑运动员,退役后从事短道速滑教练工作。张晶出生于中国吉林省,曾入选中国短道速滑国家队,参加过1991年短道速滑亚锦赛以及1994年利勒哈默尔冬奥
  • 威利·佩里小威利·佩里(Willie Perry, Jr.)是美国芝加哥著名DJMr. C. The Slide Man或DJ Casper的真名。他的名曲"Cha Cha Slide"曾夺得英国细碟榜的冠军。