符号表

✍ dations ◷ 2025-12-11 18:52:28 #编译器软件,数据结构

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

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

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

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

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

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

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

相关

  • 4f14 5d4 6s22, 8, 18, 32, 12, 2蒸气压第一:770 kJ·mol−1 第二:1700 kJ·mol主条目:钨的同位素钨(IUPAC名:tungsten ),化学符号:W(德语:Wolfram ),是化学元素,原子序数是74,是非常硬
  • 哈勃定律在物理宇宙学里,哈勃–勒梅特定律(英语:Hubble-Lemaître law)指遥远星系的退行速度与它们和地球的距离成正比。这条定律原先称为哈勃定律(英语:Hubble's law),以证实者埃德温·哈勃
  • 渐江弘仁(1610年-1664年),俗姓江,名韬,字六奇;又名舫,字鸥盟,明亡后于福建武夷山出家为僧,法名弘仁,字无智,号渐江、梅花古衲。安徽歙县人,明末清初画家,与石涛、髡残、八大山人并称为清初“四
  • 非活性气体惰性气体(inert gas)也称为非活性气体、无活性气体或不反应气体,是在一定条件下不会发生化学反应的气体。元素周期表上的18族元素一般条件和许多物质不会有化学反应,以往惰性气
  • 儿子的房间《儿子的房间》(La stanza del figlio)是意大利导演南尼·莫瑞提自编、自导、自演的电影作品,意大利原文的意思是“儿子的房间”。该片获得2001年戛纳电影节金棕榈奖;英国电影杂
  • 东师古村东师古村是中华人民共和国山东省临沂市沂南县双堠镇的一个村庄。位于镇驻地西北部 五公里处,国道205和京沪高速公路之间。
  • 安仁县第一中学坐标:26°42′28″N 113°16′17″E / 26.707682°N 113.27136°E / 26.707682; 113.27136安仁县第一中学(英语:No.1 Meddle School Anren County)位于湖南省郴州市安仁县城关镇
  • 柳泽吉保柳泽吉保,是江户时代前期的幕府侧用人、谱代大名。受第五代将军德川纲吉宠幸,在元禄年间作为大老主导幕政。万治元年(1658年)12月18日,作为上野国馆林藩士・柳泽安忠(日语:柳沢安忠
  • 天水一中甘肃省天水市第一中学,简称天水一中,位于甘肃省天水市秦州区泰山东路8号,是甘肃省首批省级示范性普通高中。始于1876年的“陇南书院”,曾用“甘肃省第三中学”、“甘肃省立天水
  • 大井川铁道大井川铁道股份有限公司(日语:大井川鐵道/おおいがわてつどう  */?),简称大井川铁道或大铁,位于日本静冈县。大井川铁道拥有两条铁路线,一条是大井川本线,另一条是井川线。其中大