符号表

✍ dations ◷ 2025-07-02 22:02:53 #编译器软件,数据结构

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

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

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

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

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

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

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

相关

  • 水疱病毒属水稻病毒属(Oryzavirus),又称作水稻皱缩矮化病毒,是呼肠孤病毒科(Reoviridae)中的一属,其代表种为:*水稻破(烂;褴)褛矮小(化)病毒(Rice ragged stunt virus),为一类植物病毒。
  • 白宫白宫(英语:White House,也称白屋)是美国总统官邸与主要办公的地方,位于美国华盛顿哥伦比亚特区西北区,宾夕法尼亚大道1600号。自1800年美国第二任总统约翰·亚当斯入住以来,白宫就
  • 韩国人本表列出韩国籍和出生于韩国的非韩国籍诺贝尔奖得主。
  • 脏器内脏,一般是统称人和动物胸腔和腹腔内部的器官。具体主要包括心脏、肝脏、脾脏、肺、肾脏、胃、胆、肠、子宫、卵巢等。各内脏可组成不同系统,包括循环系统、神经系统及呼吸系
  • 格洛丽亚·阿罗约玛丽亚·格洛丽亚·马卡帕加尔-阿罗约(他加禄语:Maria Gloria Macapagal-Arroyo;1947年4月5日-),是菲律宾第14任总统及第25任众议院议长。不仅是菲律宾第二位女总统,也是前总统奥斯
  • 精神航空精神航空(英语:Spirit Airlines)是一家美国的低成本航空公司,总部位于佛罗里达州米拉马尔,成立于1980年,主要经营加勒比海地区、拉丁美洲等定期国际航线。截止到2017年,精神航空是S
  • 协调制度协调制度(Harmonized System,简称HS),即商品名称及编码的协调制度,是世界海关组织编制的关于国际贸易商品分类的标准目录,用以统一各国海关对商品分类的界定标准。通过按照协调制
  • 西班牙人口人口:40,491,051(2008年统计)年龄结构增长率: 0.096% (2008年统计)出生率:9.87/1,000人 (2008年统计)死亡率: 9.9/1,000人 (2008年统计)净迁移率: 0.99/1,000人(2008年统计)性别比例婴儿死
  • 胡戈·哈泽胡戈·哈泽(德语:Hugo Haase 1863年9月29日-1919年11月7日)德国政治家、法学家、和平主义者。1911年至1916年间,胡戈·哈泽曾担任过德国社会民主党的主席。1917年至1919年间,他担
  • 叶理叶理(Foliation)是在岩石中的纤维状平面组织,常作为变质岩鉴定特征的依据。岩石受到应力作用后,内部的矿物会有部分压溶的现象。当这些矿物再结晶,则矿物会沿着垂直主轴应力作用