1.4-1.5
1.4
1)记号(token)
一个符号,一个字符或字符串或一个及多个数字都可以成为一个token。扫描程序把源代码读入并以token的形式记录下来,以便后面的程序进行工作
2)语法树(syntax tree)
是一个以指针链接起来的树结构,每个节点都是一个记录类型,该记录类型存储语法分析程序及语义分析程序生成的信息。
3)符号表(symbol table)
与标识符及类型有关。诸如函数,变量,常量或数据类型。因为从扫描程序到优化程序都需要对它作出修改,因此需要很快的插入、删除、访问速度,杂凑表是唯一满足要求的数据结构。
4)常数表(literal table)
存储常数,与符号表类似,它需要很快的访问和插入速度,但不需要删除,因为每个程序所产生的常数在该表中仅出现一次,不必修改。
5)中间代码(intemediate code)
根据中间代码的类型和优化的类型,它的数据结构选择有很多,诸如文本串的数组、临时文本文件或是结构的连接列表。对于复杂的优化程序,应该选择允许简单重组的结构。
6)临时文件(temporary file)
用于编译器存储源代码及中间生成的信息等。也用于代码反填:比如if...else...语句中,在未获知else的位置之前就要跳到else的位置去,需要临时文件(不懂)。