符号表

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

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

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

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

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

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

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

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

相关

  • 余梦伦余梦伦(1936年11月-),籍贯浙江余姚,中国航天飞行力学、火箭弹道设计专家,中国科学院院士。他在火箭弹道设计中取得多项重要成果,是中国弹道战略火箭和运载火箭弹道设计的开创者及学
  • 珍珠疹阴茎珍珠状丘疹(英语:Hirsuties papillaris genitalis),又称为珍珠状阴茎丘疹、阴茎珍珠样丘疹、珍珠样阴茎丘疹(Pearly penile papules)、阴茎多毛样乳头瘤、冠状沟或龟头丘疹,也
  • 国家代表色国家代表色(national colours),是指被认为能代表特定国家的颜色。大多数情况下,国家代表色都是来自于该国的国旗或国徽。然而也有例外,如澳大利亚的国家代表色就是来自于国花的颜
  • 九年国民义务教育台湾九年国民义务教育指1968年(57学年度)中华民国义务教育由六年延长为九年的教育措施。此措施的实施,提高台湾人民教育水准,亦奠定1970年代台湾经济起飞时中级技术人才的人力资
  • 朱姆沃尔特级朱姆沃尔特级驱逐舰(英语:Zumwalt class destroyer,又译为朱沃特级,或常以当初的开发计划名DD(X)称呼之),是服役中的美国海军驱逐舰,设计为多任务功能的濒海战斗舰与宙斯盾防御舰。
  • 酋妇蟹总科酉妇蟹总科(学名:Eriphioidea)是螃蟹的其中一个总科,这个总科的一个特色,是各个科的物种间均有特定的特征,例如:酋妇蟹总科旗下有六个科:
  • 费奥多·欧克洛普科夫费奥多尔·马特维耶维奇·奥赫洛普科夫(俄语:Фёдор Матвеевич Охлопков,转写:Fyodor Matveyevich Okhlopkov,1908年3月2日-1968年5月28日),雅库特人,二战时期
  • 陈国凯陈国凯(1938年4月-2014年5月16日),男,广东五华人,中华人民共和国作家。早年创作大量作品,其中小说《我应该怎么办》获1979年全国优秀短篇小说奖,长篇小说《代价》获1980年广东省首届
  • 劳拉·班南蒂劳拉·班南蒂(英语:Laura Benanti,1979年7月15日-),是一位美国女演员和歌手,她较著名作品为2006年《独领风潮》和2013年《真善美现场版》里扮演而为人所知。班南蒂2005年7月25日与
  • 联合谱半径联合谱半径(joint spectral radius)为一数学名词,是将传统上针对矩阵的谱半径表示法,扩展到矩阵集合的表示法。近年来此表示法已应用在许多工程领域中,也是目前研究的热门主题。