第6章编译技术 6.,1编译程序的工作过程 62状态矩阵法的编译过程 6.3词法分析 6.4中面语言表示 6.5语法的分折与加工 PT PRESS 单击鼠标左键换页
第6章 编译技术 6.1 编译程序的工作过程 6.2 状态矩阵法的编译过程 6.3 词法分析 6.4 中间语言表示 6.5 语法的分析与加工
编译程序是一种将高级语言编 写的源程序编译成机器语言程序 (称为目标程序)的实用程序。 PT PRESS 单击鼠标左键换页
编译程序是一种将高级语言编 写的源程序编译成机器语言程序 (称为目标程序)的实用程序
61编译程序的工作过程 为了将源程序翻译成目标程序,一般 都要包括以下几个步骤。 ①输入源程序。 ②对以机内码表示的源程序进行词法 分析,辨认出一个个单词符号。 PT PRESS 单击鼠标左键换页
6.1 编译程序的工作过程 为了将源程序翻译成目标程序,一般 都要包括以下几个步骤。 ① 输入源程序。 ② 对以机内码表示的源程序进行词法 分析,辨认出一个个单词符号
③根据源语言的语法规则进行语法 分析。 ④在实际运行之前,通常还要对目 标程序的各部分进行连接装配。 对于块结构的语言(如C语言和 FORTRAN语言等),通常是进行分块 编译,分别得到半目标程序,最后可用 装配程序组装成一个完整的程序。 PT PRESS 单击鼠标左键换页
③ 根据源语言的语法规则进行语法 分析。 ④ 在实际运行之前,通常还要对目 标程序的各部分进行连接装配。 对于块结构的语言(如C语言和 FORTRAN语言等),通常是进行分块 编译,分别得到半目标程序,最后可用 装配程序组装成一个完整的程序
源程序输入 换码 源程序的机内表示 错误处理 词法分析-各种表格 中间语言I程序 语法分析 中间语言Ⅱ程序 忧化 中间语言I程序 (半目标程序,包括表与栈) PT PRESS 图61三遍扫描的编译过程
半目标程序1 半目标程序2 装配程序 →错误处理 库程序 半目标程序 目标程序 图62半目标程序的装配示意图
编译程序一般要包含以下几个程序模块。 (1)词法分析程序 (2)语法分析程序 (3)加工程序 (4)优化修饰部分 (5)装配程序或连接编辑程序 PT PRESS 单击鼠标左键换页
编译程序一般要包含以下几个程序模块。 (1)词法分析程序 (2)语法分析程序 (3)加工程序 (4)优化修饰部分 (5)装配程序或连接编辑程序
62状态矩阵法的编译过程 6.2.1态矩法的基本原理 所谓“状态”,粗略地说,是表示过 去已经扫描了什么语法成分,以便当遇到 新的语法符号时,在不同的状态下对该语 法符号作出不同的处理。 状态矩阵法的核心是状态矩阵(也称 状态表),如表61所示。 PT PRESS 单击鼠标左键换页
6.2 状态矩阵法的编译过程 6.2.1 状态矩阵法的基本原理 所谓“状态”,粗略地说,是表示过 去已经扫描了什么语法成分,以便当遇到 新的语法符号时,在不同的状态下对该语 法符号作出不同的处理。 状态矩阵法的核心是状态矩阵(也称 状态表),如表6.1所示
表61 状态矩阵 符号 状态 T1 SUBl SUB13 SUB 1 T: SUB2 SUBl SUB 2 STm SUB 1 SUBn2 lUE PT PRESS 单击鼠标左键换页
6.2.2状态矩件的乐缩 在具体实现状态矩阵法时,为了节省 存储空间,通常要对状态矩阵进行压缩 PT PRESS 单击鼠标左键换页
6.2.2 状态矩阵的压缩 在具体实现状态矩阵法时,为了节省 存储空间,通常要对状态矩阵进行压缩