符号表

✍ dations ◷ 2025-12-03 02:53:19 #编译器软件,数据结构

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

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

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

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

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

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

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

相关

  • 复兴式建筑希腊化建筑复兴是指18世纪晚期至19世纪初期的一场流行于北欧和美国的建筑风格变革运动,以模仿古希腊建筑风格为特点。它是希腊化运动(英语:Hellenism (neoclassicism))的产物之
  • 分子物理学分子物理学是研究分子的物理性质以及将原子结合为分子的化学键性质的学科,与化学学科紧密相连,同时和原子物理学密切相关。分子物理学中最重要的实验手段是光谱分析。分子谱和
  • 私家车轿车,某些地区称房车或私家车,美国英语称为Sedan,在英国则称为Saloon,通常指用于人员以及行李运输的汽车。轿车除乘客厢外,外观上可见明显长度的车头与车尾,因此可从外形上清晰分
  • 1058年重要事件及趋势重要人物
  • 国家影评人协会奖国家影评人协会(The National Society of Film Critics)又译美国影评人协会、美国国家影评人协会,是个影评组织,由约60名纽约地区的报纸、周刊、杂志影评人组成。 国家影评人协
  • span class=nowrapAgMnOsub4/sub/span高锰酸银是一种无机化合物,化学式为AgMnO4。它是一种紫色晶体,属于单斜晶系。它受热分解,遇水缓慢分解,加强热可能爆炸。它可由硝酸银与高锰酸钾反应制得:
  • 秦雯彬https://www.facebook.com/jancvp秦雯彬(1983年7月16日-),英文名为Jan,出生于马来西亚柔佛州古来再也,是一名马来西亚影视女演员。秦雯彬,出生于马来西亚。在2004年参加了马来西亚A
  • 宣笔宣笔是产于中国安徽省宣城市泾县的一种毛笔,是中国四大名笔之一。宣笔经常与著名的宣纸一起被提到。2008年,宣笔制作技艺被列入国家级非物质文化遗产名录。毛笔通常在安徽省宣
  • 根汁啤酒根汁啤酒,(英语:Root beer,或称根啤,台湾金车公司的麦根沙士取名由来就是根汁啤酒)是一种在北美洲流行的含糖汽水饮料,传统上,使用北美檫树的树根皮或墨西哥菝葜的藤蔓作为根汁啤酒
  • 许应逵许应逵(?-?),字伯渐,号鸿川。浙江嘉兴府嘉兴县人,民籍,明朝政治人物,官至山西按察使。嘉靖四十年(1561年)浙江乡试第六十六名。隆庆二年(1568年)戊辰科会试第三十四名,登第二甲第二十二名进