符号表

✍ dations ◷ 2025-05-19 20:37:43 #编译器软件,数据结构

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

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

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

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

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

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

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

相关

  • 拉br /伸br /纪拉伸纪(Tonian,符号NP1)又名青白口纪,是地质时代中的一个纪,开始于同位素年龄1000±0百万年(Ma),结束于720±0Ma。拉伸纪期间首次出现大型具刺疑源类,并形成臭氧层。拉伸纪属于前寒武
  • 朝觐朝觐可以指:
  • 阿道夫·比奥伊·卡萨雷斯阿道夫·比奥伊·卡萨雷斯(西班牙语:Adolfo Bioy Casares,1914年9月15日-1999年3月8日),阿根廷小说家、记者、翻译家,其作品构思缜密,注重对幻想世界的探索。影响最大的作品是《莫雷
  • 烟台-上海204国道(或“国道204线”、“G204线”)是在中国的一条国道,起点为山东烟台,终点为上海,全程1031千米。这条国道经过山东、江苏和上海3个省级行政区。最老的204国道江苏阜宁至南通
  • 康斯坦丁·奥尔泰亚努康斯坦丁·奥尔泰亚努(罗马尼亚语:Constantin Olteanu;1928年7月5日-2018年5月1日),罗马尼亚人民军上将,罗马尼亚共产党中央政治执行委员会委员、中央书记处书记兼中央对外联络和国
  • 煎蕊煎蕊(闽南语tsian-luí;印尼语:es cendol;/ˈtʃɛndɒl/),又译煎律闽南语tsian-lu't、晶露(印尼语的音是卷舌音)、珍多冰,是印度尼西亚爪哇地区的传统冰冻甜点,也流行于马来西亚、新
  • 尾崎行雄尾崎行雄(1858年12月24日-1954年10月6日),号咢堂,日本政治家,有“宪政之神”、“议会政治之父”之称。他自1890年起担任众议院议员,至1953年止,历时共63年。1898年曾短暂担任文部大
  • 郑瑛棨郑瑛棨(?-1878年),奉天铁岭(今属辽宁)人,清朝政治人物。道光初年,担任内务府候补笔帖式。道光九年,任笔帖式。道光二十二年,任堂委署主事。道光二十六年,署河南卫辉府知府;次年,署河南南阳
  • 承政院日记《承政院日记》是朝鲜王朝承政院的日记,也是朝鲜王朝最大的机密记录。承政院主管国家一切机密事宜,因此《承政院日记》中记载的大量内幕为各史书所不载,具有很高的史料价值。现
  • 薛采《岁星集》、《薛堆山先生前集钞》薛寀(1598年-1662年),字谐孟,号岁星,南直隶常州府武进县人。方山先生薛应旗之玄孙,祖父薛敷教,万历十七年进士。生于万历二十六年(1598)十一月十七日