关于编译器设计中的符号表与中间代码生成的研究
发布时间
阅读量:
阅读量
编译器设计-符号表-中间代码生成
Compiler Design - Symbol Table
Compiler - Intermediate Code Generation
一.Compiler Design - Symbol Table
符号表是编译器为了记录变量名、函数名、对象、类、接口等各类实体的出现信息而建立和维护的关键数据结构。该结构不仅在编译器的分析阶段发挥作用,同时也适用于综合阶段。
根据所采用的编程语言不同,符号表可实现以下功能:
将所有实体名称以结构化的方式统一存储于一个位置。
验证变量是否已经被声明。
进行类型检查时,确认源代码中的赋值与表达式在语义层面是否合理。
识别名称的作用域(即作用域解析)。
符号表本质上可以表现为线性表或哈希表的形式。对于每个名称,它会维护如下格式的信息条目:
<symbol name, type, attribute>
例如,若需要存储如下变量声明的信息:
static int interest;
则应记录如下的条目:
<interest, int, static>
attribute字段包含与该名称相关的附加信息。
实施Implementation
当编译器处理的数据量较小时,可以将符号表设计为无序列表,这种实现方式较为简单且易于编码,但仅适用于规模较小的情况。符号表的实现方式包括以下几种:
全部评论 (0)
还没有任何评论哟~
