符号表

✍ dations ◷ 2025-09-10 07:48:12 #编译器软件,数据结构

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

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

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

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

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

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

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

相关

  • 豪威尔-乔利体豪威尔-乔利体(Howell–Jolly bodies)也称为豪厄尔-乔利体、豪-若二氏体、豪威耳氏体,是一种组织病理学的现象,为含有残余的细胞核(去氧核糖核酸 ,DNA)碎片的红血球。 在骨髓中,晚期
  • 宁静海静海(拉丁语:Mare Tranquillitatis,意为“安宁之海”或“安静之海”)是一座坐落在月球静海撞击盆地内的月海。该月海的地层由形成于晚雨海纪青年期中间的玄武岩所构成。四周的山
  • 肠癌肠癌是肠道的恶性肿瘤,它可能指:
  • 巴氏杆菌P. aerogenes P. anatis P. avium P. bettyae P. caballi P. canis P. dagmatis P. gallicida P. gallinarum P. granulomatis P. langaaensis P. lymphangitidis P. mairii
  • H1结构 / ECOD组蛋白H1(英语:Histone H1)是组成真核细胞染色质的五种主要的组蛋白家族中的一种。尽管这种组蛋白是高度保守的,但在各物种间其序列变异性仍是所有组蛋白中最大的。M
  • 食品工业部中华人民共和国食品工业部是中华人民共和国国务院曾经存在的部门。前身为1949年设立的中央人民政府食品工业部,部长杨立三。1950年12月,中央人民政府食品工业部撤销。1956年,经
  • 我的马拉松《我的马拉松》(韩语:말아톤,英语:)是一部2005年上映的韩国电影,根据一名有自闭症的马拉松选手裴炯振的故事改编。该片为第42届大钟奖最佳影片,曹承佑也凭借此拿下大钟奖及百想艺术
  • 拉古拉姆·拉詹拉古拉姆·古米塔·拉詹(泰米尔语:ரகுராம் கோவிந்த ராஜன்,英语:Raghuram Govinda Rajan,1963年2月3日-)是一位印度经济学家,于2013年接任第23任印度储备银行总裁
  • 闵奎镐闵奎镐(1836年8月20日-1878年10月15日),字景园,朝鲜王朝末期外戚权臣。他是明成皇后的堂哥。1859年(哲宗10年)应试得增广文科丙科及第。高宗即位后兴宣大院君实施锁国政策,引起闵妃
  • 纯粹数学一般而言,纯粹数学是一门专门研究数学本身,不以应用为目的的学问(至少可见范围内无法应用),相对于应用数学而言。纯粹数学以其严格、抽象和美丽著称。自18世纪以来,纯粹数学成为数