符号表

✍ dations ◷ 2025-12-02 20:39:38 #编译器软件,数据结构

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

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

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

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

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

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

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

相关

  • 核型核型(英语:Karyotype)是一种生物或细胞的染色体组成。用于核型分析。当细胞处于有丝分裂中期时,染色体排列在细胞赤道板,是观察它们的最好时机。对这些细胞染色,通过显微镜拍照获
  • 个人电脑个人电脑(英语:Personal Computer,缩写:PC;普遍称为电脑)是在大小、性能以及价位等多个方面适合于个人使用,并由最终用户直接操控的计算机的统称。它与批处理计算机或分时系统等一
  • 凤山郡凤山郡为台湾日治时期的行政区划,1920年设立,1945年改制,该郡隶属高雄州。凤山郡役所设于凤山街,所址为今高雄市刑事警察大队与保安警察大队(原为高雄县警察局所在处)。凤山郡管辖
  • 变易生死变异生死,佛教术语,指大乘佛菩提的初地菩萨以上、或解脱道的二乘修行人已证解脱极果阿罗汉果者而回入大乘者,皆有能力入有余涅槃,而其解脱证境已不受三界之轮回,故属不受分段生死
  • 刘德伟刘德伟(1958年11月-),山东荣成人,中国人民解放军空军中将,第十三届全国人民代表大会代表。曾任中国人民解放军空军航空大学政委、中国人民解放军空军政治部副主任。2015年7月,任南
  • 长滨文化长滨文化是到现在(2020年3月15日)止,台湾所发现最古老的文化(经碳十四鉴定约在两万至两万五千年),出现在台湾尚与亚洲大陆相连时,是一个以渔猎和采集为生的队群社会,考古学者根据遗
  • 亚硝酰氟亚硝酰氟(NOF)是一种共价型的亚硝酰化合物。NOF是一种十分活泼的氟化剂,能将多种金属转化为它们的氟化物,并释放出一氧化氮:NOF也能与路易斯酸反应产生类似于盐的加合物,例如NOBF4
  • 孙襘孙襘,直隶合肥人,明朝后期政治人物。孙襘早年担任工部左侍郎,后改任兵部左侍郎兼右佥都御史,为首任蓟辽总督,节制河间、保定、辽东兵马。两月后,由何栋接替,转而担任通政司事。
  • 邓双镇邓双镇,是中华人民共和国四川省成都市新津区下辖的一个乡镇级行政单位。2019年12月,撤销邓双镇,将其所属行政区域划归永商镇管辖。邓双镇下辖以下地区:邓公社区、金龙村、罗山村
  • 清算(法律程序)清算(法律程序)(英语:Liquidation)是一种法律程序,公司的生产运作停止,所有资产(包括生财工具的机械、工厂、办公室、物业以及所持有的专利、债权和有价证券等),在短期内出售,变回现金,