Chinaunix首页 | 论坛 | 博客
  • 博客访问: 804108
  • 博文数量: 104
  • 博客积分: 915
  • 博客等级: 下士
  • 技术积分: 2171
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-24 21:34
文章分类

全部博文(104)

文章存档

2018年(4)

2015年(14)

2014年(9)

2013年(56)

2012年(21)

分类: LINUX

2012-08-29 08:47:50

*符号表
   1、编译过程中编译程序不断汇集和反复查证出现在源程序中各种名字的属性和特征信息等有关信息。
      这些信息通常记录在一张或几张符号表中。
   2、符号表的每一项有两部分:
      一部分是名字(标识符);一部分是名字属性(标识符的有关信息)。
   3、编译过程中,每当扫描器(词法分析器)识别出一个名字后,编译程序就查阅符号表,看其是否在符号表中。
      如果它是一个新名字就将它填进表里。
      它的有关信息将在词法分析和语法-语义分析过程中陆续填入表中。
   4、符号表是边填边用。

*在整个编译期间,对于符号表的操作大致可归纳为五类:
   1、对给定名字,查询此名是否已在表中;
   2、往表中填入一个新名字;
   3、对给定名字,访问它的某些信息;
   4、对给定名字,往表中填写或更新它的某些信息;
   5、删除一个或一组无用的项。

*编译器开始时,符号表或者是空的,或者预先存放了一些保留字和标准函数名的有关信息。
*符号表的三种构造法和处理法:线性查找、二叉树、杂凑技术。

阅读(14253) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~