符号表

✍ dations ◷ 2025-11-29 11:35:23 #编译器软件,数据结构

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

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

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

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

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

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

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

相关

  • 酵母子囊菌门 Ascomycota p. p.担子菌门 Basidiomycota p. p.酵母(拼音:中国大陆:jiàomǔ、台湾:xiàomǔ;注音:中国大陆:ㄐㄧㄠˋ ㄇㄨˇ、台湾:ㄒㄧㄠˋ ㄇㄨˇ;英文:Yeast)是真核生物域
  • 保加利亚第一帝国奥德里西亚 前460年–46年罗马时期 46年–681年旧大保加利亚 632年–668年第一帝国 681年–1018年拜占庭保加利亚 1018年–1185年第二帝国 1185年–1396年奥斯曼帝国统治 13
  • 透纳氏综合症特纳氏综合征(Turner syndrome,简称TS)也被称作Ullrich-Turner氏综合征(Ullrich-Turner syndronme)、性腺发育不良(Gonodal dysgenesis)以及45,X,是雌性个体因X染色体部分或完全缺失
  • 日本国家女子足球队中华台北 1 – 0 日本 (日本 21 – 0 关岛 (美国 9 – 0 日本 (日本国家女子足球队是日本的女子足球代表队,新进世界杯卫冕冠军,亚洲最具实力的国家女子足球队之一,由日
  • 虎皮鹦鹉Psittacus undulatus Shaw, 1805虎皮鹦鹉(学名:Melopsittacus undulatus)又名背黄青鹦鹉、脊黄青鹦鹉或脊黄青鹦哥,俗称石燕、娇凤、彩凤、鹦哥、阿苏儿、五色小鹦鹉或长尾恋爱
  • 信息管理系北京大学信息管理系,前身为北京大学图书馆系,1947年建立,第一任系主任为王重民先生。1987年改名为图书馆情报学系,2001年改名为信息管理系。信息管理系本科设有信息管理与信息系
  • 八月四日体制八月四日体制()是希腊王国首相爱奥尼斯·美塔萨克斯的独裁政权,也是希腊王国的历史时代之一。由美塔萨克斯在1936年8月4日发动政变开始,因为纳粹德国入侵希腊而崩溃。
  • 曾毅 (病毒学家)曾毅(1929年3月8日-),广东揭西人,中国病毒学家。1952年毕业于上海第一医学院医疗系。1993年当选为俄罗斯医学科学院外籍院士。中国预防医学科学院院长、研究员。1993年被选为中国
  • 硝酸镁硝酸镁是镁元素的硝酸盐,具有吸湿性,在潮湿的空气中能快速与水反应形成六水合硝酸镁。硝酸镁易溶于水或乙醇。水溶液呈中性。硝酸镁的主要用途是浓缩硝酸,并常被用于印刷业及化
  • 瓶花木属瓶花木属(学名:)是茜草科下的一个属,为灌木至小乔木植物。该属仅有瓶花木()一种,分布于印度至加罗林群岛。