符号表

✍ dations ◷ 2025-12-07 20:35:29 #编译器软件,数据结构

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

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

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

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

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

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

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

相关

  • RTECS化学物质毒性数据库(RTECS,Registry of Toxic Effects of Chemical Substances)是一个记录化学物质毒性资料的数据库。它的资料均来源于公开的科学文献,不过并没有指出那些研究
  • 齿龈齿龈音(舌尖中音)是舌尖音的一种。发音时,舌尖接触牙龈。如现代标准汉语的 d、t、n、l。英语的/t/,/d/塞音是齿龈塞音,但法语、俄语等语言的舌尖塞音会是齿音。得到IPA确认的齿龈
  • 大宝蔡伯贯(?-1566年),四川省大足县人。明朝中期四川民变首领。蔡伯贯原为白莲教徒,在山西学艺。嘉靖四十四年(1565年)底,举旗反明,国号大唐,年号大宝。一月之间,连克合川、大足、铜梁、荣昌
  • 提康德罗加级提康德罗加级巡洋舰(英语:Ticonderoga-class cruiser)是美国海军所属第一种配备宙斯盾(AEGIS)系统的战舰,其特色为配备以AN/SPY-1舰用相控阵雷达为核心的整合式水面作战系统(宙斯盾
  • Adiamond LeeAdiamond Lee(1978年-),台湾导演,执导《孤鸟还乡》、《深蓝与月光》、《富锦街-这条街上的那些故事》、《着魔》、《窝在你的情欲里纵火》、《控八控控超展开音乐控》、《异始。
  • 占星术杀人事件《占星术杀人事件》(日语:占星術殺人事件,英语:The Tokyo Zodiac Murders),或译作占星术杀人魔法,是日本推理作家岛田庄司的推理小说,为其笔下的侦探御手洗洁系列第一册(但并非御手洗
  • 利普斯科姆 (阿拉巴马州)利普斯科姆(英语:Lipscomb)是美国阿拉巴马州下属的一座城市。面积约为1.17平方英里(约合 3.04平方公里)。根据2010年美国人口普查,该市有人口2,210人,人口密度为1,882.45/平方英里(
  • 尼古拉·米哈伊洛维奇·德鲁日宁尼古拉·米哈伊洛维奇·德鲁日宁(俄语:Николай Михайлович Дружинин,1886年1月13日-1986年8月8日),苏联马克思主义历史学家。苏联科学院院士。知名于对1
  • 惠爱堂惠爱堂曾是中华基督教会在广东省广州创办的一所重要教堂,位于广州市中山四路。'惠爱堂与万善堂为最早来华的西方差会伦敦会在广州所开辟的两座教堂,人们称之为“兄弟堂”。惠
  • 计算机集成制造计算机集成制造(英语:Computer-Integrated Manufacturing,CIM),又称计算机集成制造、电脑综合制造,是利用电脑、网络及通讯等资讯科技,整合与管理制造过程中的所有活动的系统。它并