( *, y,
( +, x,
20
10.0, t1 )
t1, A )
目标代码生成
•任务:把中间代码变换成特定机器上 的绝对指令代码或可重定位的指令代 码或汇编指令代码。
•特点:与硬件系统结构和指令含义有 关,涉及到硬件系统功能部件的运用、 机器指令的选择、各种数据类型变量 的存储空间分配以及寄存器和后缓寄 存器的调度等。
21
A := x + y * 10 ( *, y, 10.0, t1 )
( +, x, MOVF
MULF MOVF
t1, y,
10.0, x,
A ) R2
R2 R1
ADDF
MOV
R1,
R1,
R2
A
22
符号表管理 • 符号表用来记录源程序中出现的标识符, 并收集每个标识符的各种属性信息。 • 符号表是由若干记录组成的数据结构,每 个标识符在表中有一条记录,每条记录有 多个域,每个域记载标识符的一个属性。
高级语言:使用便于理解的自然语言。
6
语言处理程序
• 解释程序(器):接受某种语言源程序,然后直接解释执行 源程序。
源程序 (高级语言 ) 初始数据
解释程序 计算结果 计算机
解释程序解释执行过程的示意图
7
•编译程序(器):接受某种语言的源语言程序后,
将它改造成另一种逻辑上等价的目标语言程序。
高级语言程序 (源程序 )
17
中间代码生成
将源程序生成一种内部表示形式,这种内部表 示形式叫中间代码。 中间代码:一种结构简单、含义明确的记号系统。 原则:
•容易生成;
•容易将它翻译成目标代码。
如四元式: