编译原理(1)

  • 翻译程序:把某一种语言程序(源语言程序)等价地转换成另一种语言程序(目标语言程序)的程序
  • 编译程序:把某一种高级语言程序等价地转换成另一种低级语言程序(如:汇编语言或机器语言)的程序
  • 解释程序:把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身
  • 编译程序有诊断编译程序、优化编译程序、交叉编译程序、可变目标编译程序等多种。

什么是宿主机,什么是目标机?

编译程序的平台叫宿主机。编译后产生的代码的运行平台叫目标机。

计算机思维包括什么?

计算机思维:抽象、自动化、分解、递归、权衡(折中)。

编译程序工作的五个阶段:词法分析、语法分析、中间代码产生、优化、目标代码产生。

1.词法分析

任务:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。
依循的原则:构词规则。
描述工具:有限自动机
FOR        I                  :=                   1             to      100                  Do
基本字     标识符       赋值号        整常数           基本字    整常数          基本字

2.语法分析

任务:在此法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位(语法范畴)。
依循的原则:语法规则
描述工具:上下文无关文法
 

3.中间代码生成

任务:对各类不同语法范畴按语言的语义进行初步翻译
依循的原则:语义规则
中间代码:三元式,四元式,树……
 

4.优化

任务:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码
依循的原则:程序的等价变换规则
FOR K:=1 TO 100 DO
BEGIN
    x:=I+1;
    m:=I+10*K;
    N:=J+10*K;
END

  

5.目标代码的产生

任务:把中间代码变换成特定机器上的目标代码
依赖于硬件系统结构和机器指令的含义
目标代码的三种形式:
      ①绝对指令代码:可直接运行
      ②可重新定位指令代码:需要连接装配
      ③汇编指令代码:需要进行汇编
 
posted @ 2021-01-24 16:49  山石满棠  阅读(323)  评论(0)    收藏  举报